[openstack-dev] [git-upstream] How to view only commits applied since last import

Paul Bourke paul.bourke at oracle.com
Thu Nov 17 12:47:09 UTC 2016


Hi Darragh / git-upstream community,

I've been looking at a way to easily view a log of what commits made 
since the last upstream import when managing a branch with git-upstream. 
Right now this can be hard to do - something like 'git log 
upstream/master..HEAD' shows a lot of duplicate commits reasons I don't 
understand well enough to explain.

Darragh had suggested using the --dense option will help here, so 'git 
log --dense upstream/master..HEAD -- .' seems to generally give the 
right result. I've put up a patch to add this as a git-upstream command 
in the form of "carrying" at https://review.openstack.org/#/c/381669/. 
However, it seems there are in fact cases where the above command will 
show incorrect commits, and I'm struggling a bit to fully grok this.

My current understanding is we have a branch, that consists of a mixture 
of upstream commits from previous imports, and custom commits. We want 
to show a list of commits added since the last import. However, if those 
commits also contain commits from another non upstream branch, we want 
to exclude those? This makes sense with the example of say a packaging 
branch, but what if commits came from say a feature branch? Does it also 
make sense to ignore those?

Secondly, can you recap exactly how we find the most recent import 
commit? How does excluding the parent of this commit combined with 
--dense give the correct result? From your comment in Gerrit you 
identify it as the commit with the subject "[I] Merging E1 into E", but 
I can't see exactly how you spot this. Locally in the same scenario, 
taking the parent of the commit marked that subject and plugging it into 
the command is not showing the same graph as you pasted.

Thanks in advance for anything that might help cut through some of the 
confusion.

Cheers,
-Paul



More information about the OpenStack-dev mailing list