largefiles: remove empty directories upon update (issue3202) stable
authorPatrick Mezard <pmezard@gmail.com>
Tue, 17 Jan 2012 11:29:32 +0100
branchstable
changeset 15900 29defa7d20f6
parent 15872 a3e2b9a1f063
child 15909 8435fa20dff9
child 15937 7ed056f1e97d
largefiles: remove empty directories upon update (issue3202)
hgext/largefiles/lfcommands.py
tests/test-largefiles.t
--- a/hgext/largefiles/lfcommands.py	Sun Jan 15 13:39:09 2012 +0100
+++ b/hgext/largefiles/lfcommands.py	Tue Jan 17 11:29:32 2012 +0100
@@ -451,7 +451,7 @@
         # largefile is converted back to a normal file: the standin
         # disappears, but a new (normal) file appears as the lfile.
         if os.path.exists(abslfile) and lfile not in repo[None]:
-            os.unlink(abslfile)
+            util.unlinkpath(abslfile)
             ret = -1
     state = repo.dirstate[lfutil.standin(lfile)]
     if state == 'n':
--- a/tests/test-largefiles.t	Sun Jan 15 13:39:09 2012 +0100
+++ b/tests/test-largefiles.t	Tue Jan 17 11:29:32 2012 +0100
@@ -571,6 +571,14 @@
   getting changed largefiles
   1 largefiles updated, 0 removed
 
+Test removing empty largefiles directories on update
+  $ test -d sub2 && echo "sub2 exists"
+  sub2 exists
+  $ hg update -q null
+  $ test -d sub2 && echo "error: sub2 should not exist anymore"
+  [1]
+  $ hg update -q
+
 "revert" works on largefiles (and normal files too).
   $ echo hack3 >> normal3
   $ echo hack4 >> sub/normal4