Allow to always drop pq branch after export
authorGuido Günther <agx@sigxcpu.org>
Fri, 12 Sep 2014 11:05:47 +0000 (13:05 +0200)
committerJun Wang <junbill.wang@samsung.com>
Tue, 26 Jan 2016 16:05:52 +0000 (00:05 +0800)
Closes: #761160

Conflicts:
gbp/config.py

gbp/config.py
gbp/scripts/pq.py
tests/13_test_gbp_pq.py

index 0b6c3b2..0c9f885 100644 (file)
@@ -161,6 +161,7 @@ class GbpOptionParser(OptionParser):
                  'symlink-orig': 'True',
                  'purge': 'True',
                  'tmp-dir' : '/var/tmp/gbp/',
+                 'drop': 'False',
              }
     help = {
              'debian-branch':
@@ -309,6 +310,9 @@ class GbpOptionParser(OptionParser):
              'tmp-dir':
                   ("Base directory under which temporary directories are "
                    "created, default is '%(tmp-dir)s'"),
+              'drop':
+                  ("In case of 'export' drop the patch-queue branch "
+                   "after export. Default is '%(drop)s'"),
            }
 
     def_config_files = [ '/etc/git-buildpackage/gbp.conf',
index 2445c70..5f899b8 100755 (executable)
@@ -117,6 +117,9 @@ def export_patches(repo, branch, options):
     else:
         gbp.log.info("No patches on '%s' - nothing to do." % pq_branch)
 
+    if options.drop:
+        drop_pq(repo, branch)
+
 
 def safe_patches(series, tmpdir_base):
     """
@@ -257,6 +260,7 @@ def build_parser(name):
                       help="verbose command execution")
     parser.add_option("--topic", dest="topic", help="in case of 'apply' topic (subdir) to put patch into")
     parser.add_config_file_option(option_name="time-machine", dest="time_machine", type="int")
+    parser.add_boolean_config_file_option("drop", dest='drop')
     parser.add_option("--force", dest="force", action="store_true", default=False,
                       help="in case of import even import if the branch already exists")
     parser.add_config_file_option(option_name="color", dest="color", type='tristate')
index 0b400c2..87bcd79 100644 (file)
@@ -25,7 +25,7 @@ try:
 except ImportError:
     import unittest
 
-from gbp.scripts.pq import generate_patches
+from gbp.scripts.pq import generate_patches, switch_pq, export_patches
 import gbp.scripts.common.pq as pq
 import gbp.patch_series
 import tests.testutils as testutils
@@ -137,5 +137,26 @@ class TestWritePatch(testutils.DebianGitTestRepo):
         # Branches must be identical afterwards
         self.assertEqual('', diff)
 
+class TestExport(testutils.DebianGitTestRepo):
+    class Options(object):
+        drop = True
+        patch_numbers = False
+
+    def setUp(self):
+        testutils.DebianGitTestRepo.setUp(self)
+        self.add_file('bar', 'bar')
+
+    def test_drop(self):
+        """Test if we drop the patch-queue branch with --drop"""
+        repo = self.repo
+        start = repo.get_branch()
+        pq = os.path.join('patch-queue', start)
+        switch_pq(repo, start)
+        self.assertEqual(repo.get_branch(), pq)
+        export_patches(repo, pq, TestExport.Options)
+        self.assertEqual(repo.get_branch(), start)
+        self.assertFalse(repo.has_branch(pq))
+
+
 def _patch_path(name):
     return os.path.join(context.projectdir, 'tests/data', name)