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

The presence of the special dgit git remote breaks the `git remote
update' command.  The attached patch fixes the problem.  It does this by
setting a git config setting that causes `git remote update' to skip
over the dgit remote.  Unlike the other setup_* functions, I did not add
a setting to disable this behaviour since the `git remote update'
command will always fail for the special dgit remote.

Ideally, dgit would hook into git and run dgit fetch before/after the
user runs `git remote update', but I don't think that's possible.

-- 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 6620d22d46a5addeae7099e8464968a6d5822596 Mon Sep 17 00:00:00 2001
From: Sean Whitton <spwhit...@spwhitton.name>
Date: Wed, 22 Jun 2016 16:12:42 +0900
Subject: [PATCH] set remote.dgit.skipDefaultUpdate to false

This fixes `git remote update' in dgit repositories.
---
 debian/changelog | 7 +++++++
 dgit             | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index a52b712..cfec817 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+dgit (1.5) UNRELEASED; urgency=medium
+
+  * Repository setup sets remote.dgit.skipDefaultUpdate to true.
+    This fixes `git remote update' in dgit repositories.
+
+ -- Sean Whitton <spwhit...@spwhitton.name>  Wed, 22 Jun 2016 16:11:19 +0900
+
 dgit (1.4) unstable; urgency=high
 
   Bugfixes:
diff --git a/dgit b/dgit
index e02a6bd..c2ac386 100755
--- a/dgit
+++ b/dgit
@@ -1696,9 +1696,16 @@ sub setup_useremail (;$) {
     $setup->('name', 'DEBFULLNAME');
 }
 
+# Without this setting, `git remote update' will try to fetch from the
+# dgit remote, which will result in an "Invalid gitfile format" error
+sub setup_dgitremote () {
+    set_local_git_config "remote.$remotename.skipDefaultUpdate", "true";
+}
+
 sub setup_new_tree () {
     setup_mergechangelogs();
     setup_useremail();
+    setup_dgitremote();
 }
 
 sub clone ($) {
-- 
2.8.1

Attachment: signature.asc
Description: PGP signature

Reply via email to