One of my quite common workflows is to see whether an ancient topic branch I have lying about has made it into Git. Since my local commit OIDs have nothing to do with the OIDs of the corresponding commits in git/git, my only way is to fire up git range-diff ...upstream/master, but of course that output contains way more commits than I care about. To help this use case, here is a patch series that teaches git range-diff the --left-only and --right-only options in the end, restricting the output to those commits and commit pairs that correspond to the commits in the first and the second range, respectively. The first part of the series contains cleanup patches that are not strictly related to the feature I implemented here, but since I already have them, I figured I could just as well contribute them all together. This patch series is based on js/range-diff-wo-dotdot. Johannes Schindelin (6): range-diff: avoid leaking memory in two error code paths range-diff: libify the read_patches() function again range-diff: simplify code spawning `git log` range-diff: combine all options in a single data structure range-diff: move the diffopt initialization down one layer range-diff: offer --left-only/--right-only options Documentation/git-range-diff.txt | 9 +++ builtin/log.c | 10 ++- builtin/range-diff.c | 21 +++++-- log-tree.c | 8 ++- range-diff.c | 101 +++++++++++++++++-------------- range-diff.h | 12 +++- t/t3206-range-diff.sh | 15 +++++ 7 files changed, 118 insertions(+), 58 deletions(-) base-commit: 43718f6741a87f87bd400bdf5264394e980583c5 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-869%2Fdscho%2Frange-diff-left-and-right-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-869/dscho/range-diff-left-and-right-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/869 -- gitgitgadget