v2

latestOpenAPI 3.0.02026-08-013312111.4 MB
Commits

Compare two commits

Produces a raw git-style diff.

Single commit spec

If the spec argument to this API is a single commit, the diff is produced against the first parent of the specified commit.

Two commit spec

Two commits separated by .. may be provided as the spec, e.g., 3a8b42..9ff173. When two commits are provided and the topic query parameter is true, this API produces a 2-way three dot diff. This is the diff between source commit and the merge base of the source commit and the destination commit. When the topic query param is false, a simple git-style diff is produced.

The two commits are interpreted as follows:

  • First commit: the commit containing the changes we wish to preview
  • Second commit: the commit representing the state to which we want to compare the first commit
  • Note: This is the opposite of the order used in git diff.

Comparison to patches

While similar to patches, diffs:

  • Don't have a commit header (username, commit message, etc)
  • Support the optional path=foo/bar.py query param to filter the diff to just that one file diff

Response

The raw diff is returned as-is, in whatever encoding the files in the repository use. It is not decoded into unicode. As such, the content-type is text/plain.

get/repositories/{workspace}/{repo_slug}/diff/{spec}

Query parameters

contextinteger

Generate diffs with <n> lines of context instead of the usual three.

pathstring

Limit the diff to a particular file (this parameter can be repeated for multiple paths).

ignore_whitespaceboolean

Generate diffs that ignore whitespace.

binaryboolean

Generate diffs that include binary files, true if omitted.

renamesboolean

Whether to perform rename detection, true if omitted.

mergeboolean

This parameter is deprecated. The 'topic' parameter should be used instead. The 'merge' and 'topic' parameters cannot be both used at the same time.

If true, the source commit is merged into the destination commit, and then a diff from the destination to the merge result is returned. If false, a simple 'two dot' diff between the source and destination is returned. True if omitted.

topicboolean

If true, returns 2-way 'three-dot' diff. This is a diff between the source commit and the merge base of the source commit and the destination commit. If false, a simple 'two dot' diff between the source and destination is returned.

If omitted, defaults to true, ie. a 2 way 'three-dot' diff is returned.

Response

The raw diff