* Getting a list of commits between 2 points without upstream changes
@ 2011-07-17 23:49 Chris Packham
2011-07-18 0:17 ` Jeff King
0 siblings, 1 reply; 4+ messages in thread
From: Chris Packham @ 2011-07-17 23:49 UTC (permalink / raw
To: GIT
Hi List,
I'm trying to send round an incremental changelog for my project which
contains just my changes without changes that have been made upstream.
The history look something like this.
---o--o--o--o--o--o--o--o-- upstream
\ \ \
\-m--A--m--B--m--C--D-- topic
What I want is a changelog with just B, C and D in it (i.e. no merge
commits and no commits already in upstream). I know if I wanted A,B,C
and D I could just do 'git log --no-merges upstream..topic'. If I do
'git log --no-merges B..topic' I get the merged commits from upstream.
In set-speak what I think want is the union of upstream..topic and
B..topic.
Is there any existing way to achieve this? I'm happy to hack something
up using git rev-list if necessary.
Thanks,
Chris
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Getting a list of commits between 2 points without upstream changes
2011-07-17 23:49 Getting a list of commits between 2 points without upstream changes Chris Packham
@ 2011-07-18 0:17 ` Jeff King
2011-07-18 0:33 ` Chris Packham
0 siblings, 1 reply; 4+ messages in thread
From: Jeff King @ 2011-07-18 0:17 UTC (permalink / raw
To: Chris Packham; +Cc: GIT
On Mon, Jul 18, 2011 at 11:49:57AM +1200, Chris Packham wrote:
> I'm trying to send round an incremental changelog for my project which
> contains just my changes without changes that have been made upstream.
> The history look something like this.
>
> ---o--o--o--o--o--o--o--o-- upstream
> \ \ \
> \-m--A--m--B--m--C--D-- topic
>
> What I want is a changelog with just B, C and D in it (i.e. no merge
> commits and no commits already in upstream). I know if I wanted A,B,C
> and D I could just do 'git log --no-merges upstream..topic'. If I do
> 'git log --no-merges B..topic' I get the merged commits from upstream.
> In set-speak what I think want is the union of upstream..topic and
> B..topic.
I'm not clear on what makes "B" more special than "A" in the graph
above. But assuming you know A, don't you just want:
git log --no-merges topic ^upstream ^A
? That is, "everything in topic, but not in upstream, nor in the parent
of A". Or if you know A and not B, you can use "^B^!" (which means "do
not include commits that are in any parent of B").
-Peff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Getting a list of commits between 2 points without upstream changes
2011-07-18 0:17 ` Jeff King
@ 2011-07-18 0:33 ` Chris Packham
2011-07-18 1:28 ` Jeff King
0 siblings, 1 reply; 4+ messages in thread
From: Chris Packham @ 2011-07-18 0:33 UTC (permalink / raw
To: Jeff King; +Cc: GIT
On Mon, Jul 18, 2011 at 12:17 PM, Jeff King <peff@peff.net> wrote:
> On Mon, Jul 18, 2011 at 11:49:57AM +1200, Chris Packham wrote:
>
>> I'm trying to send round an incremental changelog for my project which
>> contains just my changes without changes that have been made upstream.
>> The history look something like this.
>>
>> ---o--o--o--o--o--o--o--o-- upstream
>> \ \ \
>> \-m--A--m--B--m--C--D-- topic
>>
>> What I want is a changelog with just B, C and D in it (i.e. no merge
>> commits and no commits already in upstream). I know if I wanted A,B,C
>> and D I could just do 'git log --no-merges upstream..topic'. If I do
>> 'git log --no-merges B..topic' I get the merged commits from upstream.
>> In set-speak what I think want is the union of upstream..topic and
>> B..topic.
>
> I'm not clear on what makes "B" more special than "A" in the graph
> above. But assuming you know A, don't you just want:
What makes A special in this case is that commits up to and including
A have been reviewed, regression tested etc. My use-case is really
about telling people what has been worked on since the last time the
code was reviewed.
>
> git log --no-merges topic ^upstream ^A
>
> ? That is, "everything in topic, but not in upstream, nor in the parent
> of A". Or if you know A and not B, you can use "^B^!" (which means "do
> not include commits that are in any parent of B").
Brilliant, that's exactly what I wanted. Thanks.
>
> -Peff
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Getting a list of commits between 2 points without upstream changes
2011-07-18 0:33 ` Chris Packham
@ 2011-07-18 1:28 ` Jeff King
0 siblings, 0 replies; 4+ messages in thread
From: Jeff King @ 2011-07-18 1:28 UTC (permalink / raw
To: Chris Packham; +Cc: GIT
On Mon, Jul 18, 2011 at 12:33:27PM +1200, Chris Packham wrote:
> > I'm not clear on what makes "B" more special than "A" in the graph
> > above. But assuming you know A, don't you just want:
>
> What makes A special in this case is that commits up to and including
> A have been reviewed, regression tested etc. My use-case is really
> about telling people what has been worked on since the last time the
> code was reviewed.
OK, that makes sense.
> > git log --no-merges topic ^upstream ^A
> >
> > ? That is, "everything in topic, but not in upstream, nor in the parent
> > of A". Or if you know A and not B, you can use "^B^!" (which means "do
> > not include commits that are in any parent of B").
>
> Brilliant, that's exactly what I wanted. Thanks.
Oops, I mis-stated it above. It would be "everything in topic, but not
in upstream, nor in A". Which I think is what you actually want (I had
originally written it as "^B^!", but forgot to change the text when I
switched it to the more-readable "^A").
-Peff
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-07-18 1:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-17 23:49 Getting a list of commits between 2 points without upstream changes Chris Packham
2011-07-18 0:17 ` Jeff King
2011-07-18 0:33 ` Chris Packham
2011-07-18 1:28 ` Jeff King
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).