[MERGE][Bug #52479] Message at the end of commit for bound branches

Daniel Watkins D.M.Watkins at warwick.ac.uk
Wed Sep 5 01:46:06 BST 2007


On Tue, 2007-09-04 at 19:52 -0400, Aaron Bentley wrote:
> I think the URL should be handled with urlutils.unescape_for_display, so
> that local paths aren't unnecessarily ugly.  The best place is probably
> inside ReportCommitToLog.started.
Fixed in attached.

-- 
Daniel Watkins (Odd_Bloke) <D.M.Watkins at warwick.ac.uk>
University of Warwick Christian Focus President
University of Warwick Computing Society WUGLUG Liaison Officer
-------------- next part --------------
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: d.m.watkins at warwick.ac.uk-20070905004301-\
#   5fcr0ozifdbds1ui
# target_branch: file:///home/daniel/devel/bzr/bzr.dev/
# testament_sha1: 15c500e34e9bba05a7f3a72827955c701c701641
# timestamp: 2007-09-05 01:43:12 +0100
# base_revision_id: pqm at pqm.ubuntu.com-20070904035759-iv4xl6d7ez69txba
# 
# Begin patch
=== modified file 'NEWS'
--- NEWS	2007-09-04 01:20:26 +0000
+++ NEWS	2007-09-04 23:25:51 +0000
@@ -117,6 +117,9 @@
    * When two plugins conflict, the source of both the losing and now the
      winning definition is shown.  (Konstantin Mikhaylov, #5454)
 
+   * When committing to a branch, the location being committed to is
+     displayed.  (Daniel Watkins, #52479)
+
   IMPROVEMENTS:
 
    * Add the option "--show-diff" to the commit command in order to display

=== modified file 'bzrlib/commit.py'
--- bzrlib/commit.py	2007-09-02 05:37:08 +0000
+++ bzrlib/commit.py	2007-09-05 00:36:07 +0000
@@ -80,12 +80,16 @@
         deprecated_function,
         DEPRECATED_PARAMETER)
 from bzrlib.workingtree import WorkingTree
+from bzrlib.urlutils import unescape_for_display
 import bzrlib.ui
 
 
 class NullCommitReporter(object):
     """I report on progress of a commit."""
 
+    def started(self, revno, revid, location=None):
+        pass
+
     def snapshot_change(self, change, path):
         pass
 
@@ -121,6 +125,13 @@
             return
         self._note("%s %s", change, path)
 
+    def started(self, revno, rev_id, location=None):
+        if location is not None:
+            location = ' to "' + unescape_for_display(location, 'utf-8') + '"'
+        else:
+            location = ''
+        self._note('Committing revision %d%s.', revno, location)
+
     def completed(self, revno, rev_id):
         self._note('Committed revision %d.', revno)
     
@@ -290,7 +301,7 @@
             self._gather_parents()
             if len(self.parents) > 1 and self.specific_files:
                 raise errors.CannotCommitSelectedFileMerge(self.specific_files)
-            
+
             # Collect the changes
             self._set_progress_stage("Collecting changes",
                     entries_title="Directory")
@@ -298,6 +309,15 @@
                 self.config, timestamp, timezone, committer, revprops, rev_id)
             
             try:
+                # find the location being committed to
+                if self.bound_branch:
+                    master_location = self.master_branch.base
+                else:
+                    master_location = self.branch.base
+
+                # report the start of the commit
+                self.reporter.started(new_revno, self.rev_id, master_location)
+
                 self._update_builder_with_changes()
                 self._check_pointless()
 

=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- bzrlib/tests/blackbox/test_commit.py	2007-09-04 03:57:59 +0000
+++ bzrlib/tests/blackbox/test_commit.py	2007-09-05 00:43:01 +0000
@@ -35,7 +35,7 @@
         self.build_tree(['hello.txt'])
         out,err = self.run_bzr('commit -m empty', retcode=3)
         self.assertEqual('', out)
-        self.assertStartsWith(err, 'bzr: ERROR: no changes to commit.'
+        self.assertContainsRe(err, 'bzr: ERROR: no changes to commit\.'
                                   ' use --unchanged to commit anyhow\n')
 
     def test_commit_success(self):
@@ -75,9 +75,9 @@
         tree.add("hello.txt")
         out,err = self.run_bzr('commit -m added')
         self.assertEqual('', out)
-        self.assertEqual('added hello.txt\n'
-                         'Committed revision 1.\n',
-                         err)
+        self.assertContainsRe(err, '^Committing revision 1 to ".*"\.\n'
+                              'added hello.txt\n'
+                              'Committed revision 1.\n$',)
 
     def prepare_simple_history(self):
         """Prepare and return a working tree with one commit of one file"""
@@ -94,9 +94,9 @@
         self.build_tree_contents([('hello.txt', 'new contents')])
         out, err = self.run_bzr('commit -m modified')
         self.assertEqual('', out)
-        self.assertEqual('modified hello.txt\n'
-                         'Committed revision 2.\n',
-                         err)
+        self.assertContainsRe(err, '^Committing revision 2 to ".*"\.\n'
+                              'modified hello\.txt\n'
+                              'Committed revision 2\.\n$')
 
     def test_verbose_commit_renamed(self):
         # Verbose commit of renamed file should say so
@@ -104,9 +104,9 @@
         wt.rename_one('hello.txt', 'gutentag.txt')
         out, err = self.run_bzr('commit -m renamed')
         self.assertEqual('', out)
-        self.assertEqual('renamed hello.txt => gutentag.txt\n'
-                         'Committed revision 2.\n',
-                         err)
+        self.assertContainsRe(err, '^Committing revision 2 to ".*"\.\n'
+                              'renamed hello\.txt => gutentag\.txt\n'
+                              'Committed revision 2\.$\n')
 
     def test_verbose_commit_moved(self):
         # Verbose commit of file moved to new directory should say so
@@ -116,10 +116,10 @@
         wt.rename_one('hello.txt', 'subdir/hello.txt')
         out, err = self.run_bzr('commit -m renamed')
         self.assertEqual('', out)
-        self.assertEqualDiff('added subdir\n'
-                             'renamed hello.txt => subdir/hello.txt\n'
-                             'Committed revision 2.\n',
-                             err)
+        self.assertContainsRe(err, '^Committing revision 2 to ".*"\.\n'
+                              'added subdir\n'
+                              'renamed hello\.txt => subdir/hello\.txt\n'
+                              'Committed revision 2\.\n$')
 
     def test_verbose_commit_with_unknown(self):
         """Unknown files should not be listed by default in verbose output"""
@@ -129,9 +129,9 @@
         wt.add(['hello.txt'])
         out,err = self.run_bzr('commit -m added')
         self.assertEqual('', out)
-        self.assertEqual('added hello.txt\n'
-                         'Committed revision 1.\n',
-                         err)
+        self.assertContainsRe(err, '^Committing revision 1 to ".*"\.\n'
+                              'added hello\.txt\n'
+                              'Committed revision 1\.\n$')
 
     def test_verbose_commit_with_unchanged(self):
         """Unchanged files should not be listed by default in verbose output"""
@@ -142,9 +142,22 @@
         tree.add("hello.txt")
         out,err = self.run_bzr('commit -m added')
         self.assertEqual('', out)
-        self.assertEqual('added hello.txt\n'
-                         'Committed revision 2.\n',
-                         err)
+        self.assertContainsRe(err, '^Committing revision 2 to ".*"\.\n'
+                              'added hello\.txt\n'
+                              'Committed revision 2\.$\n')
+
+    def test_verbose_commit_includes_master_location(self):
+        """Location of master is displayed when committing to bound branch"""
+        a_tree = self.make_branch_and_tree('a')
+        self.build_tree(['a/b'])
+        a_tree.add('b')
+        a_tree.commit(message='Initial message')
+
+        b_tree = a_tree.branch.create_checkout('b')
+        expected = "%s/" % (os.path.abspath('a'), )
+        out, err = self.run_bzr('commit -m blah --unchanged', working_dir='b')
+        self.assertEqual(err, 'Committing revision 2 to "%s".\n'
+                         'Committed revision 2.\n' % expected)
 
     def test_commit_merge_reports_all_modified_files(self):
         # the commit command should show all the files that are shown by
@@ -198,9 +211,10 @@
         this_tree.merge_from_branch(other_tree.branch)
         os.chdir('this')
         out,err = self.run_bzr('commit -m added')
-        os.chdir('..')
         self.assertEqual('', out)
+        expected = '%s/' % (os.getcwd(), )
         self.assertEqualDiff(
+            'Committing revision 2 to "%s".\n'
             'modified filetomodify\n'
             'added newdir\n'
             'added newfile\n'
@@ -210,7 +224,7 @@
             'renamed filetorename => renamedfile\n'
             'deleted dirtoremove\n'
             'deleted filetoremove\n'
-            'Committed revision 2.\n',
+            'Committed revision 2.\n' % (expected, ),
             err)
 
     def test_empty_commit_message(self):
@@ -367,7 +381,9 @@
         output, err = self.run_bzr(
             'commit -m hello --fixes=lp:23452 tree/hello.txt')
         self.assertEqual('', output)
-        self.assertEqual('added hello.txt\nCommitted revision 1.\n', err)
+        self.assertContainsRe(err, 'Committing revision 1 to ".*"\.\n'
+                              'added hello\.txt\n'
+                              'Committed revision 1\.\n')
 
     def test_no_bugs_no_properties(self):
         """If no bugs are fixed, the bugs property is not set.

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWbRiT1gAGAd/gHRUQhBf////
fieej7////BgGpnXomYV77vfBfcz3tt3HLZtt9YfZg0AArQ0FCgOhz0ovuLjChOYd0VZIQAKBRTQ
AANAkkgmp5TDGmhFNimTymT9TSGhkaAAAAAJSCp409U9T01QANAAAAAAAAAAMQEIqR4aUNqbU21E
0HqABkNNAAA0ACTSkmQonlND0ZR5GpkwjRg0A0TIAGCNGgikEBACaMJpoRkKn7QyCmaSNGmQAP0o
8oFShAE0yEyCE1NkNU/VPKNMgaAAAABpoAg83SvqXlQbvcfSpuuB35ENxaZcd+KioiPXAOj6iHUg
y4dtoQkhNxElyk8E/68WMSB+zeUbf4l+oj/j3l/oz9q4+Qx6z/DL2Zb4e0yyOTk2NF0xcHDxc91O
Mm7vdb0OrpGe5LrkVVCaVnQCQqrQYyk7DfOumPOsYgF3BUKgsKhcjAujJjZ2GbXqnW3srjEiEqbW
nfHK0gHcgnKJlEFt2NpkIWkcp0QKQOt2wZ3qACQtrYjLO4D6yzws5zdM0UIYwBrNgUNEHGsZrNh8
OpmomNWiUgHYlIDrBVcEUPQlqftCHoS7zlsOqH9XejYWkEWqf+/iWJ6aIZhPe4RjkjtOsmi/gXeB
jAyFggBYqIAiQRiwFiquv6SSHFpkaiZpKWDIgJmGDf4ngxUqZq8LhMuEarqbeiKtqdt0R1LDunZD
Ora1sNAaDAiSLNFmIhW7uRgIOmWnsDAAgbLbDB9WndQkpRcTE61VQ1J0GaWwNZzdqobEPNQkZOcx
nGTOZzAEoDEbOkA4EyHd6DMXYCFaOKmrm6Uw7xzRTjSlvQPjOE48/oyvh+qSOc1dEz27Np7z+xgR
sAnTcVKxWPBl7DAgXAGvYviO8GJPxdqJ3HZkII4RLVRoWAZbIse3TIQQS7WIrXZ8CubZCMGjV91z
zrpOIlCff68VX7NqK7W43zJs7bp4zUlIigyapJzkUUUUUUUUUUUIKIR1DJg1TOizRDMjVcK0pmrf
ShSojXi7TSnBC3KifExvOZ+WqKwkMuQ6g05NZxNScTR7NkUb23cEN1VvFr3ZCfxoVSFwJhdkWoFJ
T8WcMwzhzlJM2DLS0zKDXNI36bBpWspe2PfdbDlsuluvrK769Dqq9UIyiFOSyqymmyx9BZbW1TWk
z3DQ0lB3xx2w2jINqY40kIhZXVVB9ttr8VNaFMhY0KkYXMkwgFmYS6Bz4h5kkLHsI23o0Rn422zs
mgUhmW2D3fesEdaQniy60Ox9zN3n5h4y3yDxuBEQufTAwR+9ES5hExE3Q6Rv6fFycSbmDWa+psqy
YPt15zBoUlb1nglt3k1ard3Vll3PdVDgc00G83tuu0uXlz+eRA/M1GsSzNQuv0nRpKDA2uUZNJmJ
3Cbh8x2g/uMA/fnAd4CTzTCYinx9nyHrHzH3CTG64nb4Euh+mFaouLI9bkYdneJ5IyQy3wCQR6Do
ES3/lNpMEqZ97G6jLRjTmj1UwLGv/2jgp8tX+iP/CO1zdBJeglEuD1Z1UDumJN4yJkPdyu+uP65M
fDOlM2T4ICrPC7qQuFOuWzaifal1JJATbIhABsrj57nefYhLphZNvHTVVtlz28lznOtttttttttt
stttttt6H6wAOXl6OzZyvZ7fae7rGlGuj+z3XXWb0ElCkRWBCbAWweUTgSsISZyScA4Dq9e6233o
Bg3XzymJDEMRMSomSEGgKpiMSuGtMccQcosgcxaxNjUlp+KMEa3Jus2wZbE/PRNEczeGqq0WRSSD
dVObJqqyVZMYTATJF4ZDSCHAcT2F5bUSwHEvMXMFWEKioGMybTI1F2pBJIJoYlGWhMESJCRg5Lry
ZPwZkmyYeSMmyL3Ve6M0q2upSrNgs2Uc1GYo3JRkvXvLJijN0WZgUQ3DmE8NuMApexskSvy0lMA2
EUhSkaKUNAYIJWc7TbfmJnkbUmRGEm3OmiDrl1J0xJRFXNes60ZMXJrhlRXMmkhW5LkDQcDmjBR0
qZbAZuMFsBqIcLrjZlupoL7FnVarIXUKLc1fU+itBHRseCUmsIORwg9DxGUFhQwEsStbJFglQWUh
MpQU0Dkat0XUKztRSuNYxUuUnWjkzRg1VXNNE4WZ0zWVMScL12fLJL1dW7Fp9+Zylz1ro25rYNr4
nnR4UnO9JMXRkzXylyZdSSzgmjo1hiwUcjBgc1XHGTNixJ1d33e/R0MXyn67kV+iceL3HojgBAXm
U23P57Ty6swFiaMVgmI1roTZTBMCXWs6X24QG8VkQIoVMmy0svjJBAmClVb5DQ6oHeNgObNZwIHc
VMTQY5rNJGW7hO+wlTBRWq5Fy1ApqJKhSGdyN7PjWbGDhw3DdwwSuNU1yCqSca2hTbPw8T3zNxfz
aoyZu2Ld8UX237u/wuMXk83bKlL8nCcd04YGFKqtl+bF0V6ZIjAywUwaqMFlmaNW++KzzcNmLNez
0UvturW6mKbrl7u6yfQAR8AI0CH2rmAHDn22C4M+fNGXTVES7k8l0Tk8LVXJerVHRVcTNOrZdhrW
5rovSSrS5owZLldGrVM0S9SEvcmbRkjBjJo8sqXK54rno1X3oziVL26ryUXWfF5tkb4NqU4XGCy2
V/PWGMMFnQxfPdlmxrWqObLt5sPfhMbUowJe62j5o7Jtj4XqKuUL3eOHNydfbi6N3po5Mnhu9HkU
cPDJ0l65wxZL2LyVYrmzk0XLM2iPkjP5I/L8oVDHBPN0cUrlW7tblX1RjfjRZdVHWOyiMqJYkydG
XZgeid0aMWzwndVhnzpNMUU2gNVnDW5s7ZM/femTZeo0evru9HajBVGajF3d1kjb1VS4nl1tfX3t
8U6dnUvPLHCipm1mwUXFuOW21bYOF9b+7RllSnW5Obo56VKuCShg3aKpk8JwssxZLnfv2Zu7VqnJ
ZexxrDNoveTFwwc/vR3I5I+Rm8eXfXpJc8XbVwRXlwckZoYzNtOaU85BsFGUconHRVOgAKwJKRWE
0oTJPCpPvmdKZsmLJlcslYYospkvytBC3bK3pM1LS1xMyrjOKWn83+aOnNBkM04N2zXBbgnhev55
LlGD29GKbv04dcU0qjkudd3Pe5hR6O/fK/HVn1zcmOHsljziGuvJ3Y5eVO7Vw8ijdjm5ubq8m++q
MnkjZ2d1V5VVLN3Jo7sWK9e5HqmE9Z3RWU6/J1elLUcuiI5mAhPc4mHCi9uzWgUJWRykhNtggQAd
gfDquhi7L3pZFmDs8/P4HMnlJs8lntVc9HTeYeMmVnVfswdrPazM8ly6mXfFzdWXmvd8qU7uyja+
lNnJiwXNGV17Bz6TJRgTkaYq1YuRLkfMyiTk2Xw0ePG7Z7OHtZ4NX4I92ymbZy5avJ6uyyKe9Hkj
bfz8WzxYW89rtMe8tdfW6QwbDTnfBAgEbQu3rCk0CSALGTAA3XcaNV0LMDKnQs3dnNMFlOHLbBMu
uFno0e5o2c0qq7ZThuxZNkbbbtlOSrXi3RN1zqm0yYT1XrS5zXxPUnOIcoRcVXuqrN0clmjJcwUc
jJV2aKuazEyVVatmafijHS0Fglw5H5RyCLUgHdk0WWdu1LWDF4FctWAcksMGi/Lt2wmOjd6I8t+7
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070905/2185541c/attachment-0001.pgp 


More information about the bazaar mailing list