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