Ian Jackson writes ("Re: Bug#884646: No commands in dgit-maint-gbp appear to work with 3.0 (quilt) packages"): > More when I have figured out what is going on.
So, my discoveries and some other facts: The file debian/patches/0008-Add-support-for-Subversion-svnserve.patch says diff --git a/conf_convert b/conf_convert new file mode 100755 index 0000000..a47ecba gbp pq import uses git to apply patches. git honours the file mode. This results in a git tree object containing an executable conf_convert. dpkg-source does not use git. It does not honour the file mode (at least in the version I have here). So the source package, when unpacked with dpkg-source, produces a non-executable conf_convert. dgit --quilt=gbp build-source uses gbp pq import to generate the "dgit view". dgit push checks that the dgit view is identical to the .dsc, and fails. A hint was given by this series of messages: warning: dgit: gbp-pq import and dpkg-source disagree! dgit: gbp-pq import gave commit 51b9594715c59e98e17207918996edbc160f5762 dgit: gbp-pq import gave tree a2f3c6124e1176af8e5eebcd7b1a378818f991f6 dgit: dpkg-source --before-build gave tree dc66d4bce760602ff12f5894baaf931caa2c01fa Things that I think are wrong: * Your package contains a patch which produces different results from dpkg-source to gbp pq import. This is clearly undesirable and I think it is reasonable for dgit to fail here. (In some cases this would mean the maintainer sending an unbuildable package to the archive, which builds when gbp pq import applies the patches, but not when using dpkg-source and no git tools.) * dgit push printed this dgit: HEAD specifies a different tree to rssh_2.3.4-6.dsc: dgit: conf_convert | 0 dgit: 1 file changed, 0 insertions(+), 0 deletions(-) which is a terribly obtuse way of reporting a permission difference. * dgit push printed this dgit: ... To see a full diff, run dgit: git diff dc66d4bce760602ff12f5894baaf931caa2c01fa HEAD but that is completely wrong and produces a bunch of irrelevant stuff. I think the bug is that the message says HEAD but of course the relevant diff is between the .dsc and the dgit view, not between the .dsc and HEAD, in split brain mode. If I do this git diff dc66d4bce760602ff12f5894baaf931caa2c01fa 4dcfadb60855855fa909fb1544c22af63084b4c0 I get only the expected mention of the mode of conf_convert. (that hash came from "dgit view: found cached (commit id...)") * dgit push printed this see dgit(7) for some hints but dgit(7) mentions nothing about this kind of problem. I think if you fix the first problem (eg by manually editing the patch to specify 644 as the mode, or with gbp pq and chmod and git-commit -a --amend) you will be able to use dgit in future. The others are problems with dgit. I'll wait a bit to see what everyone says, and then do some bug gardening and/or docs work. I make no comment about the behaviour of dpkg-source, except to say that having dpkg-source change, now, to honour the file mode, would be undesirable, because it would change the meaning of existing source packages. Thanks, Ian. -- Ian Jackson <ijack...@chiark.greenend.org.uk> These opinions are my own. If I emailed you from an address @fyvzl.net or @evade.org.uk, that is a private address which bypasses my fierce spamfilter.