# HG changeset patch # User Patrick Mezard # Date 1285011731 -7200 # Node ID aca8b10bca6e39344a26271e3d3958feab9d5db5 # Parent b0bb72460c4420b4d66d4ae7b8efdf0809fd27c9 patch: do not overwrite broken untracked symlinks diff -r b0bb72460c44 -r aca8b10bca6e mercurial/patch.py --- a/mercurial/patch.py Mon Sep 20 21:42:11 2010 +0200 +++ b/mercurial/patch.py Mon Sep 20 21:42:11 2010 +0200 @@ -25,7 +25,7 @@ def copyfile(src, dst, basedir): abssrc, absdst = [util.canonpath(basedir, basedir, x) for x in [src, dst]] - if os.path.exists(absdst): + if os.path.lexists(absdst): raise util.Abort(_("cannot create %s: destination already exists") % dst) diff -r b0bb72460c44 -r aca8b10bca6e tests/test-mq-symlinks --- a/tests/test-mq-symlinks Mon Sep 20 21:42:11 2010 +0200 +++ b/tests/test-mq-symlinks Mon Sep 20 21:42:11 2010 +0200 @@ -66,3 +66,9 @@ hg qpop hg qpush $TESTDIR/readlink.py linkb +echo '% check patch does not overwrite untracked symlinks' +hg qpop +ln -s linkbb linkb +hg qpush + +true \ No newline at end of file diff -r b0bb72460c44 -r aca8b10bca6e tests/test-mq-symlinks.out --- a/tests/test-mq-symlinks.out Mon Sep 20 21:42:11 2010 +0200 +++ b/tests/test-mq-symlinks.out Mon Sep 20 21:42:11 2010 +0200 @@ -35,3 +35,10 @@ applying movelink now at: movelink linkb -> linkb +% check patch does not overwrite untracked symlinks +popping movelink +now at: link +applying movelink +patch failed, unable to continue (try -v) +patch failed, rejects left in working dir +errors during apply, please fix and refresh movelink