aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body23
-rw-r--r--.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values21
-rw-r--r--libbe/git.py6
3 files changed, 49 insertions, 1 deletions
diff --git a/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body b/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body
new file mode 100644
index 0000000..7c07a0f
--- /dev/null
+++ b/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body
@@ -0,0 +1,23 @@
+Oops, missed a case. I now see what Hubert was saying about absolute
+paths :p. In git.strip_git(), the output of git_repo_for_path('.')
+was being subtracted from an absolute path. Obviously, if the path
+was returning '.', you'd get things like
+
+filename=
+/home/wking/src/fun/testbe/.be/bugs/c3bf839b-88f9-4609-89a2-6a5b75c415b8/values
+
+stripping 2 chars ('.' and '/')], returns
+ome/wking/src/fun/testbe/.be/bugs/c3bf839b-88f9-4609-89a2-6a5b75c415b8/values
+
+
+Now we convert the git_repo_for_path output to an absolute path and get
+
+filename=
+/home/wking/src/fun/testbe/.be/bugs/c3bf839b-88f9-4609-89a2-6a5b75c415b8/values
+absRepoPath=
+/home/wking/src/fun/testbe
+absRepoSlashedDir=
+/home/wking/src/fun/testbe/
+returns
+.be/bugs/c3bf839b-88f9-4609-89a2-6a5b75c415b8/values
+
diff --git a/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values b/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values
new file mode 100644
index 0000000..cbf7142
--- /dev/null
+++ b/.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values
@@ -0,0 +1,21 @@
+
+
+
+Content-type=text/plain
+
+
+
+
+
+
+Date=Thu, 13 Nov 2008 20:18:02 +0000
+
+
+
+
+
+
+From=wking
+
+
+
diff --git a/libbe/git.py b/libbe/git.py
index 5c377fd..172c324 100644
--- a/libbe/git.py
+++ b/libbe/git.py
@@ -22,7 +22,11 @@ def strip_git(filename):
# Find the base path of the GIT tree, in order to strip that leading
# path from arguments to git -- it doesn't like absolute paths.
if os.path.isabs(filename):
- filename = filename[len(git_repo_for_path('.'))+1:]
+ absRepoDir = os.path.abspath(git_repo_for_path('.'))
+ absRepoSlashedDir = os.path.join(absRepoDir,"")
+ assert filename.startswith(absRepoSlashedDir), \
+ "file %s not in git repo %s" % (filename, absRepoSlashedDir)
+ filename = filename.lstrip(absRepoSlashedDir)
return filename
def invoke_client(*args, **kwargs):