summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2014-12-01 11:36:52 +0200
committerTzafrir Cohen <tzafrir@debian.org>2015-03-26 14:21:52 +0200
commit320db0d24a3884c704b7d0d7c1356b5d704dcfb6 (patch)
treea046924e30ee20e4124f491b9949ed75b02f3438
parente4e3cb905c99d2b021c8fb6028e9ef92cd8d57ab (diff)
pq: allow running actions in repo subdir
This should make the usage of gbp-pq more flexible and prevent mistakes caused by e.g. running gbp-pq import under some subdirectory. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
-rwxr-xr-xgbp/scripts/pq.py4
-rwxr-xr-xgbp/scripts/pq_rpm.py4
-rw-r--r--tests/component/rpm/test_pq_rpm.py12
3 files changed, 20 insertions, 0 deletions
diff --git a/gbp/scripts/pq.py b/gbp/scripts/pq.py
index 1e1e96b..11af997 100755
--- a/gbp/scripts/pq.py
+++ b/gbp/scripts/pq.py
@@ -388,6 +388,10 @@ def main(argv):
gbp.log.err("%s is not a git repository" % (os.path.abspath('.')))
return 1
+ if os.path.abspath('.') != repo.path:
+ gbp.log.warn("Switching to topdir before running commands")
+ os.chdir(repo.path)
+
try:
current = repo.get_branch()
if action == "export":
diff --git a/gbp/scripts/pq_rpm.py b/gbp/scripts/pq_rpm.py
index 764ccff..3c22ccb 100755
--- a/gbp/scripts/pq_rpm.py
+++ b/gbp/scripts/pq_rpm.py
@@ -429,6 +429,10 @@ def main(argv):
gbp.log.err("%s is not a git repository" % (os.path.abspath('.')))
return 1
+ if os.path.abspath('.') != repo.path:
+ gbp.log.warn("Switching to topdir before running commands")
+ os.chdir(repo.path)
+
try:
# Create base temporary directory for this run
options.tmp_dir = tempfile.mkdtemp(dir=options.tmp_dir,
diff --git a/tests/component/rpm/test_pq_rpm.py b/tests/component/rpm/test_pq_rpm.py
index f0dac8d..16252f0 100644
--- a/tests/component/rpm/test_pq_rpm.py
+++ b/tests/component/rpm/test_pq_rpm.py
@@ -118,6 +118,18 @@ class TestPqRpm(RpmRepoTestBase):
self._check_repo_state(repo, 'master-orphan', branches)
eq_(repo.status()[' M'], ['packaging/gbp-test2.spec'])
+ def test_import_in_subdir(self):
+ """Test running gbp-rpm-pq from a subdir in the git tree"""
+ repo = self.init_test_repo('gbp-test2')
+ repo.set_branch('master-orphan')
+ branches = repo.get_local_branches() + ['patch-queue/master-orphan']
+ os.chdir('packaging')
+
+ # Running from subdir should be ok
+ eq_(mock_pq(['import']), 0)
+ self._check_repo_state(repo, 'patch-queue/master-orphan', branches)
+
+
def test_rebase(self):
"""Basic test for rebase action"""
repo = self.init_test_repo('gbp-test')