Don't call cmd.cleanup_now() for recent Bazaar versions.
authorW. Trevor King <wking@drexel.edu>
Tue, 22 Feb 2011 20:38:03 +0000 (15:38 -0500)
committerChris Ball <cjb@laptop.org>
Fri, 25 Feb 2011 16:23:23 +0000 (11:23 -0500)
Bug reported by Michael Chaffin:

> C:\XXX\ZZZ>be init
> Traceback (most recent call last):
>   ...
> AttributeError: 'cmd_root' object has no attribute '_operation'

Due to changes in bzrlib:

revno: 5146 [merge]
committer: Canonical.com Patch Queue Manager <pqm@pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2010-04-12 04:09:46 +0100

So for versions of bzr since then, we don't have to worry about
calling cleanup_now() anymore.

libbe/storage/vcs/bzr.py

index 1862975ef801ce3826a30c7a9ded8aee61d158c0..f426612ddf2595dcdd1e7d0a0436c78e7498fbd8 100644 (file)
@@ -136,14 +136,16 @@ class Bzr(base.VCS):
         cmd = bzrlib.builtins.cmd_root()
         cmd.outf = StringIO.StringIO()
         cmd.run(filename=path)
-        cmd.cleanup_now()
+        if self.version_cmp(2,3,0) < 0:
+            cmd.cleanup_now()
         return cmd.outf.getvalue().rstrip('\n')
 
     def _vcs_init(self, path):
         cmd = bzrlib.builtins.cmd_init()
         cmd.outf = StringIO.StringIO()
         cmd.run(location=path)
-        cmd.cleanup_now()
+        if self.version_cmp(2,3,0) < 0:
+            cmd.cleanup_now()
 
     def _vcs_destroy(self):
         vcs_dir = os.path.join(self.repo, '.bzr')
@@ -155,7 +157,8 @@ class Bzr(base.VCS):
         cmd = bzrlib.builtins.cmd_add()
         cmd.outf = StringIO.StringIO()
         cmd.run(file_list=[path], file_ids_from=self.repo)
-        cmd.cleanup_now()
+        if self.version_cmp(2,3,0) < 0:
+            cmd.cleanup_now()
 
     def _vcs_exists(self, path, revision=None):
         manifest = self._vcs_listdir(
@@ -170,7 +173,8 @@ class Bzr(base.VCS):
         cmd = bzrlib.builtins.cmd_remove()
         cmd.outf = StringIO.StringIO()
         cmd.run(file_list=[path], file_deletion_strategy='force')
-        cmd.cleanup_now()
+        if self.version_cmp(2,3,0) < 0:
+            cmd.cleanup_now()
 
     def _vcs_update(self, path):
         pass
@@ -206,7 +210,8 @@ class Bzr(base.VCS):
             if self.version_cmp(2,0,0) < 0:
                 cmd.outf = sys.stdout
                 sys.stdout = stdout
-            cmd.cleanup_now()
+            if self.version_cmp(2,3,0) < 0:
+                cmd.cleanup_now()
         return cmd.outf.getvalue()
 
     def _vcs_path(self, id, revision):
@@ -242,7 +247,8 @@ class Bzr(base.VCS):
                 raise base.InvalidPath(path, root=self.repo, revision=revision)
             raise
         finally:
-            cmd.cleanup_now()
+            if self.version_cmp(2,3,0) < 0:
+                cmd.cleanup_now()
         children = cmd.outf.getvalue().rstrip('\n').splitlines()
         children = [self._u_rel_path(c, path) for c in children]
         if self.version_cmp(2,0,0) < 0 and recursive == False:
@@ -264,14 +270,16 @@ class Bzr(base.VCS):
             raise
         finally:
             os.chdir(cwd)
-            cmd.cleanup_now()
+            if self.version_cmp(2,3,0) < 0:
+                cmd.cleanup_now()
         return self._vcs_revision_id(-1)
 
     def _vcs_revision_id(self, index):
         cmd = bzrlib.builtins.cmd_revno()
         cmd.outf = StringIO.StringIO()
         cmd.run(location=self.repo)
-        cmd.cleanup_now()
+        if self.version_cmp(2,3,0) < 0:
+            cmd.cleanup_now()
         current_revision = int(cmd.outf.getvalue())
         if index > current_revision or index < -current_revision:
             return None
@@ -290,7 +298,8 @@ class Bzr(base.VCS):
             status = cmd.run(revision=revision, file_list=[self.repo])
         finally:
             sys.stdout = stdout
-            cmd.cleanup_now()
+            if self.version_cmp(2,3,0) < 0:
+                cmd.cleanup_now()
         assert status in [0,1], "Invalid status %d" % status
         return cmd.outf.getvalue()