From: Jeff King <peff@peff.net>
To: git@vger.kernel.org
Subject: [PATCH 0/3] detecting delete/modechange conflicts
Date: Mon, 26 Oct 2015 17:35:02 -0400 [thread overview]
Message-ID: <20151026213502.GA17244@sigill.intra.peff.net> (raw)
I was surprised to find that:
# base commit
echo base >file &&
git add file &&
git commit -m base &&
# one side changes mode
chmod +x file &&
git commit -am executable &&
# the other deletes the file
git checkout -b other HEAD^ &&
git rm file &&
git commit -am removed &&
git merge master
silently completes the merge, dropping the mode change. We detect
delete/modify conflicts, but not delete/modechange conflicts. The
trivial index merge does catch it, but both the resolve and recursive
strategies resolve it silently in favor of the deletion.
After looking through the history and the list archive, I don't _think_
this was intentional, and we simply missed the case in both places. But
maybe somebody else knows something I don't. It seems like we should be
punting to the user under the general principle of stupid and safe
merges.
[1/3]: t6031: move triple-rename test to t3030
[2/3]: t6031: generalize for recursive and resolve strategies
[3/3]: merge: detect delete/modechange conflict
-Peff
next reply other threads:[~2015-10-26 21:35 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-26 21:35 Jeff King [this message]
2015-10-26 21:36 ` [PATCH 1/3] t6031: move triple-rename test to t3030 Jeff King
2015-10-26 21:37 ` [PATCH 2/3] t6031: generalize for recursive and resolve strategies Jeff King
2015-10-26 21:39 ` [PATCH 3/3] merge: detect delete/modechange conflict Jeff King
2015-10-26 21:46 ` [PATCH 0/3] detecting delete/modechange conflicts Junio C Hamano
2015-10-26 21:54 ` Jeff King
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=20151026213502.GA17244@sigill.intra.peff.net \
--to=peff@peff.net \
--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).