Rev 2747: Fix patch verification of CR and CRLF files and reactivate it in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri Aug 24 14:37:52 BST 2007


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 2747
revision-id: pqm at pqm.ubuntu.com-20070824133750-r25v5g25g1flggy6
parent: pqm at pqm.ubuntu.com-20070824031612-53wd9sywqa4zima5
parent: abentley at panoramicfeedback.com-20070824130226-39p2xfpmw36kzuk1
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2007-08-24 14:37:50 +0100
message:
  Fix patch verification of CR and CRLF files and reactivate it
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/merge_directive.py      merge_directive.py-20070228184838-ja62280spt1g7f4x-1
  bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
  bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
    ------------------------------------------------------------
    revno: 2520.4.151.1.1.1.4
    merged: abentley at panoramicfeedback.com-20070824130226-39p2xfpmw36kzuk1
    parent: abentley at panoramicfeedback.com-20070824125926-l0nvn5c5umbb4u1w
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: bzr.mpbundle
    timestamp: Fri 2007-08-24 09:02:26 -0400
    message:
      Add NEWS entry
    ------------------------------------------------------------
    revno: 2520.4.151.1.1.1.3
    merged: abentley at panoramicfeedback.com-20070824125926-l0nvn5c5umbb4u1w
    parent: abentley at panoramicfeedback.com-20070815204922-sm909246487o1thf
    parent: pqm at pqm.ubuntu.com-20070824031612-53wd9sywqa4zima5
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: bzr.mpbundle
    timestamp: Fri 2007-08-24 08:59:26 -0400
    message:
      Merge bzr.dev
    ------------------------------------------------------------
    revno: 2520.4.151.1.1.1.2
    merged: abentley at panoramicfeedback.com-20070815204922-sm909246487o1thf
    parent: abentley at panoramicfeedback.com-20070815203258-dryf3x8sotx7q8y0
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: bzr.mpbundle
    timestamp: Wed 2007-08-15 16:49:22 -0400
    message:
      Restore patch verification for CR, CRLF files
    ------------------------------------------------------------
    revno: 2520.4.151.1.1.1.1
    merged: abentley at panoramicfeedback.com-20070815203258-dryf3x8sotx7q8y0
    parent: abentley at panoramicfeedback.com-20070815161519-aw3u3mgqelrwg0hy
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: bzr.mpbundle
    timestamp: Wed 2007-08-15 16:32:58 -0400
    message:
      Reactivate patch verification
=== modified file 'NEWS'
--- a/NEWS	2007-08-22 23:59:17 +0000
+++ b/NEWS	2007-08-24 13:02:26 +0000
@@ -33,6 +33,9 @@
     * get_transport treats an empty possible_transports list the same as a non-
       empty one.  (Aaron Bentley)
 
+    * patch verification for merge directives is reactivated, and works with
+      CRLF and CR files.  (Aaron Bentley)
+
   IMPROVEMENTS:
 
     * ``pull`` and ``merge`` are much faster at installing bundle format 4.

=== modified file 'bzrlib/merge_directive.py'
--- a/bzrlib/merge_directive.py	2007-08-14 23:35:48 +0000
+++ b/bzrlib/merge_directive.py	2007-08-15 20:49:22 +0000
@@ -486,6 +486,7 @@
                                                self.base_revision_id)
         # Convert line-endings to UNIX
         stored_patch = re.sub('\r\n?', '\n', self.patch)
+        calculated_patch = re.sub('\r\n?', '\n', calculated_patch)
         # Strip trailing whitespace
         calculated_patch = re.sub(' *\n', '\n', calculated_patch)
         stored_patch = re.sub(' *\n', '\n', stored_patch)
@@ -504,8 +505,6 @@
             if self._verify_patch(repository):
                 return 'verified'
             else:
-                #FIXME patch verification is broken for CRLF files
-                return 'inapplicable'
                 return 'failed'
         else:
             return 'inapplicable'

=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py	2007-08-13 12:48:50 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py	2007-08-15 20:32:58 +0000
@@ -334,9 +334,7 @@
         self.write_directive('directive', source.branch, 'target', 'rev1',
                              mangle_patch=True)
         err = self.run_bzr('merge -d target directive')[1]
-        self.expectFailure('Patch verification is disabled',
-                           self.assertContainsRe, err,
-                           'Preview patch does not match changes')
+        self.assertContainsRe(err, 'Preview patch does not match changes')
 
     def test_merge_arbitrary(self):
         target = self.make_branch_and_tree('target')

=== modified file 'bzrlib/tests/test_merge_directive.py'
--- a/bzrlib/tests/test_merge_directive.py	2007-08-13 12:48:50 +0000
+++ b/bzrlib/tests/test_merge_directive.py	2007-08-15 20:49:22 +0000
@@ -14,6 +14,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+import re
 
 from bzrlib import (
     errors,
@@ -352,13 +353,15 @@
         tree_a = self.make_branch_and_tree('tree_a')
         tree_a.branch.get_config().set_user_option('email',
             'J. Random Hacker <jrandom at example.com>')
-        self.build_tree_contents([('tree_a/file', 'content_a\ncontent_b\n')])
-        tree_a.add('file')
+        self.build_tree_contents([('tree_a/file', 'content_a\ncontent_b\n'),
+                                  ('tree_a/file_2', 'content_x\rcontent_y\r')])
+        tree_a.add(['file', 'file_2'])
         tree_a.commit('message', rev_id='rev1')
         tree_b = tree_a.bzrdir.sprout('tree_b').open_workingtree()
         branch_c = tree_a.bzrdir.sprout('branch_c').open_branch()
         tree_b.commit('message', rev_id='rev2b')
-        self.build_tree_contents([('tree_a/file', 'content_a\ncontent_c \n')])
+        self.build_tree_contents([('tree_a/file', 'content_a\ncontent_c \n'),
+                                  ('tree_a/file_2', 'content_x\rcontent_z\r')])
         tree_a.commit('Commit of rev2a', rev_id='rev2a')
         return tree_a, tree_b, branch_c
 
@@ -528,8 +531,7 @@
             self.assertEqual('inapplicable', verified)
         else:
             self.assertEqual('rev1', base)
-            self.expectFailure('Patch verification is disabled',
-                               self.assertEqual, 'failed', verified)
+            self.assertEqual('failed', verified)
 
     def test_install_revisions_bundle(self):
         tree_a, tree_b, branch_c = self.make_trees()
@@ -628,14 +630,14 @@
         lines = md.to_lines()
         md2 = merge_directive.MergeDirective.from_lines(lines)
         md2._verify_patch(tree_a.branch.repository)
-        # Stript trailing whitespace
+        # Strip trailing whitespace
         md2.patch = md2.patch.replace(' \n', '\n')
         md2._verify_patch(tree_a.branch.repository)
         # Convert to Mac line-endings
-        md2.patch = md2.patch.replace('\n', '\r')
+        md2.patch = re.sub('(\r\n|\r|\n)', '\r', md2.patch)
         self.assertTrue(md2._verify_patch(tree_a.branch.repository))
         # Convert to DOS line-endings
-        md2.patch = md2.patch.replace('\r', '\r\n')
+        md2.patch = re.sub('(\r\n|\r|\n)', '\r\n', md2.patch)
         self.assertTrue(md2._verify_patch(tree_a.branch.repository))
         md2.patch = md2.patch.replace('content_c', 'content_d')
         self.assertFalse(md2._verify_patch(tree_a.branch.repository))




More information about the bazaar-commits mailing list