[PATCH] check execute bit before removing merge node

Matt Mackall mpm at selenic.com
Thu Aug 25 22:46:56 CDT 2005

On Thu, Aug 25, 2005 at 01:42:09PM +0100, Michael Fetterman wrote:
> Oops.  Caught a small typo in the last patch.  Fixed below.
> Michael
> ----
> Horray for the recent change that fixed the long-standing excessive file
> merge issues.
> Here's one more fix for that change.  Removing a merge node on a file
> should not happen if the file's execute bit has changed status.  This patch
> handles that as well, and adds a test case that both checks this, and
> checks that the file merging not adding any unnecessary nodes.

If I understand this correctly, I don't think it's right. The execute
bit is stored in the manifest, so if the file _contents_ are
unchanged, there's no reason to rev the file itself. We just need to
record the mode change in the manifest.

The next question is tough: should the file be listed in 'changed
files' in the changeset itself? I would lean towards 'no'. This list
primarily exists to allow finding new file revision for push/pull, so
if we don't add a new revision, we don't add the file to changeset.changed.

Which means we'll probably have to pass changed + bitchanged or
somesuch to manifest.add. Chris might have some other thoughts.

Mathematics is the supreme nostalgia of our time.

More information about the Mercurial mailing list