diff hgext/largefiles/reposetup.py @ 15629:5b66e55c0d93 stable

largefiles: fix 'hg status' abort after merge If a largefile is introduced on the branch that is merged into the working copy, then 'hg status' would abort with an error like: $ hg status abort: .hglf/foo@33fdd332ec64: not found in manifest! The problem was that the largefiles status code only looked in the first parent for the largefile. Largefiles are now always reported as modified if they don't exist in the first parent -- this matches the behavior of localrepo.status for normal files.
author Martin Geisler <mg@aragost.com>
date Fri, 09 Dec 2011 17:34:58 +0100
parents 4439ec496378
children e6868bd17f24 9036c7d106bf
line wrap: on
line diff
--- a/hgext/largefiles/reposetup.py	Tue Dec 06 15:50:28 2011 +0100
+++ b/hgext/largefiles/reposetup.py	Fri Dec 09 17:34:58 2011 +0100
@@ -156,7 +156,11 @@
                                 ignored, clean) = s
                         if parentworking:
                             for lfile in unsure:
-                                if ctx1[lfutil.standin(lfile)].data().strip() \
+                                standin = lfutil.standin(lfile)
+                                if standin not in ctx1:
+                                    # from second parent
+                                    modified.append(lfile)
+                                elif ctx1[standin].data().strip() \
                                         != lfutil.hashfile(self.wjoin(lfile)):
                                     modified.append(lfile)
                                 else: