[PATCH] convert/mtn: Add support for closing branches during conversion from monotone
daniel.atallah at gmail.com
daniel.atallah at gmail.com
Fri Mar 25 14:50:00 CDT 2011
# HG changeset patch
# User Daniel Atallah <daniel.atallah at gmail.com>
# Date 1301082583 14400
# Branch stable
# Node ID 1008687ea3a4ce3e582f03cbaaf68c8df57b0bdb
# Parent 3ce8f1e70bad2cd91c588ce4bc24310ae0c6d665
convert/mtn: Add support for closing branches during conversion from monotone
Monotone treats branch closing ("suspending") in a similar manner to how we do
in mercurial - a cert is added to a revision that marks the branch to be hidden.
If a subsequent commit is made, the branch is effectively reopened.
diff --git a/hgext/convert/monotone.py b/hgext/convert/monotone.py
--- a/hgext/convert/monotone.py
+++ b/hgext/convert/monotone.py
@@ -291,14 +291,18 @@
return data, attr
def getcommit(self, rev):
- certs = self.mtngetcerts(rev)
+ extra = {}
+ certs = self.mtngetcerts(rev)
+ if certs.get('suspend') == certs["branch"]:
+ extra['close'] = '1'
return commit(
author=certs["author"],
date=util.datestr(util.strdate(certs["date"], "%Y-%m-%dT%H:%M:%S")),
desc=certs["changelog"],
rev=rev,
parents=self.mtnrun("parents", rev).splitlines(),
- branch=certs["branch"])
+ branch=certs["branch"],
+ extra=extra)
def gettags(self):
tags = {}
diff --git a/tests/test-convert-mtn.t b/tests/test-convert-mtn.t
--- a/tests/test-convert-mtn.t
+++ b/tests/test-convert-mtn.t
@@ -208,6 +208,11 @@
$ mtn ci -m divergentdirmove2
mtn: beginning commit on branch 'com.selenic.test'
mtn: committed revision 4a736634505795f17786fffdf2c9cbf5b11df6f6
+
+test suspending (closing a branch)
+
+ $ mtn suspend 4a736634505795f17786fffdf2c9cbf5b11df6f6
+ mtn: note: your workspace has not been updated
$ cd ..
convert incrementally
@@ -356,3 +361,9 @@
dir8-2/a
dir9-2/b
e
+
+check branch closing
+
+ $ hg branches -a
+ $ hg branches -c | sed "s/13:[a-f0-9]\{12\}/13:deadbeef9999/"
+ com.selenic.test 13:deadbeef9999 (closed)
\ No newline at end of file
More information about the Mercurial-devel
mailing list