aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/storage/vcs
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2011-02-24 17:34:40 -0500
committerW. Trevor King <wking@drexel.edu>2011-02-24 17:34:40 -0500
commit1e0967ab82d8541413e1dfe4d2e78f1008aa9c5b (patch)
tree28c61860084740323aaa5b73b40547de649ecf5a /libbe/storage/vcs
parent6eeb62d99a40f8644ac0840ac1291ef92b3d836f (diff)
downloadbugseverywhere-1e0967ab82d8541413e1dfe4d2e78f1008aa9c5b.tar.gz
Work around bzr filelocking issue on Windows.
Diffstat (limited to 'libbe/storage/vcs')
-rw-r--r--libbe/storage/vcs/base.py2
-rw-r--r--libbe/storage/vcs/bzr.py7
2 files changed, 7 insertions, 2 deletions
diff --git a/libbe/storage/vcs/base.py b/libbe/storage/vcs/base.py
index 570af17..aba6159 100644
--- a/libbe/storage/vcs/base.py
+++ b/libbe/storage/vcs/base.py
@@ -575,7 +575,7 @@ class VCS (libbe.storage.base.VersionedStorage):
if self._detect(self.repo) == False:
raise VCSUnableToRoot(self)
root = self._vcs_root(self.repo)
- self.repo = os.path.abspath(root)
+ self.repo = os.path.realpath(root)
if os.path.isdir(self.repo) == False:
self.repo = os.path.dirname(self.repo)
self.be_dir = os.path.join(
diff --git a/libbe/storage/vcs/bzr.py b/libbe/storage/vcs/bzr.py
index a00e3ac..9464d1d 100644
--- a/libbe/storage/vcs/bzr.py
+++ b/libbe/storage/vcs/bzr.py
@@ -156,7 +156,12 @@ class Bzr(base.VCS):
path = os.path.join(self.repo, path)
cmd = bzrlib.builtins.cmd_add()
cmd.outf = StringIO.StringIO()
- cmd.run(file_list=[path], file_ids_from=self.repo)
+ kwargs = {'file_ids_from': self.repo}
+ if self.repo == os.path.realpath(os.getcwd()):
+ # Work around bzr file locking on Windows.
+ # See: https://lists.ubuntu.com/archives/bazaar/2011q1/071705.html
+ kwargs.pop('file_ids_from')
+ cmd.run(file_list=[path], **kwargs)
if self.version_cmp(2,2,0) < 0:
cmd.cleanup_now()