From: "Santi Béjar" <sbejar@gmail.com>
To: "Uwe Kleine-König" <Uwe.Kleine-Koenig@digi.com>
Cc: git@vger.kernel.org
Subject: Re: showing conflicting merges
Date: Thu, 24 Apr 2008 15:08:44 +0200 [thread overview]
Message-ID: <8aa486160804240608m702ba3b5he8277a0982730d61@mail.gmail.com> (raw)
In-Reply-To: <8aa486160804240551y1d1e412cvb6801e652026f832@mail.gmail.com>
On Thu, Apr 24, 2008 at 2:51 PM, Santi Béjar <sbejar@gmail.com> wrote:
> On Wed, Apr 23, 2008 at 8:17 AM, Uwe Kleine-König
>
> <Uwe.Kleine-Koenig@digi.com> wrote:
> > Hello Santi,
> >
> >
> > Santi Béjar wrote:
> > > On Tue, Apr 22, 2008 at 11:12 AM, Uwe Kleine-König
> > > <Uwe.Kleine-Koenig@digi.com> wrote:
> > > > Hello,
> > > >
> > > > There is a thread on the linux-arm-kernel ML that discusses handling of
> > > > merge conflicts with git.[1]
> > > >
> > > > I played around a bit with that and wondered about a few things:
> > > >
> > > > ukleinek@zentaur:~/gsrc/linux-2.6$ git checkout -b test adf6d34e460387ee3e8f1e1875d
> > > > Switched to a new branch "test"
> > > >
> > > > ukleinek@zentaur:~/gsrc/linux-2.6$ git merge v2.6.25
> > > > Auto-merged MAINTAINERS
> > > > CONFLICT (delete/modify): drivers/leds/leds-tosa.c deleted in HEAD and modified in v2.6.25. Version v2.6.25 of drivers/leds/leds-tosa.c left in tree.
> > > > Auto-merged drivers/serial/imx.c
> > > > Automatic merge failed; fix conflicts and then commit the result.
> > > >
> > > > Now "git diff --merge" shows:
> > > >
> > > > diff --cc drivers/leds/leds-tosa.c
> > > > index 7ebecc4,0000000..9e0a188
> > > > ...
> > > >
> > > > Shouldn't that better be reversed, i.e. 9e0a188..7ebecc4,0000000?
> > >
> > > It compares the versions in conflict with the version in the working copy.
> >
> > I have not checked in the source code, but the output of
> >
> > strace -f -e open git diff --merge 2>&1 >/dev/null | grep leds-tosa
> >
> > seems to contradict that (i.e. there is no output).
>
> The version in the working copy should be 7ebecc4, so there is no need
> to open it as it is in the index (but maybe I'm wrong).
>
>
> >
> > 7ebecc4 = v2.6.25:drivers/leds/leds-tosa.c
> > 9e0a188 = $(git merge-base test v2.6.25):drivers/leds/leds-tosa.c
> >
> > (Ah, I just see, that's another hint that diff --merge doesn't look in
> > the working copy. The wc has 7ebecc4 which is in the LHS together with
> > 000000 (i.e. the deleted file from HEAD).
> >
> > Maybe the combined diff format cannot have more than one rev on the RHS?
> >
> >
>
> FWIU --merge is an option for git-rev-list (and alike, git log,
> gitk...). I don't know its meaning in this case. It shoud be juts:
>
> $git diff
>
> that currently says in this case:
>
> $ git diff
> * Unmerged path file1
>
> In this case:
>
> echo a >file1 &&
> git add file1 &&
> git commit -m initial &&
> git checkout -b a1 master &&
> git rm file1 &&
> git commit -m a &&
> git checkout -b b1 master &&
> echo b> file1 &&
> git add file1 &&
> git commit -m b1 &&
> git checkout a1 &&
> git merge b1
>
> The merge output is:
> Merging HEAD with b1
> Merging:
> 3231a8a a
> ace6b2d b1
> found 1 common ancestor(s):
> f43806f initial
> CONFLICT (delete/modify): file1 deleted in HEAD and modified in b1.
> Version b1 of file1 left in tree.
>
> Automatic merge failed; fix conflicts and then commit the result.
>
> $ git ls-files -s
> 100644 78981922613b2afb6025042ff6bd878ac1994e85 1 file1
> 100644 61780798228d17af2d34fce4cfbdf35556832472 3 file1
>
> $ git diff [-1 | -2 | -3]
> * Unmerged path file1
Actually only:
git diff
git diff -2
git diff -3
for:
$ git diff -1
* Unmerged path file1
diff --git a/file1 b/file1
index 7898192..c9c6af7 100644
--- a/file1
+++ b/file1
@@ -1 +1 @@
-a
+b1
but "-2" and "-3" do the same for different reasons
-2) theres is no "2" in the index
-3) is equal to the wc file1
so both output the same:
* Unmerged path file1
and I still think "git diff" has to output something else than
"*Unmerged path file1".
>
> $ git diff --merge
> diff --cc file1
> index 6178079,0000000..7898192
> mode 100644,000000..100644
> --- a/file1
> +++ b/file1
> @@@ -1,1 -1,0 +1,1 @@@
> - b
> ++a
>
> that does not make sense.
>
> Maybe something as?
>
> $ git diff
> diff --cc file1
> index 0000000,6178079..0000000
> mode 000000,100644..0000000
> --- /dev/null
> +++ b/file1
>
> But I don't really know what to expect in this case.
>
> Santi
>
prev parent reply other threads:[~2008-04-24 13:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-22 9:12 showing conflicting merges Uwe Kleine-König
2008-04-22 9:49 ` Santi Béjar
2008-04-23 6:17 ` Uwe Kleine-König
2008-04-24 12:51 ` Santi Béjar
2008-04-24 13:08 ` Santi Béjar [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8aa486160804240608m702ba3b5he8277a0982730d61@mail.gmail.com \
--to=sbejar@gmail.com \
--cc=Uwe.Kleine-Koenig@digi.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).