canonpath: allow canonicalization of non-existant paths
authorDan Villiom Podlaski Christiansen <danchr@gmail.com>
Sun, 08 Jan 2012 15:23:26 +0100
changeset 15797 c7a8164c61ab
parent 15796 3e5b6045ccfc
child 15801 bfd3ce759682
canonpath: allow canonicalization of non-existant paths Such as a copy destination; see the added test.
mercurial/scmutil.py
tests/test-symlinks.t
--- a/mercurial/scmutil.py	Sun Jan 08 14:33:10 2012 +0100
+++ b/mercurial/scmutil.py	Sun Jan 08 15:23:26 2012 +0100
@@ -313,8 +313,8 @@
             try:
                 name_st = os.stat(name)
             except OSError:
-                break
-            if util.samestat(name_st, root_st):
+                name_st = None
+            if name_st and util.samestat(name_st, root_st):
                 if not rel:
                     # name was actually the same as root (maybe a symlink)
                     return ''
--- a/tests/test-symlinks.t	Sun Jan 08 14:33:10 2012 +0100
+++ b/tests/test-symlinks.t	Sun Jan 08 15:23:26 2012 +0100
@@ -168,11 +168,12 @@
   ? foo
   $ hg status ../link
   ? foo
+  $ hg add foo
+  $ hg cp foo "$TESTTMP/link/bar"
+  foo has not been committed yet, so no copy data will be stored for bar.
   $ cd ..
 
 
-
-
   $ hg init b
   $ cd b
   $ ln -s nothing dangling