From: Petr Baudis Date: Tue, 19 Apr 2005 02:57:26 GMT Subject: Re: [PATCH] Automerge fix Message-ID: <20050419025726.GA5554@pasky.ji.cz> In-Reply-To: Dear diary, on Tue, Apr 19, 2005 at 04:48:09AM CEST, I got a letter where Linus Torvalds told me that... > > git-merge-one-file-script: 7ebf5dac4c69043cd2ff89bf7ee552152802f8d1 > > --- a/git-merge-one-file-script > > +++ b/git-merge-one-file-script > > @@ -43,7 +43,7 @@ case "${1:-.}${2:-.}${3:-.}" in > > orig=$(unpack-file $1) > > src1=$(unpack-file $2) > > src2=$(unpack-file $3) > > - merge "$src2" "$orig" "$src1" || echo Leaving conflict merge in $src2 && exit 1 > > + merge "$src2" "$orig" "$src1" || (echo Leaving conflict merge in $src2 && exit 1) > > cp "$src2" "$4" && update-cache --add -- "$4" && exit 0 > > What's the right way? > > Maybe > > if merge "$src2" "$orig" "$src1" > then > cp "$src2" "$4" && update-cache --add -- "$4" && exit 0 > fi > echo Leaving conflict merge in $src2 > exit 1 > > would work? Possibly. Or changing () to {} as suggested by Edgar Toernig. FWIW, my fragment of this code now looks like: ret=0 if ! merge "$src2" "$orig" "$src1"; then echo Conflicting merge! cat "$src2" >"$4" ret=1 elif ! cat "$src2" >"$4" && update-cache --add -- "$4"; then echo "Choosing $src2 -> $4 failed" ret=1 fi rm "$orig" "$src1" "$src2" exit $ret -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor