--- 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):