Merge with stable
authorMartin Geisler <mg@lazybytes.net>
Thu, 15 Jul 2010 14:11:14 +0200
changeset 11572 324bad1dc230
parent 11570 2d88369a27bf (current diff)
parent 11571 636554d58665 (diff)
child 11573 7ecf4a082c5f
Merge with stable
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.
         """