aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/git.py
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2008-11-13 14:31:49 -0500
committerW. Trevor King <wking@drexel.edu>2008-11-13 14:31:49 -0500
commit49f81fa291ca925ec985dc52f51b9a37bb3106ee (patch)
tree48c14241eaf5211a4bb86eade1fe838aaab9edf8 /libbe/git.py
parent859d57514518e10f3648de2ab1896c689af88164 (diff)
downloadbugseverywhere-49f81fa291ca925ec985dc52f51b9a37bb3106ee.tar.gz
Fixed 0cad bug with smaller fix.
Hubert Chathi's fix was confusing for me, so I made a simpler change. Seems to work so far. The problem was that os.path.dirname('filename') returns an empty string ('') if there are no directories in the filename. So when `git rev-parse --git-dir` returned '.git', os returned ''. Later programs didn't recognize '' as a valid directory and crashed. My fix returns '.' in this case, so we don't crash, and avoid having to use full paths. I'm not sure why I don't want to use full paths; they just give me bad vibes...
Diffstat (limited to 'libbe/git.py')
-rw-r--r--libbe/git.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/libbe/git.py b/libbe/git.py
index 398585f..5c377fd 100644
--- a/libbe/git.py
+++ b/libbe/git.py
@@ -102,7 +102,10 @@ def git_repo_for_path(path):
"""Find the root of the deepest repository containing path."""
# Assume that nothing funny is going on; in particular, that we aren't
# dealing with a bare repo.
- return os.path.dirname(git_dir_for_path(path))
+ dirname = os.path.dirname(git_dir_for_path(path))
+ if dirname == '' : # os.path.dirname('filename') == ''
+ dirname = '.'
+ return dirname
def git_dir_for_path(path):
"""Find the git-dir of the deepest repo containing path."""