diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-27 03:51:00 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-27 03:51:37 +0100 |
commit | fc328b35ddc6e37c183383d5f8c6bb973dd0cc9b (patch) | |
tree | 3204e5480f5e466b70e9f5331d1f2730e0b14dcc | |
parent | b03d65e3455ddc7ec7ef7ac666693f2013841817 (diff) |
Set up git user.email and user.name from distro access config or DEBEMAIL/DEBFULLNAME. Closes:#793410.
-rw-r--r-- | debian/changelog | 2 | ||||
-rwxr-xr-x | dgit | 21 | ||||
-rw-r--r-- | dgit.1 | 30 |
3 files changed, 49 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog index 5c9b4f9..4111fcd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,6 +45,8 @@ dgit (1.1~~) unstable; urgency=low * Make configuration able to prevent dpkg-mergechangelogs setup. * Provide dgit setup-new-tree (like dpkg-setup-mergechangelogs but only does it if not disabled in config). + * Set up git user.email and user.name from distro access config + or DEBEMAIL/DEBFULLNAME. Closes:#793410. -- @@ -1668,8 +1668,24 @@ sub setup_mergechangelogs (;$) { rename "$attrs.new", "$attrs" or die "$attrs: $!"; } +sub setup_useremail (;$) { + my ($always) = @_; + return unless $always || access_cfg_bool(1, 'setup-useremail'); + + my $setup = sub { + my ($k, $envvar) = @_; + my $v = access_cfg("user-$k", 'RETURN-UNDEF') // $ENV{$envvar}; + return unless defined $v; + set_local_git_config "user.$k", $v; + }; + + $setup->('email', 'DEBEMAIL'); + $setup->('name', 'DEBFULLNAME'); +} + sub setup_new_tree () { setup_mergechangelogs(); + setup_useremail(); } sub clone ($) { @@ -3031,6 +3047,11 @@ sub cmd_setup_mergechangelogs { setup_mergechangelogs(1); } +sub cmd_setup_useremail { + badusage "no arguments allowed to dgit setup-mergechangelogs" if @ARGV; + setup_useremail(1); +} + sub cmd_setup_new_tree { badusage "no arguments allowed to dgit setup-tree" if @ARGV; setup_new_tree(); @@ -200,16 +200,25 @@ public key in its keyring (but not your private key, obviously). .TP .B dgit setup-new-tree Configure the current working tree the way that dgit clone would have -set it up. Like running dgit setup-mergechangelogs (but only does it -if dgit is configured to do it automatically). +set it up. Like running +.B dgit setup-useremail +and +.B setup-mergechangelogs +(but only does each thing if dgit is configured to do it automatically). +You can use these in any git repository, not just ones used with +the other dgit operations. +.TP +.B dgit setup-useremail +Set the working tree's user.name and user.email from the +distro-specific dgit configuration +.RB ( dgit-distro. \fIdistro\fR .user-name " and " .user-email ), +or DEBFULLNAME or DEBEMAIL. .TP .B dgit setup-mergechangelogs Configures a git merge helper for the file .B debian/changelog which uses .BR dpkg-mergechangelogs . -You can use this in any git repository, not just ones used with -the other dgit operations. .TP .B dgit quilt-fixup `3.0 (quilt)' format source packages need changes representing not @@ -639,6 +648,15 @@ Not relevant for Debian. .BI dgit-distro. distro .upload-host Might be useful if you have an intermediate queue server. .TP +.BI dgit-distro. distro .user-name " " dgit-distro. distro .user-email +Values to configure for user.name and user.email in new git trees. If +not specified, the DEBFULLNAME and DEBEMAIL environment variables are +used, respectively. Only used if .setup-usermail is not disabled. +.TP +.BI dgit-distro. distro .setup-useremail +Whether to set user.name and user.email in new git trees. +True by default. Ignored for dgit setup-setup-useremail, which does it anyway. +.TP .BI dgit-distro. distro .setup-mergechangelogs Whether to setup a merge driver which uses dpkg-mergechangelogs for debian/changelog. True by default. Ignored for dgit @@ -718,6 +736,10 @@ interprets it the same way as git does. See also the --ssh= and --ssh: options. .TP +.BR DEBEMAIL ", " DEBFULLNAME +Default git user.email and user.name for new trees. See +.BR "dgit setup-new-tree" . +.TP .BR gpg ", " dpkg- "..., " debsign ", " git ", " curl ", " dput ", " LWP::UserAgent and other subprograms and modules used by dgit are affected by various environment variables. Consult the documentaton for those programs |