[Pkg-bazaar-commits] r114 ./bzr-builddeb/people/jdw/merge_upstream: Move the tree cleanliness checking in to merge_upstream and add a test for it.

James Westby jw+debian at jameswestby.net
Fri Jun 22 16:53:47 UTC 2007


------------------------------------------------------------
revno: 114
committer: James Westby <jw+debian at jameswestby.net>
branch nick: merge-upstream.siretart
timestamp: Fri 2007-06-22 17:04:56 +0100
message:
  Move the tree cleanliness checking in to merge_upstream and add a test for it.
modified:
  __init__.py
  merge_upstream.py
  tests/test_merge_upstream.py
-------------- next part --------------
=== modified file '__init__.py'
--- a/__init__.py	2007-06-22 15:43:18 +0000
+++ b/__init__.py	2007-06-22 16:04:56 +0000
@@ -307,9 +307,6 @@
       raise BzrCommandError("Must specify a revision")
 
     tree, relpath = WorkingTree.open_containing('.')
-    if tree.changes_from(tree.basis_tree()).has_changed():
-      raise BzrCommandError("Working tree has uncommitted changes.")
-
     merge_upstream(tree, filename, revision)
 
 

=== modified file 'merge_upstream.py'
--- a/merge_upstream.py	2007-06-22 15:57:39 +0000
+++ b/merge_upstream.py	2007-06-22 16:04:56 +0000
@@ -21,6 +21,7 @@
 
 import os
 
+from bzrlib.errors import BzrCommandError
 from bzrlib.plugins.bzrtools.upstream_import import import_tar
 
 # TODO: handle more input sources.
@@ -40,6 +41,8 @@
     and the tree will be left with pending merges, and possibly any conflicts
     to fix up.
 
+    The tree must have no uncommited changes.
+
     :param tree: The tree upon which to operate.
     :type tree: WorkingTree
     :param source: The filename tarball to import from.
@@ -49,6 +52,8 @@
     :type old_revision: RevisionSpec
     :return: None
     """
+    if tree.changes_from(tree.basis_tree()).has_changed():
+      raise BzrCommandError("Working tree has uncommitted changes.")
     current_revision = tree.last_revision()
     revno, rev_id = old_revision.in_branch(tree.branch)
     tree.revert([], tree.branch.repository.revision_tree(rev_id))

=== modified file 'tests/test_merge_upstream.py'
--- a/tests/test_merge_upstream.py	2007-06-22 15:43:18 +0000
+++ b/tests/test_merge_upstream.py	2007-06-22 16:04:56 +0000
@@ -22,6 +22,7 @@
 import shutil
 import tarfile
 
+from bzrlib.errors import BzrCommandError
 from bzrlib.revisionspec import RevisionSpec
 from bzrlib.tests import TestCaseWithTransport
 
@@ -115,6 +116,12 @@
     self.assertEqual(wt.branch.repository.get_revision(rh[1]).message,
                      'import upstream from package-0.2.tar.gz')
 
+  def test_merge_upstream_requires_clean_tree(self):
+    wt = self.make_branch_and_tree('.')
+    self.build_tree(['file'])
+    wt.add(['file'])
+    self.assertRaises(BzrCommandError, merge_upstream, wt, 'source', 1)
+
 class TestConflictMergeUpstreamNormal(TestCaseWithTransport):
   """Test merge upstream with conflicts in the new version."""
 
@@ -222,3 +229,4 @@
     self.assertEqual(wt.branch.repository.get_revision(rh[1]).message,
                      'import upstream from package-0.2.tar.gz')
 
+



More information about the Pkg-bazaar-commits mailing list