Rev 3876: (Marius Kruger) Raise an exception when we encounter an non-existing in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Dec 1 20:17:25 GMT 2008


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

------------------------------------------------------------
revno: 3876
revision-id: pqm at pqm.ubuntu.com-20081201201721-zconkq0v7pow8nmw
parent: pqm at pqm.ubuntu.com-20081201190721-auckake4i6ws048z
parent: john at arbash-meinel.com-20081201184008-4vwipjkqxmhay69a
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2008-12-01 20:17:21 +0000
message:
  (Marius Kruger) Raise an exception when we encounter an non-existing
  	dotted revno.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
  bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
    ------------------------------------------------------------
    revno: 3872.2.6
    revision-id: john at arbash-meinel.com-20081201184008-4vwipjkqxmhay69a
    parent: amanic at gmail.com-20081201173744-wlscf6xusxegewjh
    parent: pqm at pqm.ubuntu.com-20081201071425-al48chdg4wlkbm31
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: jam-integration
    timestamp: Mon 2008-12-01 12:40:08 -0600
    message:
      Merge bzr.dev, resolve NEWS
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/_patiencediff_c.c       _patiencediff_c.c-20070721205602-q3imkipwlgagp3cy-1
      doc/developers/ppa.txt         ppa.txt-20080722055539-606u7t2z32t3ae4w-1
    ------------------------------------------------------------
    revno: 3872.2.5
    revision-id: amanic at gmail.com-20081201173744-wlscf6xusxegewjh
    parent: amanic at gmail.com-20081130202358-g8n7heuwdmysvs47
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.diff_dotted_revno_exception
    timestamp: Mon 2008-12-01 19:37:44 +0200
    message:
      return null revid again for null revno
    modified:
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
    ------------------------------------------------------------
    revno: 3872.2.4
    revision-id: amanic at gmail.com-20081130202358-g8n7heuwdmysvs47
    parent: amanic at gmail.com-20081130195117-cjjse2l5qqy42sdz
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.diff_dotted_revno_exception
    timestamp: Sun 2008-11-30 22:23:58 +0200
    message:
      add news
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3872.2.3
    revision-id: amanic at gmail.com-20081130195117-cjjse2l5qqy42sdz
    parent: amanic at gmail.com-20081130172858-pu8n6ui9qgg4t3nl
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.diff_dotted_revno_exception
    timestamp: Sun 2008-11-30 21:51:17 +0200
    message:
      since the -c case seems to be fixed, add a test for it
    modified:
      bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
    ------------------------------------------------------------
    revno: 3872.2.2
    revision-id: amanic at gmail.com-20081130172858-pu8n6ui9qgg4t3nl
    parent: amanic at gmail.com-20081129112757-fzur44vek342vejr
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.diff_dotted_revno_exception
    timestamp: Sun 2008-11-30 19:28:58 +0200
    message:
      * use NULL_REVISION in stead of None for rev_id
      * raise InvalidRevisionSpec when we can't find a dotted revno
    modified:
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
    ------------------------------------------------------------
    revno: 3872.2.1
    revision-id: amanic at gmail.com-20081129112757-fzur44vek342vejr
    parent: pqm at pqm.ubuntu.com-20081128071639-usprv2emoq2mgxnw
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.diff_dotted_revno_exception
    timestamp: Sat 2008-11-29 13:27:57 +0200
    message:
      add tests for diff with non-existing revno's 
      (make closeby tests also use error_regexes parameter of run_bzr)
    modified:
      bzrlib/tests/blackbox/test_diff.py test_diff.py-20060110203741-aa99ac93e633d971
=== modified file 'NEWS'
--- a/NEWS	2008-11-29 02:01:21 +0000
+++ b/NEWS	2008-12-01 18:40:08 +0000
@@ -20,6 +20,9 @@
       PyErr_NoMemory() before returning NULL in PatienceSequenceMatcher_new.
       (Andrew Bennetts, #303206)
 
+    * Give proper error message for diff with non-existent dotted revno.
+      (Marius Kruger, #301969)
+
   DOCUMENTATION:
 
   API CHANGES:

=== modified file 'bzrlib/revisionspec.py'
--- a/bzrlib/revisionspec.py	2008-10-01 05:40:45 +0000
+++ b/bzrlib/revisionspec.py	2008-12-01 17:37:44 +0000
@@ -361,7 +361,7 @@
             finally:
                 branch.unlock()
             if len(revisions) != 1:
-                return branch, None, None
+                raise errors.InvalidRevisionSpec(self.user_spec, branch)
             else:
                 # there is no traditional 'revno' for dotted-decimal revnos.
                 # so for  API compatability we return None.

=== modified file 'bzrlib/tests/blackbox/test_diff.py'
--- a/bzrlib/tests/blackbox/test_diff.py	2008-01-04 00:26:05 +0000
+++ b/bzrlib/tests/blackbox/test_diff.py	2008-11-30 19:51:17 +0000
@@ -126,12 +126,27 @@
         # Get an error from a file that does not exist at all
         # (Malone #3619)
         self.make_example_branch()
-        out, err = self.run_bzr('diff does-not-exist', retcode=3)
-        self.assertContainsRe(err, 'not versioned.*does-not-exist')
+        out, err = self.run_bzr('diff does-not-exist', retcode=3,
+            error_regexes=('not versioned.*does-not-exist',))
 
     def test_diff_illegal_revision_specifiers(self):
-        out, err = self.run_bzr('diff -r 1..23..123', retcode=3)
-        self.assertContainsRe(err, 'one or two revision specifiers')
+        out, err = self.run_bzr('diff -r 1..23..123', retcode=3,
+            error_regexes=('one or two revision specifiers',))
+
+    def test_diff_nonexistent_revision(self):
+        out, err = self.run_bzr('diff -r 123', retcode=3,
+            error_regexes=("Requested revision: '123' does not "
+                "exist in branch:",))
+
+    def test_diff_nonexistent_dotted_revision(self):
+        out, err = self.run_bzr('diff -r 1.1', retcode=3)
+        self.assertContainsRe(err,
+            "Requested revision: '1.1' does not exist in branch:")
+
+    def test_diff_nonexistent_dotted_revision_change(self):
+        out, err = self.run_bzr('diff -c 1.1', retcode=3)
+        self.assertContainsRe(err,
+            "Requested revision: '1.1' does not exist in branch:")
 
     def test_diff_unversioned(self):
         # Get an error when diffing a non-versioned file.




More information about the bazaar-commits mailing list