##// END OF EJS Templates
largefiles: fix 'deleted' files sometimes persistently appearing with R status...
Mads Kiilerich -
r30191:328545c7 stable
parent child Browse files
Show More
@@ -164,8 +164,8 b' def reposetup(ui, repo):'
164 164 # files from lfdirstate
165 165 unsure, s = lfdirstate.status(match, [], False, listclean,
166 166 False)
167 (modified, added, removed, clean) = (s.modified, s.added,
168 s.removed, s.clean)
167 (modified, added, removed, deleted, clean) = (
168 s.modified, s.added, s.removed, s.deleted, s.clean)
169 169 if parentworking:
170 170 for lfile in unsure:
171 171 standin = lfutil.standin(lfile)
@@ -206,14 +206,18 b' def reposetup(ui, repo):'
206 206 removed = [lfile for lfile in removed
207 207 if lfutil.standin(lfile) in ctx1]
208 208
209 # Standins no longer found in lfdirstate has been
210 # removed
209 # Standins no longer found in lfdirstate have been deleted
211 210 for standin in ctx1.walk(lfutil.getstandinmatcher(self)):
212 211 lfile = lfutil.splitstandin(standin)
213 212 if not match(lfile):
214 213 continue
215 214 if lfile not in lfdirstate:
216 removed.append(lfile)
215 deleted.append(lfile)
216 # Sync "largefile has been removed" back to the
217 # standin. Removing a file as a side effect of
218 # running status is gross, but the alternatives (if
219 # any) are worse.
220 self.wvfs.unlink(standin)
217 221
218 222 # Filter result lists
219 223 result = list(result)
@@ -237,7 +241,7 b' def reposetup(ui, repo):'
237 241 normals = [[fn for fn in filelist
238 242 if not lfutil.isstandin(fn)]
239 243 for filelist in result]
240 lfstatus = (modified, added, removed, s.deleted, [], [],
244 lfstatus = (modified, added, removed, deleted, [], [],
241 245 clean)
242 246 result = [sorted(list1 + list2)
243 247 for (list1, list2) in zip(normals, lfstatus)]
@@ -751,30 +751,22 b' added:'
751 751 $ hg up -Cr "8" --config extensions.crashupdatelfiles=../crashupdatelfiles.py
752 752 [7]
753 753 Check large1 content and status ... and that update will undo modifications:
754 BUG: large is R
755 754 $ cat large1
756 755 large1 in #3
757 756 $ hg st
758 757 M large1
759 R largeX
758 ! largeX
760 759 $ hg up -Cr .
761 760 getting changed largefiles
762 1 largefiles updated, 0 removed
763 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
761 2 largefiles updated, 0 removed
762 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
764 763 $ cat large1
765 764 manually modified before 'hg transplant --continue'
766 765 $ hg st
767 R largeX
768 Force largefiles rehashing and check again - which makes it realize that largeX
769 not has been removed but just doesn't exist:
766 Force largefiles rehashing and check that all changes have been caught by
767 status and update:
770 768 $ rm .hg/largefiles/dirstate
771 769 $ hg st
772 ! largeX
773 $ hg up -Cr .
774 getting changed largefiles
775 1 largefiles updated, 0 removed
776 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
777 $ hg st
778 770
779 771 $ cd ..
780 772
General Comments 0
You need to be logged in to leave comments. Login now