summaryrefslogtreecommitdiff
path: root/dgit
Commit message (Collapse)AuthorAge
* dgit: Make rpush be a configurable alias like pushIan Jackson2022-12-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Provide rpush-built as an (as yet undocumented) aliasIan Jackson2022-12-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out some_push_aliasIan Jackson2022-12-11
| | | | | | Preparation for rpush-built, rpush-source. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: implement rpush-sourceIan Jackson2022-12-11
| | | | | Closes: #974012 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: rpush: Move responder_send_command into pre_ hookIan Jackson2022-12-11
| | | | | | | | | The main program does little between these: recording and checking the cwd, mainly, and slurping the config. But this comman doesn't depend on the config and doing it earlier will simplify things when we have rpush-source too. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fix "unknown operation" message to be orig kebab caseIan Jackson2022-12-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: polluted source-only changes: tidyingIan Jackson2022-12-11
| | | | | | Make this function a bit easier to read. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: polluted source-only changes: report info to stderrIan Jackson2022-12-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: handle debian/source/include-binaries in quilt fixupIan Jackson2022-12-11
| | | | | | | | | Oh my god. Writeup here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024233#10 Closes: #1024233 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: fake dsc: Copy include-binaries into fake debian/source/Ian Jackson2022-12-11
| | | | | | This necessary, but not yet sufficient. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Add a missing debugcmd for dpkg-source --before-buildIan Jackson2022-12-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: dpkg-source -b: when using playtree, pass --no-preparationIan Jackson2022-12-10
| | | | | Closes: 1025694 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: dpkg-source invocation: Move "--" into if armsIan Jackson2022-12-10
| | | | | | This will allow the arms to add options. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Do not use gdr to make patches with unmarked breakwater startIan Jackson2022-12-10
| | | | | | | | | | | | | | We must also adjust the gdr-fresh test case: now its patches are made by dgit, not gdr. We now check that they are correct (that is, that dgit is now happy with things) but not what they look like). Several other test cases test the dgit gdr makepatches functionality, calling t-gdr-made-patches (via t-gdr-good, for example). (I have verified that changing the remaining "return 1" from branch_is_gdr to "return 0" does cause many test failures.) Closes: #1015779 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fix a direct use of chdir, should be changedirIan Jackson2022-12-10
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit push-build: Populate the split brain cache if necessaryIan Jackson2022-11-11
| | | | | | Closes: #1019454 Reported-by: Simon McVittie <smcv@debian.org> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Soften message about source-only uploads to NEWIan Jackson2022-11-11
| | | | | | | Prompted by #983056. A proper fix would involve encoding more precise knowledge about Debian archive policy. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit push: Make it warn (by default)Ian Jackson2022-09-04
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit push-*: Provide push-built; make push be an aliasIan Jackson2022-09-04
| | | | | | | | | | No overall chagne in behaviour since in this commit the default configuration is "built". However, the documentation already anticipates the change to add the warning. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* quiltify_trees_differ: Fix comment to reflect what we do nowIan Jackson2022-09-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Provide --quilt=singleIan Jackson2022-09-03
| | | | | | | This is to replace single-debian-patch. Closes: #1018984 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit; Pass --include-removal to dpkg-source -bIan Jackson2022-09-03
| | | | | | | Now, with single-debian-patch, we can still handle file removals. (This may fix other corner cases too.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: unrepresentable check: Don't tolerate symlink creationIan Jackson2022-09-03
| | | | | | | | | | | | git diff can represent changes to symlinks, but dpkg-source uses diff(1) to apply changes, and git diff cannot. The result if we permit them is that we end up making source packages that can't be built, or aren't treesame to our HEAD. Reject this early. This resolves the error handling regression in dgit: quilt fixup: Don't use dpkg-source --commit, but git diff Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: unrepresentable check: Normalise the mode for execIan Jackson2022-09-03
| | | | | | | | | | | | | Now we use git diffs, which can represent changes to the executability of files. dpkg-source uses diff(1) to apply these. So it all works. Handle this by normalising the +x bits before seeing if the mode changed. Now we properly support executable files. Closes: #995056 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Remove some now-unneeded "git checkout"Ian Jackson2022-09-03
| | | | | | | | | quiltify_make_dpkg_patch now uses git diff which doesn't require us to update the working tree. We still need to do it at the end, because the next steps expect it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Don't use dpkg-source --commit, but git diffIan Jackson2022-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | There are many things that dpkg-source can successfully extract, but which it can't create. (This is because dpkg-source largely delegates application to diff(1), and diff can do many more things nowadays.) Most real packages were made with git-format-patch or equivalent nowadays, so use of these features is common. (Hence #949675 and #995056, where even glibc has patches that dpkg-source cannot make.) Right now the practical consequences are: * Creating an executable file is fixed. This actually completes the work for #949675. * Creating a symlink has a regression in the error handling. Previously, dpkg-source --commit failed during quilt fixup. Now, we happily git diff which generates a patch that dpkg-source can't apply. We're going to fix this soon by aligning the representable change checking with reality. * It's faster and less complicated. Closes: #1018143 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quiltify_make_dpkg_patch: Pass git treeish'sIan Jackson2022-09-03
| | | | | | It will need these for running git diff. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quiltify_make_dpkg_patch: RenameIan Jackson2022-09-03
| | | | | | This is going to stop using dpkg-source. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt_fixup_dpkgsource_singlepatch: Add bug commentaryIan Jackson2022-09-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Rename quilt_fixup_dpkgsource_singlepatch and add commentIan Jackson2022-09-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: commentary: improve a diagramIan Jackson2022-09-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out quiltify_check_unrepresentableIan Jackson2022-09-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Dpkg::Source::Package: Fix require_valid_signature optionIan Jackson2022-09-03
| | | | | | | | | Dpkg::Source::Package::new takes both %opts and `options`, one nested within the other. Closes: #964286 Suggested-by: Guillem Jover <guillem@debian.org> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dry run: Improve a message - fixupIan Jackson2022-08-25
| | | | | | Fix for "invalid variable interpolation" in i18n. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dry run: Do two more operations in the playtreeIan Jackson2022-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dry run: Gate two rename callsIan Jackson2022-08-24
| | | | | | These are operating on bpd etc., which they shouldn't with dry run. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dry run: Improve a messageIan Jackson2022-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Move .pc aside while running gbp pq importIan Jackson2022-05-28
| | | | | | | | | The new --ignore-new mode (which is now the default) trips on .pc, which gbp doesn't expect to see. Part of #1005873. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: pseudomerge_version_check: Check for unfinalised changelog entryIan Jackson2022-01-02
| | | | | | | | This detects the case where d/changelog contains an unfinalised entry for $v (the version being overwritten). (This could only happen if $v is not the first entry, so this changelog is quite badly wrong.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: pseudomerge_version_check: Move $vclogp scopeIan Jackson2022-01-02
| | | | | | NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Better message for dirty treesIan Jackson2021-09-08
| | | | | Closes: #930930 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: work around deprecation of GZIPIan Jackson2021-09-08
| | | | | | | | | | | | | This makes things slower. But it avoids this warning gzip: warning: GZIP environment variable is deprecated; use an alias or script IMO this deprecation was a bad idea, but the boat has sailed. The new code here is less concurrent (which is bad) but the alternatives are rather more code to set up. Closes: #975624 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: tolerate making quilt patches creating +x filesIan Jackson2021-09-08
| | | | | | | | | | | We allow files with mode 00755 too. This works now This seems to have been an accidental extension to the source formaat, resulting from an extension to GNU `diff` and `patch`, I think it is fair to allow it now. Closes: #949675 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* gitattributes defuse: work even if .git/info/attributes missingIan Jackson2021-01-29
| | | | | | | | | Treat this as "needs setup" rather than "needs adjustment". Closes: #981344 Reported-by: Andrej Shadura <andrewsh@debian.org> Tested-by: Andrej Shadura <andrewsh@debian.org> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Terminology: Change "rewind" to "rewrite" where appropriateIan Jackson2020-02-02
| | | | | | | | | | | | | | | | | | | | | In #928473, Colin Watson writes: > the use of "rewind" as a synonym for "non-fast-forwarding", while > somewhat common in git terminology, is unfortunate. The terms seem > to be borrowed from video playback systems, where "rewind" is often > just the exact opposite of "fast-forward", and so when I see > "rewinding history" in a few places in dgit(1) my initial > interpretation is that it must mean "updating a ref to point to an > ancestor of the commit that it previously pointed to", whereas I > think dgit(1) means "any push that isn't a fast-forward". I don't > know if I'm the only one for whom it has that connotation. This makes sense. So, I am changing uses of "rewind" which do not mean precisely going back to an ancestor. I think we can often use the word "rewrite" for the more general case, but there are some places where another wording is better. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: absurd: Provide a way for absurd git to print warningsIan Jackson2020-02-01
| | | | | | | | The file ../../absurd-apply-warnings is dumped to dgit's stderr. Nothing writes to it yet, so no overall functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Once again cope with archive skewIan Jackson2019-09-06
| | | | | | | | | | | | | | | Since our http rearrangements, we have lost the ability to try multiple dsc versions which means we cope badly with archive skew. This was an editing error: in 7821907696db dgit: Abolish url_get in favour of url_fetch we omitted to notice that url_get implicitly does what url_fetch needs Ok404 to do. So we didn't add the Ok404 parameter. Fix this by adding it now. Closes: #935874 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: curl: pass CURLOPT_FOLLOWLOCATIONIan Jackson2019-09-06
| | | | | | | This was accidentally dropped in the 9.6 http changes. Closes: #939564 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fail early when the archive/ tag already exists.Ian Jackson2019-09-05
| | | | | | | | | Suggest using a new version number. We need a new --force option to override this check. Closes: #935802 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Warn when we see what look like our options passed too lateIan Jackson2019-09-05
| | | | | Closes: #934807 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>