summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Test suite: Provide absurd-gitapply testIan Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Import: Allow --force to enable/disableIan Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Ignore unknown force options (with a warning)Ian Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Provide --force-dsc-changes-mismatchIan Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Provide --force-unsupported-source-formatIan Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Import: Docuemnt absurdity in changelogIan Jackson2016-10-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Import: Use absurd `git apply' emulation if gbp pq import failsIan Jackson2016-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gbp import can fail due to git apply not understanding patches. This is #841867 (against dgit). The underlying problem is #841866 (in gbp pq) which exposes things like #841865 and #829067 (in git). I imagine there are other lurking incompatibilities between git-apply and dpkg-source. We could in principle reimplement the gbp patch metadata extraction. But that would be quite tiresome and have its own compatibility problems. The real problem is just `git apply'. (Indeed gbp already tries git apply without, and then with, a whitespace fix option.) We work around the trouble by providing our own implementation of `git apply'. Specifically: We try to do things the sane way (just running gbp pq import) first. If that works, great. If it doesn't, we put /usr/share/dgit/absurd on the PATH. That contains only a sh script called `git'. This sh script figures out whether the caller is trying to invoke `git apply'. If not, it runs the real git. If the caller wanted git-apply, the absurd git script emulates it using dpkg-source --before-build. Conveniently, we know that the series file will not be touched by patches. So we can write just the patch we care about into the series file, and run --before-build, which applies just that one patch. The results are committed (minus the .pc), and for the next patch, dpkg-source sees again a tree with simply a single patch to apply. We try ordinary gbp pq first because our absurd approach is very slow on a big tree. Also we would like to maximise our chances of the import working. If git and/or gbp ever work better by themselves, all of this craziness will simply not happen. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Build system substitutions, for absurditiesIan Jackson2016-10-24
| | | | | | | | | | * Introduce absurddir, which is where the absurdities will go * Substitute the absurddir into the dgit script during make all * Install the substituted scripts rather than the originals in make install * Provide a default in dgit, based on $0 * Clean the substitutions up in make clean Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Break out failedcmd_waitstatusIan Jackson2016-10-24
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Provide --force-unrepresentable.Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: --force-*: Provide frameworkIan Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit(1): Some more info about --deliberately.Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit(1): Reorder the options, moving more important ones earlier.Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 2.7~Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Finalise 2.6archive/debian/2.6Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: ftpmaster api fetch: Check http error code (!)Ian Jackson2016-10-23
| | | | | | | | | We are going to want to handle 404 specially so do not just use -f. Handle file:/// specially since curl just always invents 000 for the http error code in that case. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: failedcmd_report_cmd: Break out of failedcmdIan Jackson2016-10-23
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* curl invocation: archive-api-query subcommand: pass -f to curlIan Jackson2016-10-23
| | | | | | This makes it fail properly when it should. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* curl invocation: Always honour @curlIan Jackson2016-10-23
| | | | | | | Use --curl= and --curl: in ftpmaster api queries and in http git checks. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* curl invocation: Remove -f from @curl, and add it at the call siteIan Jackson2016-10-23
| | | | | | No significant functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Start 2.6~Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: finalise 2.5archive/debian/2.5Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Provide --gbp and --dpm as aliases for --quilt=gbp and --quilt=dpm.Ian Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Tidy upIan Jackson2016-10-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* solit brain: Do not crash in when the two brains are actually identical.Ian Jackson2016-10-23
| | | | | | | | | | | The dgit-view ref is created by quiltify_splitbrain_needed, which is not always called. But, quiltify_splitbrain_needed's other function is to switch branches. If it was called then HEAD will refer to dgit-view. If it wasn't then the original HEAD is fine. Closes:#841770. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* default config: Switch to new archive/ tag formatIan Jackson2016-10-22
| | | | | | | Even in non-split-brain mode. Also change the test suite to expect this. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: overwrite junk: Use $tagpfx where applicableIan Jackson2016-10-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Introduce setup/gnupgIan Jackson2016-10-22
| | | | | | | To work around #841143 and improve performance by amortising gnupg migration cost. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Propagate tmpbase into nested (setup) runsIan Jackson2016-10-22
| | | | | | | This stops t-setup-import wrongly deciding we are in ADT non-shared mode. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: setup import: Cope with nested and multiple importsIan Jackson2016-10-22
| | | | | | | | | | Name the IMPORT file after the setup name. This is important when running under autopkgtest, where all the setups share the tmp directory with each other and with the main test. The setups need distinct IMPORTS. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Add paragraph splitIan Jackson2016-10-21
| | | | | Suggested-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Move remarks on upstream origSean Whitton2016-10-20
| | | | | | See discussion in #840153. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit-maint-merge(7): Tweak wordingSean Whitton2016-10-20
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* debian/changelog: Document dgit-maint-merge(7)Ian Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Fiercer instructions about legally dangerous git historyIan Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Fix a typo "upsteram"Ian Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Mention what to do if upstream make good tarballsIan Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Manpages: Add note about other contributors to dgit-maint-merge(7)Ian Jackson2016-10-20
| | | | | | | I am going to edit this manpage myself in a moment. In general we don't want to have to update the AUTHOR section manually. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Manpage: add dgit-maint-merge(7) to SEE ALSOSean Whitton2016-10-20
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* debian/copyright: add myselfSean Whitton2016-10-20
| | | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Manpage: add dgit-maint-merge.7.podSean Whitton2016-10-20
| | | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Makefile: build and clean prospective *.7.podSean Whitton2016-10-20
| | | | | | | | | Build the pod section 7 manpages in "make all"; and install them, There aren't any yet, so this does nothing. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Start 2.5Ian Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Finalise 2.4debian/2.4Ian Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit(1): Document which --ch: options are a good idea.Ian Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* split brain cache: Add a dummy ref update when necessaryIan Jackson2016-10-20
| | | | | | | | | | | | | | | git-update-ref does not make a new reflog entry if the ref is not actually being changed. This can mean that `dgit build' might fail to find a good cache entry, but also fail to generate one that push will accept. In this case, generate a dummy reflog update. We make a spurious child of the $dgitview, as that's straightforward. Giving it the same tree and a parent means that human use of reflog commands will produce empty results rather than lots of confusing output. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* split brain cache: Use git log -gIan Jackson2016-10-20
| | | | | | git-reflog is Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* split brain cache: Fix a wrong implicit reference to $_. Closes:#841383.Ian Jackson2016-10-20
| | | | | | | | | Otherwise we can get: Use of uninitialized value $_ in pattern match (m//) at /usr/bin/dgit line 4364. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-cache reflog: Make note in comment about --create-reflogIan Jackson2016-10-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit gbp-build: No longer invent a --git-debian-branch option.Ian Jackson2016-10-18
| | | | | | | | Usually the user is a maintainer using split brain, and we should rely on their own gbp configuration to specify the right check. Closes:#841100. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>