mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
extdiff: fix broken symlinks handling (issue1909)
This commit is contained in:
parent
7564668184
commit
2cbeb4b9c6
@ -100,7 +100,8 @@ def snapshot(ui, repo, files, node, tmproot):
|
||||
if 'x' in fctx.flags():
|
||||
util.set_flags(dest, False, True)
|
||||
if node is None:
|
||||
fns_and_mtime.append((dest, repo.wjoin(fn), os.path.getmtime(dest)))
|
||||
fns_and_mtime.append((dest, repo.wjoin(fn),
|
||||
os.lstat(dest).st_mtime))
|
||||
return dirname, fns_and_mtime
|
||||
|
||||
def dodiff(ui, repo, diffcmd, diffopts, pats, opts):
|
||||
@ -222,7 +223,7 @@ def dodiff(ui, repo, diffcmd, diffopts, pats, opts):
|
||||
util.system(cmdline, cwd=tmproot)
|
||||
|
||||
for copy_fn, working_fn, mtime in fns_and_mtime:
|
||||
if os.path.getmtime(copy_fn) != mtime:
|
||||
if os.lstat(copy_fn).st_mtime != mtime:
|
||||
ui.debug('file changed while diffing. '
|
||||
'Overwriting: %s (src: %s)\n' % (working_fn, copy_fn))
|
||||
util.copyfile(copy_fn, working_fn)
|
||||
|
@ -167,4 +167,18 @@ Test extdiff with --option:
|
||||
$ hg falabala -o this -c 1
|
||||
diffing this a.8a5febb7f867/a a.34eed99112ab/a
|
||||
[1]
|
||||
$ cd ..
|
||||
|
||||
$ hg init testsymlinks
|
||||
$ cd testsymlinks
|
||||
$ echo a > a
|
||||
$ hg ci -Am adda
|
||||
adding a
|
||||
$ echo a >> a
|
||||
$ ln -s missing linka
|
||||
$ hg add linka
|
||||
$ hg falabala -r 0 --traceback
|
||||
diffing testsymlinks.07f494440405 testsymlinks
|
||||
[1]
|
||||
$ cd ..
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user