diff hgsubversion/hg_delta_editor.py @ 375:af9fc01299b4

Make branch closing more Mercurial-like. We now use the 'close' value from extra instead of the old closed-branches branch.
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Fri, 29 May 2009 15:24:12 +0200
parents 758d9dbae9f9
children 9327e9325645
line wrap: on
line diff
--- a/hgsubversion/hg_delta_editor.py
+++ b/hgsubversion/hg_delta_editor.py
@@ -742,27 +742,24 @@ class HgChangeReceiver(delta.Editor):
 
         # 3. close any branches that need it
         for branch in tbdelta['branches'][1]:
-            closed = revlog.nullid
-            if 'closed-branches' in self.repo.branchtags():
-                closed = self.repo['closed-branches'].node()
             # self.get_parent_revision(rev.revnum, branch)
             ha = closebranches.get(branch)
             if ha is None:
                 continue
-            self.delbranch(branch, (ha, closed), rev)
+            self.delbranch(branch, ha, rev)
 
         self._save_metadata()
         self.clear_current_info()
 
-    def delbranch(self, branch, parents, rev):
+    def delbranch(self, branch, node, rev):
         def del_all_files(*args):
             raise IOError
-        files = self.repo[parents[0]].manifest().keys()
-        extra = {}
+        files = self.repo[node].manifest().keys()
+        extra = {'close': 1}
         if self.usebranchnames:
-            extra['branch'] = 'closed-branches'
+            extra['branch'] = branch or 'default'
         ctx = context.memctx(self.repo,
-                             parents,
+                             (node, revlog.nullid),
                              rev.message or util.default_commit_msg,
                              files,
                              del_all_files,