##// END OF EJS Templates
merge with stable
Matt Mackall -
r14481:b2ee1613 merge default
parent child Browse files
Show More
@@ -824,7 +824,7 b' class gitsubrepo(abstractsubrepo):'
824 824
825 825 def dirty(self, ignoreupdate=False):
826 826 if self._gitmissing():
827 return True
827 return self._state[1] != ''
828 828 if self._gitisbare():
829 829 return True
830 830 if not ignoreupdate and self._state[1] != self._gitstate():
@@ -836,6 +836,9 b' class gitsubrepo(abstractsubrepo):'
836 836
837 837 def get(self, state, overwrite=False):
838 838 source, revision, kind = state
839 if not revision:
840 self.remove()
841 return
839 842 self._fetch(source, revision)
840 843 # if the repo was set to be bare, unbare it
841 844 if self._gitisbare():
@@ -953,6 +956,8 b' class gitsubrepo(abstractsubrepo):'
953 956 mergefunc()
954 957
955 958 def push(self, force):
959 if not self._state[1]:
960 return True
956 961 if self._gitmissing():
957 962 raise util.Abort(_("subrepo %s is missing") % self._relpath)
958 963 # if a branch in origin contains the revision, nothing to do
@@ -1009,6 +1014,8 b' class gitsubrepo(abstractsubrepo):'
1009 1014
1010 1015 def archive(self, ui, archiver, prefix):
1011 1016 source, revision = self._state
1017 if not revision:
1018 return
1012 1019 self._fetch(source, revision)
1013 1020
1014 1021 # Parse git's native archive command.
@@ -1033,10 +1040,10 b' class gitsubrepo(abstractsubrepo):'
1033 1040
1034 1041
1035 1042 def status(self, rev2, **opts):
1036 if self._gitmissing():
1043 rev1 = self._state[1]
1044 if self._gitmissing() or not rev1:
1037 1045 # if the repo is missing, return no results
1038 1046 return [], [], [], [], [], [], []
1039 rev1 = self._state[1]
1040 1047 modified, added, removed = [], [], []
1041 1048 if rev2:
1042 1049 command = ['diff-tree', rev1, rev2]
@@ -334,6 +334,33 b" Don't crash if the subrepo is missing"
334 334 $ hg sum | grep commit
335 335 commit: (clean)
336 336
337 Don't crash if the .hgsubstate entry is missing
338
339 $ hg update 1 -q
340 $ hg rm .hgsubstate
341 $ hg commit .hgsubstate -m 'no substate'
342 created new head
343 $ hg tag -l nosubstate
344 $ hg manifest
345 .hgsub
346 a
347
348 $ hg status -S
349 $ hg sum | grep commit
350 commit: 1 subrepos
351
352 $ hg commit -m 'restore substate'
353 committing subrepository s
354 $ hg manifest
355 .hgsub
356 .hgsubstate
357 a
358 $ hg sum | grep commit
359 commit: (clean)
360
361 $ hg update -qC nosubstate
362 $ ls s
363
337 364 Check hg update --clean
338 365 $ cd $TESTTMP/ta
339 366 $ echo > s/g
General Comments 0
You need to be logged in to leave comments. Login now