From: Markus Lehtonen Date: Tue, 11 Feb 2014 08:18:47 +0000 (+0200) Subject: pq-rpm: implement --new-packaging-dir cmdline option X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60b55b492daeded9bc75e305c33a6699322c9774;p=tools%2Fgit-buildpackage.git pq-rpm: implement --new-packaging-dir cmdline option Used for setting the packaging directory to be used in the new orphan packaging branch. Defaults to --packaging-dir so that the gbp.conf files are more likely to work without modification. Signed-off-by: Markus Lehtonen --- diff --git a/gbp/scripts/pq_rpm.py b/gbp/scripts/pq_rpm.py index 3b3f61c4..c2311592 100755 --- a/gbp/scripts/pq_rpm.py +++ b/gbp/scripts/pq_rpm.py @@ -541,7 +541,8 @@ def convert_package(repo, options): (old_packaging, new_branch)) packaging_tree = '%s:%s' % (old_packaging, options.packaging_dir) packaging_tmp = tempfile.mkdtemp(prefix='pack_') - dump_tree(repo, packaging_tmp, packaging_tree, with_submodules=False, + dump_packaging_dir = os.path.join(packaging_tmp, options.new_packaging_dir) + dump_tree(repo, dump_packaging_dir, packaging_tree, with_submodules=False, recursive=False) msg = "Auto-import packaging files from branch '%s'" % old_packaging @@ -549,9 +550,10 @@ def convert_package(repo, options): repo.set_branch(new_branch) # Generate patches - spec = SpecFile(spec.specfile) + spec = SpecFile(os.path.join(options.new_packaging_dir, spec.specfile)) patches = update_patch_series(repo, spec, upstream_commit, old_packaging, options) + patches = [os.path.join(options.new_packaging_dir, pat) for pat in patches] # Commit paches and spec if patches: @@ -623,6 +625,10 @@ switch Switch to patch-queue branch and vice versa.""") dest="patch_compress") parser.add_config_file_option("patch-squash", dest="patch_squash") parser.add_config_file_option("patch-ignore-path", dest="patch_ignore_path") + parser.add_option("--new-packaging-dir", + help="Packaging directory in the new packaging branch. Only " + "relevant for the 'convert' action. If not defined, defaults " + "to '--packaging-dir'") return parser @@ -635,6 +641,8 @@ def parse_args(argv): options, args = parser.parse_args(argv) options.patch_compress = string_to_int(options.patch_compress) + if options.new_packaging_dir is None: + options.new_packaging_dir = options.packaging_dir return options, args diff --git a/tests/component/rpm/test_pq_rpm.py b/tests/component/rpm/test_pq_rpm.py index 4415a5f7..89727600 100644 --- a/tests/component/rpm/test_pq_rpm.py +++ b/tests/component/rpm/test_pq_rpm.py @@ -260,15 +260,16 @@ class TestPqRpm(RpmRepoTestBase): """Basic test for convert action""" repo = self.init_test_repo('gbp-test2') branches = repo.get_local_branches() + ['master-orphan'] - files = ['bar.tar.gz', 'foo.txt', 'gbp-test2.spec', - 'gbp-test2-alt.spec', 'my.patch', '0001-My-addition.patch'] - + files = ['packaging/bar.tar.gz', 'packaging/foo.txt', + 'packaging/gbp-test2.spec', 'packaging/gbp-test2-alt.spec', + 'packaging/my.patch', 'packaging/0001-My-addition.patch', + '.gbp.conf'] # First should fail because 'master-orphan' branch already exists eq_(mock_pq(['convert']), 1) self._check_log(-1, "gbp:error: Branch 'master-orphan' already exists") # Re-try with force - eq_(mock_pq(['convert', '--import-files=', '--force']), 0) + eq_(mock_pq(['convert', '--force']), 0) self._check_repo_state(repo, 'master-orphan', branches, files) def test_convert_fail(self): @@ -514,6 +515,20 @@ class TestPqRpm(RpmRepoTestBase): ok_('debian/gbp.conf' not in repo.list_files()) ok_('.gbp.conf' not in repo.list_files()) + def test_option_new_packaging_dir(self): + """Test the --new-packaging-dir cmdline option""" + repo = self.init_test_repo('gbp-test2') + branches = repo.get_local_branches() + ['master-orphan'] + files = ['rpm/bar.tar.gz', 'rpm/foo.txt', 'rpm/gbp-test2.spec', + 'rpm/gbp-test2-alt.spec', 'rpm/my.patch', + 'rpm/0001-My-addition.patch'] + # Drop already-existing master-orphan branch + repo.delete_branch('master-orphan') + # Try convert + eq_(mock_pq(['convert', '--import-files=', + '--new-packaging-dir=rpm']), 0) + self._check_repo_state(repo, 'master-orphan', branches, files) + def test_import_unapplicable_patch(self): """Test import when a patch does not apply""" repo = self.init_test_repo('gbp-test')