Re: Splitting a rev list into 2 sets
- From
- Francis Moreau <francis.moro@gmail.com>
- Date
- Jun 20, 2013, 13:17 UTC
- Message-ID
- <CAC9WiBg2+ep2EMhcofh14TqG+eujbDg51UDLGm3OK=ntOFuRxw@mail.gmail.com>
- In-Reply-To
- <CABURp0r+rzRqHv9vMX3Nsxn_p2R7zf8AsY=_Cg98xWRWn+7bkg@mail.gmail.com>
Hi,
On Thu, Jun 20, 2013 at 3:04 PM, Phil Hord <phil.hord@gmail.com> wrote:
Show 30 quoted lines
> On Thu, Jun 20, 2013 at 6:14 AM, Francis Moreau <francis.moro@gmail.com> 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) >
Yes, thanks.
But I wanted to be sure that git-rev-list can't display the intersection of several sets before going forward.
-- Francis