summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rwxr-xr-xdgit21
-rw-r--r--dgit.130
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.
--
diff --git a/dgit b/dgit
index d8a49db..867ba3c 100755
--- a/dgit
+++ b/dgit
@@ -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();
diff --git a/dgit.1 b/dgit.1
index c0c1450..e8f7eb2 100644
--- a/dgit.1
+++ b/dgit.1
@@ -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