Rev 6011: (benoit.pierre) Allow 'bzr version-info' to be run when the WT is at in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Jul 6 14:54:54 UTC 2011
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 6011 [merge]
revision-id: pqm at pqm.ubuntu.com-20110706145453-tuhya3x9udlu1lmx
parent: pqm at pqm.ubuntu.com-20110706141854-wpc2nq21xwg25kbf
parent: john at arbash-meinel.com-20110706123925-hh42bxo65w30niky
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2011-07-06 14:54:53 +0000
message:
(benoit.pierre) Allow 'bzr version-info' to be run when the WT is at
a dotted revno of the branch.
modified:
bzrlib/tests/test_version_info.py test_version_info.py-20051228204928-2c364e30b702b41b
bzrlib/version_info_formats/__init__.py generate_version_info.py-20051228204928-8358edabcddcd97e
bzrlib/version_info_formats/format_custom.py format_custom.py-20071029100350-ajovqhbpb5khf6gu-1
bzrlib/version_info_formats/format_python.py format_python.py-20060809202444-ike7i9ub03gb432p-1
bzrlib/version_info_formats/format_rio.py format_rio.py-20060809202444-ike7i9ub03gb432p-2
doc/en/release-notes/bzr-2.4.txt bzr2.4.txt-20110114053217-k7ym9jfz243fddjm-1
=== modified file 'bzrlib/tests/test_version_info.py'
--- a/bzrlib/tests/test_version_info.py 2011-05-13 12:51:05 +0000
+++ b/bzrlib/tests/test_version_info.py 2011-06-14 17:01:15 +0000
@@ -53,6 +53,25 @@
return wt
+ def create_tree_with_dotted_revno(self):
+ wt = self.make_branch_and_tree('branch')
+ self.build_tree(['branch/a'])
+ wt.add('a')
+ wt.commit('a', rev_id='r1')
+
+ other = wt.bzrdir.sprout('other').open_workingtree()
+ self.build_tree(['other/b.a'])
+ other.add(['b.a'])
+ other.commit('b.a', rev_id='o2')
+
+ os.chdir('branch')
+ self.run_bzr('merge ../other')
+ wt.commit('merge', rev_id='merge')
+
+ wt.update(revision='o2')
+
+ return wt
+
def test_rio_null(self):
wt = self.make_branch_and_tree('branch')
@@ -63,6 +82,15 @@
self.assertContainsRe(val, 'build-date:')
self.assertContainsRe(val, 'revno: 0')
+ def test_rio_dotted_revno(self):
+ wt = self.create_tree_with_dotted_revno()
+
+ sio = StringIO()
+ builder = RioVersionInfoBuilder(wt.branch, working_tree=wt)
+ builder.generate(sio)
+ val = sio.getvalue()
+ self.assertContainsRe(val, 'revno: 1.1.1')
+
def test_rio_version_text(self):
wt = self.create_branch()
@@ -191,9 +219,18 @@
builder.generate(sio)
val = sio.getvalue()
self.assertContainsRe(val, "'revision_id': None")
- self.assertContainsRe(val, "'revno': 0")
+ self.assertContainsRe(val, "'revno': '0'")
self.assertNotContainsString(val, '\n\n\n\n')
+ def test_python_dotted_revno(self):
+ wt = self.create_tree_with_dotted_revno()
+
+ sio = StringIO()
+ builder = PythonVersionInfoBuilder(wt.branch, working_tree=wt)
+ builder.generate(sio)
+ val = sio.getvalue()
+ self.assertContainsRe(val, "'revno': '1.1.1'")
+
def test_python_version(self):
wt = self.create_branch()
@@ -223,7 +260,7 @@
return tvi
tvi = regen()
- self.assertEqual(3, tvi.version_info['revno'])
+ self.assertEqual('3', tvi.version_info['revno'])
self.assertEqual('r3', tvi.version_info['revision_id'])
self.assertTrue(tvi.version_info.has_key('date'))
self.assertEqual(None, tvi.version_info['clean'])
@@ -283,6 +320,14 @@
self.assertRaises(errors.MissingTemplateVariable,
builder.generate, sio)
+ def test_custom_dotted_revno(self):
+ sio = StringIO()
+ wt = self.create_tree_with_dotted_revno()
+ builder = CustomVersionInfoBuilder(wt.branch, working_tree=wt,
+ template='{revno} revid: {revision_id}')
+ builder.generate(sio)
+ self.assertEquals("1.1.1 revid: o2", sio.getvalue())
+
def test_custom_version_text(self):
wt = self.create_branch()
=== modified file 'bzrlib/version_info_formats/__init__.py'
--- a/bzrlib/version_info_formats/__init__.py 2010-07-15 13:41:31 +0000
+++ b/bzrlib/version_info_formats/__init__.py 2011-06-12 20:09:55 +0000
@@ -159,6 +159,11 @@
return self._working_tree.last_revision()
return self._branch.last_revision()
+ def _get_revno_str(self, revision_id):
+ numbers = self._branch.revision_id_to_dotted_revno(revision_id)
+ revno_str = '.'.join([str(num) for num in numbers])
+ return revno_str
+
def generate(self, to_file):
"""Output the version information to the supplied file.
=== modified file 'bzrlib/version_info_formats/format_custom.py'
--- a/bzrlib/version_info_formats/format_custom.py 2009-04-03 21:23:55 +0000
+++ b/bzrlib/version_info_formats/format_custom.py 2011-06-12 20:09:55 +0000
@@ -93,7 +93,7 @@
if revision_id == NULL_REVISION:
info.add('revno', 0)
else:
- info.add('revno', self._branch.revision_id_to_revno(revision_id))
+ info.add('revno', self._get_revno_str(revision_id))
info.add('revision_id', revision_id)
rev = self._branch.repository.get_revision(revision_id)
info.add('date', create_date_str(rev.timestamp, rev.timezone))
=== modified file 'bzrlib/version_info_formats/format_python.py'
--- a/bzrlib/version_info_formats/format_python.py 2011-01-12 21:28:39 +0000
+++ b/bzrlib/version_info_formats/format_python.py 2011-06-12 20:09:55 +0000
@@ -39,7 +39,7 @@
_py_version_footer = '''
if __name__ == '__main__':
- print 'revision: %(revno)d' % version_info
+ print 'revision: %(revno)s' % version_info
print 'nick: %(branch_nick)s' % version_info
print 'revision id: %(revision_id)s' % version_info
'''
@@ -60,9 +60,9 @@
revision_id = self._get_revision_id()
if revision_id == NULL_REVISION:
- info['revno'] = 0
+ info['revno'] = '0'
else:
- info['revno'] = self._branch.revision_id_to_revno(revision_id)
+ info['revno'] = self._get_revno_str(revision_id)
info['revision_id'] = revision_id
rev = self._branch.repository.get_revision(revision_id)
info['date'] = create_date_str(rev.timestamp, rev.timezone)
=== modified file 'bzrlib/version_info_formats/format_rio.py'
--- a/bzrlib/version_info_formats/format_rio.py 2011-03-30 11:45:54 +0000
+++ b/bzrlib/version_info_formats/format_rio.py 2011-06-12 20:09:55 +0000
@@ -38,7 +38,7 @@
info.add('revision-id', revision_id)
rev = self._branch.repository.get_revision(revision_id)
info.add('date', create_date_str(rev.timestamp, rev.timezone))
- revno = str(self._branch.revision_id_to_revno(revision_id))
+ revno = self._get_revno_str(revision_id)
for hook in RioVersionInfoBuilder.hooks['revision']:
hook(rev, info)
else:
=== modified file 'doc/en/release-notes/bzr-2.4.txt'
--- a/doc/en/release-notes/bzr-2.4.txt 2011-07-06 14:18:54 +0000
+++ b/doc/en/release-notes/bzr-2.4.txt 2011-07-06 14:54:53 +0000
@@ -83,6 +83,9 @@
``RepositoryFormat.supports_versioned_directories``.
(Jelmer Vernooij, #765815)
+* The "revno" field type when using the python version-info format is now
+ a string (to handle dotted revnos) (Benoît Pierre, #796259)
+
Internals
*********
@@ -168,6 +171,9 @@
``True``.
(Martin Pool, #220464)
+* ``bzr version-info`` now works when the tree is on a dotted revno.
+ (Benoît Pierre, #796259)
+
* Credentials in the log output produced by ``-Dhttp`` are masked so users
can more freely post them in bug reports. (Vincent Ladeuil, #723074)
More information about the bazaar-commits
mailing list