# HG changeset patch # User Patrick Mezard # Date 1285011731 -7200 # Node ID b0bb72460c4420b4d66d4ae7b8efdf0809fd27c9 # Parent 40c40c6f20b84b5326e063560b69b82d07dba29a patch: fix target when patching broken symlinks (issue2368) diff -r 40c40c6f20b8 -r b0bb72460c44 mercurial/patch.py --- a/mercurial/patch.py Fri Sep 17 10:21:02 2010 -0500 +++ b/mercurial/patch.py Mon Sep 20 21:42:11 2010 +0200 @@ -923,7 +923,7 @@ if afile == bfile: goodb = gooda else: - goodb = not nullb and os.path.exists(bfile) + goodb = not nullb and os.path.lexists(bfile) createfunc = hunk.createfile missing = not goodb and not gooda and not createfunc() diff -r 40c40c6f20b8 -r b0bb72460c44 tests/test-mq-symlinks --- a/tests/test-mq-symlinks Fri Sep 17 10:21:02 2010 -0500 +++ b/tests/test-mq-symlinks Mon Sep 20 21:42:11 2010 +0200 @@ -55,3 +55,14 @@ hg qpop hg qpush hg st -c + +echo '% replace broken symlink with another broken symlink' +ln -s linka linka +hg add linka +hg qnew link +hg mv linka linkb +ln -sf linkb linkb +hg qnew movelink +hg qpop +hg qpush +$TESTDIR/readlink.py linkb diff -r 40c40c6f20b8 -r b0bb72460c44 tests/test-mq-symlinks.out --- a/tests/test-mq-symlinks.out Fri Sep 17 10:21:02 2010 -0500 +++ b/tests/test-mq-symlinks.out Mon Sep 20 21:42:11 2010 +0200 @@ -29,3 +29,9 @@ C b C c C s +% replace broken symlink with another broken symlink +popping movelink +now at: link +applying movelink +now at: movelink +linkb -> linkb