# HG changeset patch # User Mads Kiilerich # Date 1279193042 -7200 # Node ID 636554d58665406a017b5c680d8003b331a5dbae # Parent efbc09fdefd8fd8480eb715b11f3b9bdafab598d subrepo: docstrings diff -r efbc09fdefd8 -r 636554d58665 mercurial/subrepo.py --- a/mercurial/subrepo.py Thu Jul 08 22:44:15 2010 +0200 +++ b/mercurial/subrepo.py Thu Jul 15 13:24:02 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 @@ -184,7 +194,7 @@ # get(self, state): run whatever commands are needed to put the # subrepo into this state # merge(self, state): merge currently-saved state with the new state. -# push(self, force): perform whatever action is analagous to 'hg push' +# push(self, force): perform whatever action is analogous to 'hg push' # This may be a no-op on some systems. class hgsubrepo(object):