Skip to content

Commit 2c784b2

Browse files
committed
Allow running git repo commands from sub directories in the repository
1 parent a66405e commit 2c784b2

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

git_repo/repo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ def get_service(self, lookup_repository=True, resolve_targets=None):
159159
# Try to resolve existing repository path
160160
try:
161161
try:
162-
repository = Repo(os.path.join(self.path, self.repo_name or ''))
162+
repository = Repo(os.path.join(self.path, self.repo_name or ''), search_parent_directories=True)
163163
except NoSuchPathError:
164-
repository = Repo(self.path)
164+
repository = Repo(self.path, search_parent_directories=True)
165165
except InvalidGitRepositoryError:
166166
raise FileNotFoundError('Cannot find path to the repository.')
167167
service = RepositoryService.get_service(repository, self.target)

tests/integration/test_main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import logging
44
import pytest
5+
import os
56

67
#################################################################################
78
# Enable logging
@@ -524,6 +525,13 @@ def test_open__no_repo_slug__https(self):
524525
assert ('guyzmo', 'git-repo') == repo_slug
525526
assert {} == seen_args
526527

528+
def test_open__from_sub_dir(self):
529+
self._create_repository(ro=True)
530+
os.chdir('git_repo')
531+
repo_slug, seen_args = self.main_open(rc=0)
532+
assert ('guyzmo', 'git-repo') == repo_slug
533+
assert {} == seen_args
534+
527535
# Skipped because this does not work on travis CI
528536
@pytest.mark.skip
529537
def test_open__no_repo_slug__git(self):

0 commit comments

Comments
 (0)