# HG changeset patch # User Martin Geisler # Date 1279195874 -7200 # Node ID 324bad1dc2305dd476e286f4817efa8c050fafd7 # Parent 2d88369a27bfa2c8e3a8023aad518f8d5167d0ca# Parent 636554d58665406a017b5c680d8003b331a5dbae Merge with stable diff -r 2d88369a27bf -r 324bad1dc230 mercurial/subrepo.py --- a/mercurial/subrepo.py Thu Jul 15 14:02:17 2010 +0200 +++ b/mercurial/subrepo.py Thu Jul 15 14:11:14 2010 +0200 @@ -13,6 +13,10 @@ nullstate = ('', '', 'empty') def state(ctx): + """return a state dict, mapping subrepo paths configured in .hgsub + to tuple: (source from .hgsub, revision from .hgsubstate, kind + (key in types dict)) + """ p = config.config() def read(f, sections=None, remap=None): if f in ctx: @@ -46,12 +50,14 @@ return state def writestate(repo, state): + """rewrite .hgsubstate in (outer) repo with these subrepo states""" repo.wwrite('.hgsubstate', ''.join(['%s %s\n' % (state[s][1], s) for s in sorted(state)]), '') def submerge(repo, wctx, mctx, actx): - # working context, merging context, ancestor context + """delegated from merge.applyupdates: merging of .hgsubstate file + in working context, merging context and ancestor context""" if mctx == actx: # backwards? actx = wctx.p1() s1 = wctx.substate @@ -131,6 +137,7 @@ writestate(repo, sm) def relpath(sub): + """return path to this subrepo as seen from outermost repo""" if not hasattr(sub, '_repo'): return sub._path parent = sub._repo @@ -139,6 +146,8 @@ return sub._repo.root[len(parent.root)+1:] def _abssource(repo, push=False): + """return pull/push path of repo - either based on parent repo + .hgsub info or on the subrepos own config""" if hasattr(repo, '_subparent'): source = repo._subsource if source.startswith('/') or '://' in source: @@ -158,6 +167,7 @@ return repo.ui.config('paths', 'default', repo.root) def subrepo(ctx, path): + """return instance of the right subrepo class for subrepo in path""" # subrepo inherently violates our import layering rules # because it wants to make repo objects from deep inside the stack # so we manually delay the circular imports to not break @@ -207,7 +217,7 @@ raise NotImplementedError def push(self, force): - """perform whatever action is analagous to 'hg push' + """perform whatever action is analogous to 'hg push' This may be a no-op on some systems. """