summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2009-08-23 16:46:15 +0200
committerGuido Günther <agx@sigxcpu.org>2009-08-23 18:40:14 +0200
commitee6c23824949baec5c7333a4933f64504d1a62d4 (patch)
tree81956c9da3fba84c78b2d5a8c390ef90a5f8c946
parentdcbe091422807d7bd0aede336ab1d12dd65384e5 (diff)
add postimport hook for git-import-orig
Allows to run git-dch after import. Drop the dch invocation and warn when --no-dch gets passed on the commandline. Closes: #520355
-rw-r--r--docs/manpages/git-import-orig.sgml15
-rw-r--r--gbp.conf4
-rw-r--r--gbp/config.py2
-rwxr-xr-xgit-import-orig23
4 files changed, 29 insertions, 15 deletions
diff --git a/docs/manpages/git-import-orig.sgml b/docs/manpages/git-import-orig.sgml
index 7c19adf6..84811b48 100644
--- a/docs/manpages/git-import-orig.sgml
+++ b/docs/manpages/git-import-orig.sgml
@@ -24,7 +24,6 @@
<arg><option>--verbose</option></arg>
<arg><option>--upstream-version=</option><replaceable>version</replaceable></arg>
<arg><option>--no-merge</option></arg>
- <arg><option>--no-dch</option></arg>
<arg><option>--upstream-branch=</option><replaceable>branch_name</replaceable></arg>
<arg><option>--debian-branch=</option><replaceable>branch_name</replaceable></arg>
<arg><option>--[no-]sign-tags</option></arg>
@@ -33,6 +32,7 @@
<arg><option>--filter=</option><replaceable>pattern</replaceable></arg>
<arg><option>--[no-]pristine-tar</option></arg>
<arg><option>--[no-]filter-pristine-tar</option></arg>
+ <arg><option>--postimport=cmd</option></arg>
<arg choice="plain"><replaceable>upstream-source</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -70,12 +70,7 @@
<para>Don't merge the upstream version to the development branch</para>
</listitem>
</varlistentry>
- <varlistentry>
- <term><option>--no-dch</option></term>
- <listitem>
- <para>don't call dch after the import</para>
- </listitem>
- </varlistentry>
+
<varlistentry>
<term><option>--upstream-branch</option>=<replaceable>branch_name</replaceable>
</term>
@@ -145,6 +140,12 @@
passed to pristine tar</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>--postimport=<replaceable>cmd</replaceable></option></term>
+ <listitem>
+ <para>run <replaceable>cmd</replaceable> after the import.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect1>
<refsect1>
diff --git a/gbp.conf b/gbp.conf
index ce6fc111..04011320 100644
--- a/gbp.conf
+++ b/gbp.conf
@@ -39,6 +39,10 @@
#filter = .svn
# filter out files from tarball passed to pristine tar
#filter-pristine-tar = True
+# hook run after the import:
+#postimport = git-dch -N%(version)s -S -a
+# emulate old behaviour of calling dch:
+#postimport = dch -v%(version)s New Upstream Version
# Options only affecting git-import-dsc
[git-import-dsc]
diff --git a/gbp/config.py b/gbp/config.py
index 9aec3957..f670ad5e 100644
--- a/gbp/config.py
+++ b/gbp/config.py
@@ -36,6 +36,7 @@ class GbpOptionParser(OptionParser):
'keyid' : '',
'posttag' : '',
'postbuild' : '',
+ 'postimport' : '',
'debian-tag' : 'debian/%(version)s',
'upstream-tag' : 'upstream/%(version)s',
'filter' : [],
@@ -50,7 +51,6 @@ class GbpOptionParser(OptionParser):
'meta-closes' : 'Closes|LP',
'full' : 'False',
'id-length' : '0',
- 'no-dch' : 'False',
'git-author' : 'False',
}
help = {
diff --git a/git-import-orig b/git-import-orig
index fff88386..63d12f97 100755
--- a/git-import-orig
+++ b/git-import-orig
@@ -221,13 +221,11 @@ def main(argv):
"options related to git tag creation")
branch_group = GbpOptionGroup(parser, "version and branch naming options",
"version number and branch layout options")
+ cmd_group = GbpOptionGroup(parser, "external command options", "how and when to invoke external commands and hooks")
- for group in [import_group, branch_group, cl_group, tag_group ]:
+ for group in [import_group, branch_group, cl_group, tag_group, cmd_group ]:
parser.add_option_group(group)
- cl_group.add_config_file_option(option_name="no-dch", dest='no_dch',
- help="don't call dch after the import", action="store_true")
-
branch_group.add_option("-u", "--upstream-version", dest="version",
help="Upstream Version")
branch_group.add_config_file_option(option_name="debian-branch",
@@ -254,14 +252,24 @@ def main(argv):
dest="pristine_tar")
import_group.add_boolean_config_file_option(option_name="filter-pristine-tar",
dest="filter_pristine_tar")
+ cmd_group.add_config_file_option(option_name="postimport", dest="postimport",
+ help="hook run after a successful import, default is '%(postimport)s'")
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
help="verbose command execution")
+
+ # Accepted for compatibility
+ parser.add_option("--no-dch", dest='no_dch', action="store_true",
+ default=False, help="deprecated - don't use.")
+
(options, args) = parser.parse_args(argv[1:])
if options.verbose:
gbpc.Command.verbose = True
+ if options.no_dch:
+ print >>sys.stderr, "'--no-dch' passed. This is now the default, please remove this option."
+
if options.filters:
turn_off_fastimport(options, "Import filters currently not supported with fastimport.")
@@ -369,14 +377,15 @@ on howto create it otherwise use --upstream-branch to specify it.
try:
gbpc.GitMerge(tag)()
except gbpc.CommandExecFailed:
- raise GbpError, """Merge failed, please resolve and run "dch -v %s-1".""" % version
- if not options.no_dch:
+ raise GbpError, """Merge failed, please resolve.""" % version
+ if options.postimport:
epoch = ''
if os.access('debian/changelog', os.R_OK):
cp = parse_changelog('debian/changelog')
if has_epoch(cp):
epoch = '%s:' % cp['Epoch']
- gbpc.Dch("%s%s-1" % (epoch, version), 'New Upstream Version')()
+ info = { 'version': "%s%s-1" % (epoch, version) }
+ cmd = gbpc.Command(options.postimport % info, shell=True)()
except gbpc.CommandExecFailed:
raise GbpError, "Import of %s failed" % archive
except GbpNothingImported, err: