bug in mercurial/merge.py
Steve Borho
steve at borho.org
Sat Sep 29 23:49:46 CDT 2007
I think this code block in merge.py is broken with respect to symlinks.
It starts on line 467:
elif m == "m": # merge
f2, fd, flags, move = a[2:]
r = filemerge(repo, f, fd, f2, wctx, mctx)
if r > 0:
unresolved += 1
else:
if r is None:
updated += 1
else:
merged += 1
util.set_exec(repo.wjoin(fd), "x" in flags)
if f != fd and move and util.lexists(repo.wjoin(f)):
repo.ui.debug(_("removing %s\n") % f)
os.unlink(repo.wjoin(f))
The problem is that if the merged file 'fd' is a symlink to a directory,
the util.set_exec() call can remove execute permissions from said
directory.
--
Steve Borho (steve at borho.org)
http://www.borho.org/~steve/steve.asc
Key fingerprint = 2D08 E7CF B624 624C DE1F E2E4 B0C2 5292 F2C6 2C8C
More information about the Mercurial-devel
mailing list