comparison mercurial/subrepo.py @ 9781:eccc8aacd6f9

subrepo: do a linear update when appropriate
author Matt Mackall <mpm@selenic.com>
date Sat, 07 Nov 2009 16:31:43 -0600
parents 1ee085511b89
children c1c40511c276
comparison
equal deleted inserted replaced
9780:1ee085511b89 9781:eccc8aacd6f9
198 source, revision = state 198 source, revision = state
199 hg.clean(self._repo, revision, False) 199 hg.clean(self._repo, revision, False)
200 200
201 def merge(self, state): 201 def merge(self, state):
202 self._get(state) 202 self._get(state)
203 hg.merge(self._repo, state[1], remind=False) 203 cur = self._repo['.']
204 dst = self._repo[state[1]]
205 if dst.ancestor(cur) == cur:
206 hg.update(self._repo, state[1])
207 else:
208 hg.merge(self._repo, state[1], remind=False)
204 209
205 def push(self, force): 210 def push(self, force):
206 # push subrepos depth-first for coherent ordering 211 # push subrepos depth-first for coherent ordering
207 c = self._repo[''] 212 c = self._repo['']
208 subs = c.substate # only repos that are committed 213 subs = c.substate # only repos that are committed