summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2014-12-01 11:36:52 +0200
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>2014-12-16 09:55:14 +0200
commitedcfc9498a790bd3d3c436082ac144798fb7a8f5 (patch)
treed3580d28c73ab149935bf4dcfeedfecaacc00204
parent797bd96d945d17d3869ea7fe27a7abc98fb91195 (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 c32a36f..af9c90d 100755
--- a/gbp/scripts/pq.py
+++ b/gbp/scripts/pq.py
@@ -353,6 +353,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 5166b5c..98b979f 100755
--- a/gbp/scripts/pq_rpm.py
+++ b/gbp/scripts/pq_rpm.py
@@ -455,6 +455,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 78143fe..3ed9ad1 100644
--- a/tests/component/rpm/test_pq_rpm.py
+++ b/tests/component/rpm/test_pq_rpm.py
@@ -116,6 +116,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')