Oops... *Now* I've fixed 0cad
authorW. Trevor King <wking@drexel.edu>
Thu, 13 Nov 2008 20:27:07 +0000 (15:27 -0500)
committerW. Trevor King <wking@drexel.edu>
Thu, 13 Nov 2008 20:27:07 +0000 (15:27 -0500)
.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/body [new file with mode: 0644]
.be/bugs/0cad2ac6-76ef-4a88-abdf-b2e02de76f5c/comments/7e733393-8ba0-4345-a0e3-4140101d32f0/values [new file with mode: 0644]
libbe/git.py

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 (file)
index 0000000..7c07a0f
--- /dev/null
@@ -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 (file)
index 0000000..cbf7142
--- /dev/null
@@ -0,0 +1,21 @@
+
+
+
+Content-type=text/plain
+
+
+
+
+
+
+Date=Thu, 13 Nov 2008 20:18:02 +0000
+
+
+
+
+
+
+From=wking
+
+
+
index 5c377fd9e1d2b7af21d96ea5c6f9520a2b40fda0..172c3248376d933e73e05f9ab0b70d4cbe6dea0e 100644 (file)
@@ -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):