diff options
author | Robie Basak <rb-oss-1@justgohome.co.uk> | 2008-12-29 16:03:04 +0000 |
---|---|---|
committer | Guido Guenther <agx@sigxcpu.org> | 2008-12-29 19:11:46 +0100 |
commit | 6f4af4ae55f12e4d1cb5a1426d039edf5d04dee8 (patch) | |
tree | 9f6e89f7ce8d8b976a9178c5b9c8396a9df54913 | |
parent | 80921ebfda217cd9862f8a98d0c406b22404151b (diff) |
Use name and email from git
Closes: #509867
-rw-r--r-- | docs/manpages/git-dch.sgml | 8 | ||||
-rw-r--r-- | gbp/config.py | 3 | ||||
-rw-r--r-- | gbp/git_utils.py | 6 | ||||
-rwxr-xr-x | git-dch | 15 |
4 files changed, 29 insertions, 3 deletions
diff --git a/docs/manpages/git-dch.sgml b/docs/manpages/git-dch.sgml index be23906b..91a97b6a 100644 --- a/docs/manpages/git-dch.sgml +++ b/docs/manpages/git-dch.sgml @@ -33,6 +33,7 @@ <arg><option>--meta-closes=bug-close-tags</option></arg> <arg><option>--snapshot-number=</option><replaceable>expression</replaceable></arg> <arg><option>--git-log=</option><replaceable>git-log-options</replaceable></arg> + <arg><option>--git-author</option></arg> <arg choice="plain"><replaceable>[path1 path2]</replaceable></arg> </cmdsynopsis> </refsynopsisdiv> @@ -178,6 +179,13 @@ all.</para> </listitem> </varlistentry> + <varlistentry> + <term><option>--git-author</option> + </term> + <listitem> + <para>Use user.name and user.email from <application>git-config</application>(1) for changelog trailer</para> + </listitem> + </varlistentry> </variablelist> </refsect1> <refsect1> diff --git a/gbp/config.py b/gbp/config.py index cb524df8..0f167e2a 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -46,6 +46,7 @@ class GbpOptionParser(OptionParser): 'meta-closes' : 'Closes|LP', 'id-length' : '0', 'no-dch' : 'False', + 'git-author' : 'False', } help = { 'debian-branch': @@ -66,6 +67,8 @@ class GbpOptionParser(OptionParser): "use pristine-tar to create .orig.tar.gz, default is '%(pristine-tar)s'", 'filter': "files to filter out during import (can be given multiple times)", + 'git-author': + "use name and email from git-config for changelog trailer, default is '%(git-author)s'" } config_files = [ '/etc/git-buildpackage/gbp.conf', os.path.expanduser('~/.gbp.conf'), diff --git a/gbp/git_utils.py b/gbp/git_utils.py index da8884e2..ce4ebed9 100644 --- a/gbp/git_utils.py +++ b/gbp/git_utils.py @@ -153,6 +153,12 @@ class GitRepository(object): GitRm(verbose=verbose)(files) return not self.is_clean()[0] + def get_config(self, name): + """Gets the config value associated with name""" + self.__check_path() + value, ret = self.__git_getoutput('config', [ name ]) + if ret: raise KeyError + return value[0][:-1] # first line with \n ending removed def create_repo(path): """create a repository at path""" @@ -82,11 +82,19 @@ def add_changelog_section(msg, distribution, author=None, email=None, version=No spawn_dch(msg=msg, newversion= True, version=version, author=author, email=email, distribution=distribution) -def fixup_trailer(): +def fixup_trailer(repo, git_author=False): """fixup the changelog trailer's comitter and email address - it might otherwise point to the last git committer instead of the person creating the changelog""" - spawn_dch(msg='') + author = email = None + if git_author: + try: author = repo.get_config('user.name') + except KeyError: pass + + try: email = repo.get_config('user.email') + except KeyError: pass + + spawn_dch(msg='', author=author, email=email) def head_commit(): @@ -279,6 +287,7 @@ def main(argv): help="mark as snapshot build") version_group.add_option("-N", "--new-version", dest="new_version", help="use this as base for the new version number") + version_group.add_config_file_option(option_name="git-author", dest="git_author", action="store_true") commit_group.add_config_file_option(option_name="meta", dest="meta", help="parse meta tags in commit messages, default is '%(meta)s'", action="store_true") commit_group.add_config_file_option(option_name="meta-closes", dest="meta_closes", @@ -355,7 +364,7 @@ def main(argv): if commits: shortlog_to_dch(repo, commits, options) - fixup_trailer() + fixup_trailer(repo, git_author=options.git_author) elif not first_commit: print "No changes detected from %s to %s." % (since, until) |