JSON API: /diff
Not logged in

(⬑JSON API Index)

Diffs

Status: implemented 20111007

Required permissions: "o"

Request: /json/diff[/version1[/version2]]

Request options:

  • v1=string Is the "from" version. It may optionally be the first positional parameter/path element after the command name.
  • v2=string Is the "to" version. It may optionally be the first positional parameter/path element after the v1 part.
  • context=integer (default=unspecified) Defines the number of context lines to display in the diff.
    CLI: --context|-c
  • sbs=bool (default=false) Generates "side-by-side" diffs, but their utility in JSON mode is questionable.
  • html=bool (default=false) causes the output to be marked up with HTML in the same manner as it is in the HTML interface.

Response payload example:

{
"from":"7a83a5cbd0424cefa2cdc001de60153aede530f5",
"to":"96920e7c04746c55ceed6e24fc82879886cb8197",
"diff":"@@ -1,7 +1,7 @@\\n-C factored\\\\sout..."
}

TODOs:

  • Unlike the standard diff command, which apparently requires a commit hash, this one diffs individual file versions. If a commit hash is provided, a diff of the manifests is returned. (That should be considered a bug - we should return a combined diff in that case.)
  • If hashes from two different types of artifacts are given, results are unspecified. Garbage in, garbage out, and all that.
  • For file diffs, add the file name(s) to the response payload.