summaryrefslogtreecommitdiff
path: root/dgit
Commit message (Collapse)AuthorAge
* import-dsc: Actually print signature warning without --require-validIan Jackson2016-10-30
| | | | | | | If --require-valid-signature was not set, we would not print the warning if there was one. That is quite wrong. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Support --require-valid-signatureIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Check the signatureIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Introduce ff checkingIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Introduce $newhash (nfc)Ian Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Introduce $info (nfc)Ian Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: Refuse to update a checked-out branchIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import dsc: Actually permit --force-import-dsc-with-dgit-fieldIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* import-dsc: New featureIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Properly look for .origs etc. in .., fetching them less often.Ian Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* .dsc and file handling: Add some debugging outputIan Jackson2016-10-30
| | | | | | No other change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out parse_dscdata.Ian Jackson2016-10-30
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Provide --force-changes-origs-exactlyIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Automatically calculate which .origs are requiredIan Jackson2016-10-30
| | | | | | | * Spot if any of our .origs have different hashes to the archive's * Update the .changes to have the set of .origs that the archive doesn't Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Switch by default archive access method to dummycatapiIan Jackson2016-10-30
| | | | | | | Now dgit can, during the test suite, make file_in_archive queries, without exploding. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dummyapicat: New archive query methodIan Jackson2016-10-30
| | | | | | | | | | | | Like ftpmasterapi but knows that actually behind the scenes it's just mostly cat. Ths is relevant because file_in_archive_dummycatapi has to be different. (This is because the test suite can't sensibly predict what queries dgit might make, because the relevant bits of the test suite don't actually really know what .origs might be supposed to exist.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Some archive queries: Remove prototypesIan Jackson2016-10-30
| | | | | | | That makes these easier to reuse for another method. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dopush: Break out $changes variableIan Jackson2016-10-30
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dopush: Move $upstreamversion setting out to give it wider scopeIan Jackson2016-10-30
| | | | | | No functional change yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* @files_csum_info_fields: Provide ftpmaster api database field nameIan Jackson2016-10-30
| | | | | | No functional change as nothing looks here yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* archive_query: Provide file_in_archive methodsIan Jackson2016-10-30
| | | | | | No functional change as no callers yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* archive_query: Support further arguments to methodsIan Jackson2016-10-30
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* api query: Provide ability to tolerate 404Ian Jackson2016-10-30
| | | | | | | This is useful for backward-compatibility with earlier ftpmaster api versions. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split brain mode: Fix --new. Closes:#842354.Ian Jackson2016-10-30
| | | | | | Test $archive_hash for undef early enough. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* build modes handling: Check for stray .changes on all split brain build entriesIan Jackson2016-10-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* build changes handling: Break out midbuild_checkchangesIan Jackson2016-10-25
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* build changes handling: Run mergechanges when needed in non-sbuild build modesIan Jackson2016-10-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* build changes handling: Introduce postbuild_mergechangesIan Jackson2016-10-25
| | | | | | | | | | | | | | | Affects only the `sbuild' subcommand. Mostly code motion. Other changes include: * Provide in_parent, and use it. * "sbuild" changed to "build" in the msg_if_onlyone failure message * Unapply patches before merging changelogs * Reorganise so that it is possible to use this code when there is only one output changes file. 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: 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>
* 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: 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>
* 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>
* 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>
* 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>
* 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>
* pseudomerge: Suppress checks in split brain mode with --overwriteIan Jackson2016-10-18
| | | | | | | | | | | | | | | If the user has specified an appropriate --overwrite (=VERSION with the archive's version, or without a version and the archive's version being in debian/changelog), do not do all the automatic checks. Instead, in this case, simply make the dgit view be a descendant of the archive, as instructed. Closes:#841101. When generating split brain pseudomerge with --overwrite Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* pseudomerge: When generating pseudomerge in quilt split brain mode due to ↵Ian Jackson2016-10-18
| | | | | | --overwrite, actually include the version number in the commit message. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>