* Unexpected cherry-pick behaviour
@ 2013-12-10 11:04 Paulo Matos
2013-12-10 19:34 ` Junio C Hamano
0 siblings, 1 reply; 13+ messages in thread
From: Paulo Matos @ 2013-12-10 11:04 UTC (permalink / raw)
To: git
Hi,
I have installed latest 1.8.5.1 git to confirm the behaviour I had seen
in previous versions.
What I see is that when I cherry-pick a patch across two branches
(source and destination) in a repository, cherry-pick picks changes from
the source branch which do not exist in the cherry-picked patch.
To reproduce please follow the following in a clean directory (apologies
for the large repo I use as example):
$ git clone git://gcc.gnu.org/git/gcc.git
$ cd gcc
$ git checkout -b gcc-4_8-branch origin/gcc-4_8-branch
$ cd gcc
$ sed -i '877i myport_hook ()' tree-ssa-threadedge.c
$ git diff tree-ssa-threadedge.c
index b31e961..f022eed 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -874,6 +874,7 @@ thread_across_edge (gimple dummy_cond,
if (cond_arg_set_in_bb (e, e->dest))
goto fail;
}
+myport_hook ()
stmt_count = 0;
$ git add tree-ssa-threadedge.c
$ git commit -m 'cherry-pick test'
[gcc-4_8-branch 49a2b7f] cherry-pick test
1 file changed, 1 insertion(+)
$ git checkout master
$ git cherry-pick 49a2b7f # ensure you're cherry-picking the right sha
error: could not apply 49a2b7f... cherry-pick test
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
$ git diff tree-ssa-threadedge.c
diff --cc gcc/tree-ssa-threadedge.c
index cb6accf,f022eed..0000000
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@@ -936,34 -854,33 +936,47 @@@ thread_around_empty_blocks (edge taken_
STACK is used to undo temporary equivalences created during the
walk of
E->dest.
- SIMPLIFY is a pass-specific function used to simplify statements.
*/
-
-void
-thread_across_edge (gimple dummy_cond,
- edge e,
- bool handle_dominating_asserts,
- vec<tree> *stack,
- tree (*simplify) (gimple, gimple))
-{
- gimple stmt;
+ SIMPLIFY is a pass-specific function used to simplify statements.
++<<<<<<< HEAD
+ Our caller is responsible for restoring the state of the expression
+ and const_and_copies stacks. */
++=======
+ /* If E is a backedge, then we want to verify that the COND_EXPR,
+ SWITCH_EXPR or GOTO_EXPR at the end of e->dest is not affected
+ by any statements in e->dest. If it is affected, then it is not
+ safe to thread this edge. */
+ if (e->flags & EDGE_DFS_BACK)
+ {
+ if (cond_arg_set_in_bb (e, e->dest))
+ goto fail;
+ }
+ myport_hook ()
++>>>>>>> 49a2b7f... cherry-pick test
- stmt_count = 0;
+static bool
+thread_through_normal_block (edge e,
+ gimple dummy_cond,
+ bool handle_dominating_asserts,
+ vec<tree> *stack,
+ tree (*simplify) (gimple, gimple),
+ vec<jump_thread_edge *> *path,
+ bitmap visited,
+ bool *backedge_seen_p,
+ bitmap src_map,
+ bitmap dst_map)
+{
+ /* If we have traversed a backedge, then we do not want to look
+ at certain expressions in the table that can not be relied upon.
+ Luckily the only code that looked at those expressions is the
+ SIMPLIFY callback, which we replace if we can no longer use it.
*/
+ if (*backedge_seen_p)
+ simplify = dummy_simplify;
/* PHIs create temporary equivalences. */
- if (!record_temporary_equivalences_from_phis (e, stack))
- goto fail;
+ if (!record_temporary_equivalences_from_phis (e, stack,
*backedge_seen_p,
+ src_map, dst_map))
+ return false;
/* Now walk each statement recording any context sensitive
temporary equivalences we can detect. */
Note how there are changes that are not part of the cherry-picked patch
outside of the conflicting zone. This is trouble some because it means
that when I go in to fix a patch and look only at the conflicting zone,
I will have code outside the zone, that are _not_ part of the patch
modified as well.
Is this a bug or a feature? If the latter, why this behaviour and how
can I avoid it?
Cheers,
--
Paulo Matos
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-10 11:04 Unexpected cherry-pick behaviour Paulo Matos
@ 2013-12-10 19:34 ` Junio C Hamano
2013-12-11 10:04 ` Paulo Matos
0 siblings, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2013-12-10 19:34 UTC (permalink / raw)
To: Paulo Matos; +Cc: git
Paulo Matos <paulo@matos-sorge.com> writes:
> Note how there are changes that are not part of the cherry-picked
> patch outside of the conflicting zone. This is trouble some because it
> means that when I go in to fix a patch and look only at the
> conflicting zone, I will have code outside the zone, that are _not_
> part of the patch modified as well.
My suspicion (I am too lazy to try it myself ;-) is that your
addition of a line "myport_hook()" was done to a section of code
that was modified between the original you added the line to and the
target you are trying to cherry-pick your change (that will
inevitably cause conflicts and you cannot avoid that), and the
post-processing done to make the three-way merge result more
readable are ejecting common changes out of the conflicted region.
Perhaps immediately after "cherry-pick" stopped and asked your help
to resolve the conflicts, running
$ git checkout --conflicts=diff3 gcc/tree-ssa-threadedge.c
and looking at the file again may show you what is going on better.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-10 19:34 ` Junio C Hamano
@ 2013-12-11 10:04 ` Paulo Matos
2013-12-11 11:09 ` Antoine Pelisse
0 siblings, 1 reply; 13+ messages in thread
From: Paulo Matos @ 2013-12-11 10:04 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On 10/12/2013 19:34, Junio C Hamano wrote:
> Perhaps immediately after "cherry-pick" stopped and asked your help
> to resolve the conflicts, running
>
> $ git checkout --conflicts=diff3 gcc/tree-ssa-threadedge.c
>
> and looking at the file again may show you what is going on better.
I don't know how to interpret the fact that the line you sent (with the
obvious --conflicts being --conflict) outputs nothing...
Any suggestions?
--
Paulo Matos
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-11 10:04 ` Paulo Matos
@ 2013-12-11 11:09 ` Antoine Pelisse
2013-12-11 11:19 ` Paulo Matos
0 siblings, 1 reply; 13+ messages in thread
From: Antoine Pelisse @ 2013-12-11 11:09 UTC (permalink / raw)
To: Paulo Matos; +Cc: Junio C Hamano, git
On Wed, Dec 11, 2013 at 11:04 AM, Paulo Matos <paulo@matos-sorge.com> wrote:
> On 10/12/2013 19:34, Junio C Hamano wrote:
>>
>> Perhaps immediately after "cherry-pick" stopped and asked your help
>> to resolve the conflicts, running
>>
>> $ git checkout --conflicts=diff3 gcc/tree-ssa-threadedge.c
>>
>> and looking at the file again may show you what is going on better.
>
>
> I don't know how to interpret the fact that the line you sent (with the
> obvious --conflicts being --conflict) outputs nothing...
That is expected. git-checkout with this option [1] will reset the
conflict on gcc/tree-ssa-threadedge.c file to the initial conflict
state, and use the diff3 markers. You should have a new look at that
file as you will now be able to see the "ancestor" in the conflict.
[1] You can have a look either at git-checkout manpage or here:
http://git-scm.com/docs/git-checkout, especially --merge and
--conflict options.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-11 11:09 ` Antoine Pelisse
@ 2013-12-11 11:19 ` Paulo Matos
2013-12-14 9:40 ` Antoine Pelisse
0 siblings, 1 reply; 13+ messages in thread
From: Paulo Matos @ 2013-12-11 11:19 UTC (permalink / raw)
To: Antoine Pelisse; +Cc: Junio C Hamano, git, git-owner
On 11/12/2013 11:09, Antoine Pelisse wrote:
>>
>> I don't know how to interpret the fact that the line you sent (with
>> the
>> obvious --conflicts being --conflict) outputs nothing...
>
> That is expected. git-checkout with this option [1] will reset the
> conflict on gcc/tree-ssa-threadedge.c file to the initial conflict
> state, and use the diff3 markers. You should have a new look at that
> file as you will now be able to see the "ancestor" in the conflict.
>
> [1] You can have a look either at git-checkout manpage or here:
> http://git-scm.com/docs/git-checkout, especially --merge and
> --conflict options.
> --
Got it, but still not helpful as git is still modifying code out of the
conflicting zone.
$ git checkout --conflict=diff3 tree-ssa-threadedge.c
$ git diff tree-ssa-threadedge.c
diff --cc gcc/tree-ssa-threadedge.c
index cb6accf,f022eed..0000000
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@@ -936,34 -854,33 +936,57 @@@ thread_around_empty_blocks (edge taken_
STACK is used to undo temporary equivalences created during the
walk of
E->dest.
- SIMPLIFY is a pass-specific function used to simplify statements.
*/
-
-void
-thread_across_edge (gimple dummy_cond,
- edge e,
- bool handle_dominating_asserts,
- vec<tree> *stack,
- tree (*simplify) (gimple, gimple))
-{
- gimple stmt;
+ SIMPLIFY is a pass-specific function used to simplify statements.
++<<<<<<< ours
+ Our caller is responsible for restoring the state of the expression
+ and const_and_copies stacks. */
++||||||| base
++ /* If E is a backedge, then we want to verify that the COND_EXPR,
++ SWITCH_EXPR or GOTO_EXPR at the end of e->dest is not affected
++ by any statements in e->dest. If it is affected, then it is not
++ safe to thread this edge. */
++ if (e->flags & EDGE_DFS_BACK)
++ {
++ if (cond_arg_set_in_bb (e, e->dest))
++ goto fail;
++ }
++=======
+ /* If E is a backedge, then we want to verify that the COND_EXPR,
+ SWITCH_EXPR or GOTO_EXPR at the end of e->dest is not affected
+ by any statements in e->dest. If it is affected, then it is not
+ safe to thread this edge. */
+ if (e->flags & EDGE_DFS_BACK)
+ {
+ if (cond_arg_set_in_bb (e, e->dest))
+ goto fail;
+ }
+ myport_hook ()
++>>>>>>> theirs
- stmt_count = 0;
+static bool
+thread_through_normal_block (edge e,
+ gimple dummy_cond,
+ bool handle_dominating_asserts,
+ vec<tree> *stack,
+ tree (*simplify) (gimple, gimple),
+ vec<jump_thread_edge *> *path,
+ bitmap visited,
+ bool *backedge_seen_p,
+ bitmap src_map,
+ bitmap dst_map)
+{
+ /* If we have traversed a backedge, then we do not want to look
+ at certain expressions in the table that can not be relied upon.
+ Luckily the only code that looked at those expressions is the
+ SIMPLIFY callback, which we replace if we can no longer use it.
*/
+ if (*backedge_seen_p)
+ simplify = dummy_simplify;
/* PHIs create temporary equivalences. */
- if (!record_temporary_equivalences_from_phis (e, stack))
- goto fail;
+ if (!record_temporary_equivalences_from_phis (e, stack,
*backedge_seen_p,
+ src_map, dst_map))
+ return false;
/* Now walk each statement recording any context sensitive
temporary equivalences we can detect. */
--
Paulo Matos
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-11 11:19 ` Paulo Matos
@ 2013-12-14 9:40 ` Antoine Pelisse
2013-12-14 14:53 ` Philip Oakley
2013-12-14 19:33 ` Junio C Hamano
0 siblings, 2 replies; 13+ messages in thread
From: Antoine Pelisse @ 2013-12-14 9:40 UTC (permalink / raw)
To: Paulo Matos; +Cc: Junio C Hamano, git, git-owner
On Wed, Dec 11, 2013 at 12:19 PM, Paulo Matos <paulo@matos-sorge.com> wrote:
> On 11/12/2013 11:09, Antoine Pelisse wrote:
>>>
>>>
>>> I don't know how to interpret the fact that the line you sent (with the
>>> obvious --conflicts being --conflict) outputs nothing...
>>
>>
>> That is expected. git-checkout with this option [1] will reset the
>> conflict on gcc/tree-ssa-threadedge.c file to the initial conflict
>> state, and use the diff3 markers. You should have a new look at that
>> file as you will now be able to see the "ancestor" in the conflict.
>>
>> [1] You can have a look either at git-checkout manpage or here:
>> http://git-scm.com/docs/git-checkout, especially --merge and
>> --conflict options.
>> --
>
>
> Got it, but still not helpful as git is still modifying code out of the
> conflicting zone.
Actually it didn't modify out of the conflicting zone.
This is because you are having a look at a combine-diff which tries to
show both how it changed master *and* the cherry-picked patch at the
same time. If you only want to see the diff applied to master, you
should run:
$ git diff --ours
You can also have a look at what is currently being applied:
$ git diff :1:gcc/tree-ssa-threadedge.c :3:gcc/tree-ssa-threadedge.c
By the way, does anybody know a better way to do that ? I happen to do
that quite a lot when fixing complex conflicts and the command is
quite inconvenient (I always end-up forgetting which numbers to use,
etc..).
Hope that helps,
Antoine
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-14 9:40 ` Antoine Pelisse
@ 2013-12-14 14:53 ` Philip Oakley
2013-12-14 19:39 ` Junio C Hamano
2013-12-14 19:33 ` Junio C Hamano
1 sibling, 1 reply; 13+ messages in thread
From: Philip Oakley @ 2013-12-14 14:53 UTC (permalink / raw)
To: Antoine Pelisse, Paulo Matos; +Cc: Junio C Hamano, git, git-owner
----- Original Message -----
From: "Antoine Pelisse" <apelisse@gmail.com>
<snip>
>
> You can also have a look at what is currently being applied:
>
> $ git diff :1:gcc/tree-ssa-threadedge.c
> :3:gcc/tree-ssa-threadedge.c
>
> By the way, does anybody know a better way to do that ? I happen to do
> that quite a lot when fixing complex conflicts and the command is
> quite inconvenient (I always end-up forgetting which numbers to use,
> etc..).
Would this be a good use of the
* Magic pathspecs like ":(icase)
that was recently released (v1.8.5 2Dec13) so that the merge stages
can be named.
I'm not sure that the three 'merge stages' have well defined short names
yet though.
[1]
http://schacon.github.io/gitbook/5_advanced_branching_and_merging.html
[2] https://www.kernel.org/pub/software/scm/git/docs/git-merge.html see
True Merge 4.
Aside: the 'merge stages' terminology does overlap the common user
discussion of commit staging e.g. $gmane/236127 (Officially start moving
to the term 'staging area'). Any pathspec magic names should reflect the
concept being indicated rather than the implementation - a thorny
problem.
>
> Hope that helps,
> Antoine
> --
Philip
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-14 9:40 ` Antoine Pelisse
2013-12-14 14:53 ` Philip Oakley
@ 2013-12-14 19:33 ` Junio C Hamano
2013-12-14 19:47 ` Antoine Pelisse
1 sibling, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2013-12-14 19:33 UTC (permalink / raw)
To: Antoine Pelisse; +Cc: Paulo Matos, git, git-owner
Antoine Pelisse <apelisse@gmail.com> writes:
> If you only want to see the diff applied to master, you
> should run:
>
> $ git diff --ours
Does "git diff HEAD" have the same/similar effect?
> You can also have a look at what is currently being applied:
>
> $ git diff :1:gcc/tree-ssa-threadedge.c :3:gcc/tree-ssa-threadedge.c
>
> By the way, does anybody know a better way to do that ?
In a merge, you can say "git diff ...MERGE_HEAD" (three-dots). You
should be able to tell "git show" the commit you are trying to pick
during a cherry-pick, I think.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-14 14:53 ` Philip Oakley
@ 2013-12-14 19:39 ` Junio C Hamano
2013-12-15 14:48 ` Philip Oakley
0 siblings, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2013-12-14 19:39 UTC (permalink / raw)
To: Philip Oakley; +Cc: Antoine Pelisse, Paulo Matos, git, git-owner
"Philip Oakley" <philipoakley@iee.org> writes:
> Would this be a good use of the
> * Magic pathspecs like ":(icase)
> that was recently released (v1.8.5 2Dec13) so that the merge stages
> can be named.
Because the pathspec mechahism is for you to tell an operation that
works on a collection of paths (e.g. "all the paths in the HEAD",
"all the paths at stage #1 in the index") to narrow the set it
operates on down to only those that match, I do not think it is a
good match at all to what you are trying to do.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-14 19:33 ` Junio C Hamano
@ 2013-12-14 19:47 ` Antoine Pelisse
0 siblings, 0 replies; 13+ messages in thread
From: Antoine Pelisse @ 2013-12-14 19:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Paulo Matos, git, git-owner
On Sat, Dec 14, 2013 at 8:33 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Antoine Pelisse <apelisse@gmail.com> writes:
>
>> If you only want to see the diff applied to master, you
>> should run:
>>
>> $ git diff --ours
>
> Does "git diff HEAD" have the same/similar effect?
Yes, it does produce the same output as --ours.
>> You can also have a look at what is currently being applied:
>>
>> $ git diff :1:gcc/tree-ssa-threadedge.c :3:gcc/tree-ssa-threadedge.c
>>
>> By the way, does anybody know a better way to do that ?
>
> In a merge, you can say "git diff ...MERGE_HEAD" (three-dots). You
> should be able to tell "git show" the commit you are trying to pick
> during a cherry-pick, I think.
Thanks,
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-14 19:39 ` Junio C Hamano
@ 2013-12-15 14:48 ` Philip Oakley
2013-12-16 19:00 ` Philip Oakley
0 siblings, 1 reply; 13+ messages in thread
From: Philip Oakley @ 2013-12-15 14:48 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Antoine Pelisse, Paulo Matos, git, git-owner
From: "Junio C Hamano" <gitster@pobox.com>, Saturday, December 14, 2013
7:39 PM
> "Philip Oakley" <philipoakley@iee.org> writes:
>
>> Would this be a good use of the
>> * Magic pathspecs like ":(icase)
>> that was recently released (v1.8.5 2Dec13) so that the merge stages
>> can be named.
>
> Because the pathspec mechahism is for you to tell an operation that
> works on a collection of paths (e.g. "all the paths in the HEAD",
> "all the paths at stage #1 in the index") to narrow the set it
> operates on down to only those that match, I do not think it is a
> good match at all to what you are trying to do.
>
My point was that the ":1:" syntax already was a "path at stage #1 in
the index" indicator, and that it would be good to have a memorable name
for the :1:2:3: stages as per Antoine's query.
It maybe that my referring to it as a 'magic pathspec' was a mistake,
but the difficulty of remembering which number is ours:theirs:base still
stands.
(for general info; the :<stage>: format is defined in 'git revision
(7)' as the last method for Specifying Revisions)
Philip
--
PS should the cc: git-owner@vger.kernel.org be dropped as effectively a
duplicate?
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-15 14:48 ` Philip Oakley
@ 2013-12-16 19:00 ` Philip Oakley
2013-12-16 20:15 ` Junio C Hamano
0 siblings, 1 reply; 13+ messages in thread
From: Philip Oakley @ 2013-12-16 19:00 UTC (permalink / raw)
To: Philip Oakley; +Cc: Antoine Pelisse, Paulo Matos, git, Junio C Hamano
From: "Philip Oakley" <philipoakley@iee.org>
> From: "Junio C Hamano" <gitster@pobox.com>, Saturday, December 14,
> 2013 7:39 PM
>> "Philip Oakley" <philipoakley@iee.org> writes:
>>
>>> Would this be a good use of the
>>> * Magic pathspecs like ":(icase)
>>> that was recently released (v1.8.5 2Dec13) so that the merge
>>> stages
>>> can be named.
>>
>> Because the pathspec mechahism is for you to tell an operation that
>> works on a collection of paths (e.g. "all the paths in the HEAD",
>> "all the paths at stage #1 in the index") to narrow the set it
>> operates on down to only those that match, I do not think it is a
>> good match at all to what you are trying to do.
>>
>
> My point was that the ":1:" syntax already was a "path at stage #1 in
> the index" indicator, and that it would be good to have a memorable
> name for the :1:2:3: stages as per Antoine's query.
Could someone point me at where is this syntax decoded?
My initial hunt around the code base didn't find the relevant location.
>
> It maybe that my referring to it as a 'magic pathspec' was a mistake,
> but the difficulty of remembering which number is ours:theirs:base
> still stands.
>
> (for general info; the :<stage>: format is defined in 'git revision
> (7)' as the last method for Specifying Revisions)
>
> Philip
> --
Philip
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Unexpected cherry-pick behaviour
2013-12-16 19:00 ` Philip Oakley
@ 2013-12-16 20:15 ` Junio C Hamano
0 siblings, 0 replies; 13+ messages in thread
From: Junio C Hamano @ 2013-12-16 20:15 UTC (permalink / raw)
To: Philip Oakley; +Cc: Antoine Pelisse, Paulo Matos, git
"Philip Oakley" <philipoakley@iee.org> writes:
> From: "Philip Oakley" <philipoakley@iee.org>
>> From: "Junio C Hamano" <gitster@pobox.com>, Saturday, December 14,
>> 2013 7:39 PM
>>> "Philip Oakley" <philipoakley@iee.org> writes:
>>>
>>>> Would this be a good use of the
>>>> * Magic pathspecs like ":(icase)
>>>> that was recently released (v1.8.5 2Dec13) so that the merge
>>>> stages
>>>> can be named.
>>>
>>> Because the pathspec mechahism is for you to tell an operation that
>>> works on a collection of paths (e.g. "all the paths in the HEAD",
>>> "all the paths at stage #1 in the index") to narrow the set it
>>> operates on down to only those that match, I do not think it is a
>>> good match at all to what you are trying to do.
>>>
>>
>> My point was that the ":1:" syntax already was a "path at stage #1
>> in the index" indicator, and that it would be good to have a
>> memorable name for the :1:2:3: stages as per Antoine's query.
>
> Could someone point me at where is this syntax decoded?
sha1_name.c (anything that turns name to object name goes there, I
think). Look for this comment:
/*
* sha1:path --> object name of path in ent sha1
* :path -> object name of absolute path in index
* :./path -> object name of path relative to cwd in index
* :[0-3]:path -> object name of path in index at stage
* :/foo -> recent commit matching foo
*/
I do not think adding ":ours:path" as a synonym to ":2:path" adds
enough value to make it worthwhilte to worry about breaking the
expectation of those who thought "ours:path/name" will be something
they could track if they wanted to.
> My initial hunt around the code base didn't find the relevant location.
>
>>
>> It maybe that my referring to it as a 'magic pathspec' was a
>> mistake, but the difficulty of remembering which number is
>> ours:theirs:base still stands.
>>
>> (for general info; the :<stage>: format is defined in 'git revision
>> (7)' as the last method for Specifying Revisions)
>>
>> Philip
>> --
> Philip
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2013-12-16 20:15 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-10 11:04 Unexpected cherry-pick behaviour Paulo Matos
2013-12-10 19:34 ` Junio C Hamano
2013-12-11 10:04 ` Paulo Matos
2013-12-11 11:09 ` Antoine Pelisse
2013-12-11 11:19 ` Paulo Matos
2013-12-14 9:40 ` Antoine Pelisse
2013-12-14 14:53 ` Philip Oakley
2013-12-14 19:39 ` Junio C Hamano
2013-12-15 14:48 ` Philip Oakley
2013-12-16 19:00 ` Philip Oakley
2013-12-16 20:15 ` Junio C Hamano
2013-12-14 19:33 ` Junio C Hamano
2013-12-14 19:47 ` Antoine Pelisse
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.