[PATCH] check execute bit before removing merge node
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.
> 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