2009/11/11 Thomas Rast <trast@xxxxxxxxxxxxxxx>: > Baz wrote: >> 2009/11/11 Peter Krefting <peter@xxxxxxxxxxxxxxxx>: >> > ours:: >> > This resolves any number of heads, but the result of the >> > - merge is always the current branch head. It is meant to >> > + merge is always the current branch head, discarding any >> > + changes on the merged branch. It is meant to >> >> I think part of the problem is that it is unclear what the "current >> branch head" means when used in a rebase, and hence when this text is >> included in the help for git-rebase and git-pull. > [...] >> Perhaps something more in the way of an explicit warning? >> >> ours:: >> This resolves any number of heads, but the result of the >> merge is always the current branch head, discarding any >> changes on the merged branch. It is meant to >> be used to supersede old development history of side >> branches. Note that when rebasing, the branch you are >> rebasing onto is the "current branch head", and using this >> strategy will lose all of your changes - unlikely to be what >> you wanted to do. > > I'd much rather see this explained in the description of the rebase > -m/-s options since it (the swap) applies to all uses of 'git rebase > -m'. Perhaps with an extra (but short) note in the "ours" > description, like so: > > diff --git i/Documentation/git-rebase.txt w/Documentation/git-rebase.txt > index 33e0ef1..181947c 100644 > --- i/Documentation/git-rebase.txt > +++ w/Documentation/git-rebase.txt > @@ -228,6 +228,10 @@ OPTIONS > Use merging strategies to rebase. When the recursive (default) merge > strategy is used, this allows rebase to be aware of renames on the > upstream side. > ++ > +Note that in a rebase merge (hence merge conflict), the sides are > +swapped: "theirs" is the to-be-applied patch, and "ours" is the so-far > +rebased series, starting with <upstream>. > > -s <strategy>:: > --strategy=<strategy>:: > diff --git i/Documentation/merge-strategies.txt w/Documentation/merge-strategies.txt > index 4365b7e..0cae1be 100644 > --- i/Documentation/merge-strategies.txt > +++ w/Documentation/merge-strategies.txt > @@ -33,6 +33,9 @@ ours:: > merge is always the current branch head. It is meant to > be used to supersede old development history of side > branches. > ++ > +Because the sides in a rebase are swapped, using this strategy with > +git-rebase is never a good idea. Yes, this (with Peter's patch) makes the danger nice & clear. Thanks! -Baz > > subtree:: > This is a modified recursive strategy. When merging trees A and > > -- > Thomas Rast > trast@{inf,student}.ethz.ch > -- 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