Tim Harper <timcharper@xxxxxxxxx> wrote: > I'm implementing a ruby interface to git and am wanting to be able to > ask if a branch is ahead or behind. > > I looked in the builtin-checkout.c file and see this code: > > /* Run "rev-list --left-right ours...theirs" internally... */ ... > It looks like it's calling rev-parse. But, when I call it with the > same arguments (using branches or commit sha1's), it only will list > commits that are in right and not in left. I need it to show both > ways: commits that are in the right and not in left, and commits that > are in the left but not in right. > > Do I need to call rev-parse twice to achieve this? No. You need to use the triple dot operator ("...") not the double dot operator (".."). > Here's a sample of what I'm trying currently: > ~ $ mkdir test > ~ $ cd test/ > ~/test $ git init > Initialized empty Git repository in .git/ > ~/test $ git > ~/test $ echo content > file.txt > ~/test $ git add file.txt && git commit -m "Initial commit" > Created initial commit f5e4160: Initial commit > 1 files changed, 1 insertions(+), 0 deletions(-) > create mode 100644 file.txt > ~/test master$ git co -b task > Switched to a new branch "task" > ~/test task$ echo changes >> file.txt > ~/test task$ git add file.txt && git commit -m "Some changes" > Created commit 96492ee: Some changes > 1 files changed, 1 insertions(+), 0 deletions(-) > ~/test task$ git rev-list --left-right task..master -- You need an extra "." between task and master, this should be: git rev-list --left-right task...master -- > ~/test task$ git rev-list --left-right master..task -- > >96492ee80143f43417b00699ff29330d0027df7f -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html