diff hgsubversion/svnmeta.py @ 452:ae35c389cdef

tags: allow editing tags of closed branches without reopening the branch
author Augie Fackler <durin42@gmail.com>
date Fri, 26 Jun 2009 14:53:58 -0500
parents e533e78f1b2f
children bb612e625be6 54e57da61c1a
line wrap: on
line diff
--- a/hgsubversion/svnmeta.py
+++ b/hgsubversion/svnmeta.py
@@ -432,6 +432,17 @@ class SVNMeta(object):
                                       isexec=False,
                                       copied=False)
         pextra = parentctx.extra()
+        revnum, branch = self.parse_converted_revision(pextra['convert_revision'])
+        newparent = None
+        for child in parentctx.children():
+            cextra = child.extra()
+            if (self.parse_converted_revision(cextra['convert_revision'])[1] == branch
+                and cextra.get('close', False)):
+                newparent = child
+        if newparent:
+            parentctx = newparent
+            pextra = parentctx.extra()
+            revnum, branch = self.parse_converted_revision(pextra['convert_revision'])
         ctx = context.memctx(self.repo,
                              (parentctx.node(), node.nullid),
                              rev.message or '...',
@@ -441,9 +452,9 @@ class SVNMeta(object):
                              date,
                              pextra)
         new_hash = self.repo.commitctx(ctx)
-        revnum, branch = self.parse_converted_revision(pextra['convert_revision'])
-        assert self.revmap[revnum, branch] == parentctx.node()
-        self.revmap[revnum, branch] = new_hash
+        if not newparent:
+            assert self.revmap[revnum, branch] == parentctx.node()
+            self.revmap[revnum, branch] = new_hash
         self.tags[tag] = hash
         util.describe_commit(self.ui, new_hash, branch)