On Thu, Jun 20, 2013 at 6:14 AM, Francis Moreau <francis.moro@xxxxxxxxx> wrote: > I'd like to write a script that would parse commits in one of my repo. > Ideally this script should accept any revision ranges that > git-rev-list would accept. > > This script should consider commits in master differently than the > ones in others branches. > > To get the commit set which can't be reached by master (ie commits > which are specific to branches other than master) I would do: > > # "$@" is the range spec passed to the script > git rev-list "$@" ^master | check_other_commit > > But I don't know if it's possible to use a different git-rev-list > command to get the rest of the commits, ie the ones that are reachable > by the specified range and master. > > One way to do that is to record the first commit set got by the first > rev-list command and check that the ones returned by "git rev-list $@" > are not in the record. > > But I'm wondering if someone can see another solution more elegant ? I do not know if I would call this elegant, but I think this codification of your "One way to do that" is at least small and mostly readable: git rev-list "$@" |grep -v -f <(git rev-list "$@" ^master) Phil -- 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