Package: dgit
Version: 1.4
Severity: normal
Tags: patch

Hello,

`dgit push` can fail if the user has the push.followTags=true git
configuration setting.  When dgit invokes git to push the dgit refs, git
will also try to push lots of tags, which the dgit-repos pre-receive
hook will reject.

The attached patch probably fixes the problem, although I haven't tested
it because I don't have any uploads that I can make via dgit at present.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (900, 'testing')
Architecture: i386 (i686)

Kernel: Linux 4.6.0-1-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dgit depends on:
ii  ca-certificates                   20160104
ii  coreutils                         8.25-2
ii  curl                              7.47.0-1
ii  devscripts                        2.16.5
ii  dpkg-dev                          1.18.7
ii  dput                              0.9.6.4
ii  git [git-core]                    1:2.8.1-1
ii  libdpkg-perl                      1.18.7
ii  libjson-perl                      2.90-1
ii  libperl5.22 [libdigest-sha-perl]  5.22.2-1
ii  libwww-perl                       6.15-1
ii  perl                              5.22.2-1

Versions of packages dgit recommends:
ii  openssh-client [ssh-client]  1:7.2p2-5

Versions of packages dgit suggests:
ii  sbuild  0.69.0-2

-- no debconf information

-- 
Sean Whitton
From edaa40430041b53eab55e45b30877d55248fb108 Mon Sep 17 00:00:00 2001
From: Sean Whitton <spwhit...@spwhitton.name>
Date: Wed, 22 Jun 2016 10:10:16 +0900
Subject: [PATCH] unset push.followTags when pushing in `dgit push`

Otherwise, the push to dgit-repos might fail because git will push lots
of tags that the dgit-repos post-receive hook will reject.
---
 dgit | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dgit b/dgit
index e02a6bd..6182ddc 100755
--- a/dgit
+++ b/dgit
@@ -2061,7 +2061,7 @@ END
     if (!check_for_git()) {
 	create_remote_git_repo();
     }
-    runcmd_ordryrun @git, qw(push),access_giturl(),
+    runcmd_ordryrun @git, qw(-c push.followTags=false push),access_giturl(),
         $forceflag."HEAD:".rrref(), $forceflag."refs/tags/$tag";
     runcmd_ordryrun @git, qw(update-ref -m), 'dgit push', lrref(), 'HEAD';
 
-- 
2.8.1

Attachment: signature.asc
Description: PGP signature

Reply via email to