From: Jeff King <peff@peff.net>
To: Elijah Newren <newren@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com,
Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: [PATCHv2 0/3] Fix unnecessary (mtime) updates of files during merge
Date: Tue, 1 Mar 2011 14:31:42 -0500 [thread overview]
Message-ID: <20110301193142.GA10082@sigill.intra.peff.net> (raw)
In-Reply-To: <1298941732-19763-1-git-send-email-newren@gmail.com>
On Mon, Feb 28, 2011 at 06:08:49PM -0700, Elijah Newren wrote:
> This patch series fixes a bug reported by Stephen Rothwell -- that
> during merges git would unnecessarily update modification times of
> files.
Thanks for the fix. Sorry I didn't have a chance to look at your interim
patch, but it seems you resolved the issue.
> There are two testcases included in this patch series. The first is a
> simple case to test the originally reported bug; this testcase is
> fixed in this series (as is Stephen's original linux-next testcase).
> The second testcase suffers from the exact same problem, but arises
> from a different situation and is not fixed in this series. That
> testcase is slightly harder to solve because:
>
> * unpack_trees + threeway_merge throws away the original index entry
> with stat information when it notices the directory/file conflict
>
> * make_room_for_directories_of_df_conflicts() must remove such files
> from the working copy or the corresponding directory and files
> below it will be unable to be written to the working copy (which
> can cause spurious conflicts, or make resolving conflicts very
> hard for users who don't know how to access the many files missing
> from their working copy).
>
> We could fix this second testcase by recording stat information for
> files removed by make_room_for_directories_of_df_conflicts(), and
> then, if those files are reinstated at the end of conflict resolution
> (i.e. the directory of the D/F conflict went away during the merge),
> then call utime() to reset the modification times on those files back
> to what they originally were.
As you mention, this second testcase is not a regression at all, and
while it would be great if we could avoid touching those files at all, I
don't think anybody will be too upset at files being rewritten that were
actually involved in the conflict.
I think the fix you have for the first testcase is reasonable. It feels
a little like a band-aid, as we are throwing away stat information early
on and then pulling it again from the filesyste at the end. But from
your description, the real fix to that would probably involve some
changes to the way unpack_trees works, and that's probably complex
enough that the band-aid is a good fix for now.
-Peff
next prev parent reply other threads:[~2011-03-01 19:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-01 1:08 [PATCHv2 0/3] Fix unnecessary (mtime) updates of files during merge Elijah Newren
2011-03-01 1:08 ` [PATCHv2 1/3] t6022: New test checking for unnecessary updates of renamed+modified files Elijah Newren
2011-03-01 7:33 ` Johannes Sixt
2011-03-01 19:38 ` Jeff King
2011-03-02 22:26 ` Elijah Newren
2011-03-01 1:08 ` [PATCHv2 2/3] t6022: New test checking for unnecessary updates of files in D/F conflicts Elijah Newren
2011-03-01 1:08 ` [PATCHv2 3/3] merge-recursive: When we detect we can skip an update, actually skip it Elijah Newren
2011-03-02 20:19 ` Junio C Hamano
2011-03-02 22:22 ` Elijah Newren
2011-03-02 23:23 ` Junio C Hamano
2011-03-01 19:31 ` Jeff King [this message]
2011-03-01 19:36 ` [PATCHv2 0/3] Fix unnecessary (mtime) updates of files during merge Jeff King
2011-03-02 23:11 ` Elijah Newren
2011-03-02 23:22 ` 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=20110301193142.GA10082@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=sfr@canb.auug.org.au \
/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).