git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@suse.cz>
To: Junio C Hamano <junkio@cox.net>
Cc: Jon Loeliger <jdl@freescale.com>, git@vger.kernel.org
Subject: Re: Expected Behavior?
Date: Tue, 8 Nov 2005 10:56:00 +0100	[thread overview]
Message-ID: <20051108095600.GA1431@pasky.or.cz> (raw)
In-Reply-To: <7vwtjjllw4.fsf@assigned-by-dhcp.cox.net>

Dear diary, on Tue, Nov 08, 2005 at 07:00:11AM CET, I got a letter
where Junio C Hamano <junkio@cox.net> told me that...
> Nobody complained so far about this, probably because two side
> adding different versions is rare enough.  And the reasoning
> behind the current behaviour is probably because the tool cannot
> automerge them sensibly anyway.  Leaving the SHA1 in index file
> might probably be easier to clean up by hand (e.g. see ls-files
> --unmerged, and cut&paste the desired SHA1 to 'git-cat-file
> blob' command line, or something silly like that).  But if we
> were to go that route, adding --stage=[123] flag so that the
> user can say 'git-checkout-index --stage=3 file3'might have
> helped a bit more.

#
# Added in both (different in each).
#
".$id1$id2")
        #echo "Adding $file"
        filev="$file"
        while [ -e "$filev~1" ] || [ -e "$filev~2" ]; do
                filev="$filev~"
        done
        error "File $file added in both branches, but different in each!"
        error "Conflicting versions saved as '$filev~1' and '$filev~2'."
        git-update-index --add --cacheinfo "$mode1" "$id1" "$file" &&
                git-checkout-index -u -f -- "$file" &&
                mv "$file" "$filev~1" ||
                error "Cannot create '$filev~1'"
        git-update-index --add --cacheinfo "$mode2" "$id2" "$file" &&
                git-checkout-index -u -f -- "$file" &&
                mv "$file" "$filev~2" ||
                error "Cannot create '$filev~2'"
        exit 1
        ;;

is what Cogito's automerger does. It ain't very pretty, but it works.
:-) (At least it seems to.) I yet need to add some conflicts tracking to
Cogito to prevent accidental checking in of conflicts.

> We could instead use the attached patch to get the behaviour you
> are expecting.  I have a feeling that the result from this might
> be a little more intuitive and easier to resolve by hand than
> the current one.  Although we may end up unresolvable mess in
> file3 if either side is binary, in that case the user can still
> sift through 'diff-tree A B file3' output to find out the
> relevant SHA1 to recover the blobs from both sides by hand
> anyway.  Does anybody have strong opinion on this?

I think having

	<<<<<
	file1
	=====
	file2
	>>>>>

is an awful PITA to resolve, especially when the files actually are
similar. Running some vimdiff (or just diff and possibly applying either
way) on two separate files is much more convenient.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.

  reply	other threads:[~2005-11-08  9:56 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-08  3:43 Expected Behavior? Jon Loeliger
2005-11-08  6:00 ` Junio C Hamano
2005-11-08  9:56   ` Petr Baudis [this message]
2005-11-10  4:41     ` merge-one-file: use common as base, instead of emptiness Junio C Hamano
2005-11-10 19:43       ` Petr Baudis
2005-11-10 20:30         ` Junio C Hamano
2005-11-10 20:35           ` Petr Baudis
2005-11-08 21:03   ` Expected Behavior? Fredrik Kuivinen
2005-11-08 21:41     ` Junio C Hamano
2005-11-08 22:53       ` Fredrik Kuivinen
2005-11-09  5:50         ` Junio C Hamano
2005-11-09  8:19           ` Fredrik Kuivinen
2005-11-09 10:42             ` [PATCH] merge-recursive: Fix support for branch names containing slashes Fredrik Kuivinen
2005-11-10 20:34             ` Expected Behavior? Petr Baudis
2005-11-10 22:52               ` Junio C Hamano
2005-11-10 23:22                 ` Petr Baudis
2005-11-09 11:24     ` Petr Baudis
2005-11-09 23:04       ` Martin Langhoff
2005-11-09 23:12         ` Petr Baudis
2005-11-09 23:43           ` Martin Langhoff
2005-11-09 23:49             ` Petr Baudis
2005-11-10  2:47               ` Martin Langhoff
2005-11-10 19:34                 ` Petr Baudis
2005-11-10 19:54                   ` Martin Langhoff
2005-11-10 20:10                     ` Petr Baudis
2005-11-09 23:36         ` Junio C Hamano
2005-11-09 23:42           ` Petr Baudis
2005-11-10  0:03             ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2005-11-09 13:38 Jon Loeliger
2005-11-09 20:38 ` Junio C Hamano
2005-11-09  2:58 Jon Loeliger
2005-11-09  6:28 ` Junio C Hamano
2005-11-08  3:07 Jon Loeliger
2005-11-06 22:16 Jon Loeliger
2005-11-07  1:38 ` Junio C Hamano
2005-11-07  2:01 ` Junio C Hamano

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=20051108095600.GA1431@pasky.or.cz \
    --to=pasky@suse.cz \
    --cc=git@vger.kernel.org \
    --cc=jdl@freescale.com \
    --cc=junkio@cox.net \
    /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).