summaryrefslogtreecommitdiff
path: root/dgit
Commit message (Collapse)AuthorAge
* dgit: Demand that all clean modes are handled by clean_tree_checkIan Jackson2018-10-13
| | | | | | | | We've dealt with all the cases now, so we can add the default. Also, in the test suite. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: clean_tree: confess rather than die on unknown clean modeIan Jackson2018-10-13
| | | | | | That would be an internal error. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: -wn clean check is a no-opIan Jackson2018-10-13
| | | | | | | Handle this explicitly in the clean_tree_check conditional and in the test suite. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: -wg / -wgf clean check is a no-opIan Jackson2018-10-13
| | | | | | | Document this, and handle it explicitly in the clean_tree_check conditional and in the test suite. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Provide --clean=dpkg-source[-d],all-check aka -wda / -wddaIan Jackson2018-10-13
| | | | | | This seems logically necessary and could help debug a clean target. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: --clean=dpkg-source: Check for untracked unignored filesIan Jackson2018-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We would like to spot if the user forgot to `git add' a file. This can be done by calling clean_tree_check_git, after rules clean (if applicable). We need to make this configurable. We do so via the clean mode, with a comma-separated checking control suffix (and short aliases) like we did for --clean=git,ignores. The default should be cautious, ie to do this check, but often the user will want to disable it because the source package has a buggy clean target or no or insufficient .gitignore. Existing users should probably get the new check until they choose otherwise (which we have made easier for them with the .clean-mode-newer config option). So we change the meanings of -wd and -wdd to include the new check, and provide new build modes ...,no-check aka -wdn / -wddn to disable it. To implement this we introduce a new clean_tree_check_git_wd function to do the actual work, particularly because both during cleaning and cleanliness checking, we want to print some hints to the user if the check fails. We can't do the new check if we applied patches dirtily to run the rules target, because it will trip over the result of patch application. This way of working is just too poor to support this new check. The test suite generally tests the default versions, not the no-check versions. We must teach the test to expect the new check. This is most easily done with a separate case for the check side of the -wd clean modes. And we need to support the no-check variant too, because: The push-source-with-changes test does in fact work with a built tree and needs to test the no-check variant. The gbp tests sometimes involve patch application. Rather than trying to predict which of them do (in which cases there would be no clean check), we force them all to ,no-check. The oldnewtagalt test can use -wgf. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Combine option parsing of -wd and -wddIan Jackson2018-10-13
| | | | | | | | We are going to introduce more variants, so we need to refactor this. No functionalk change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out clean_tre_check_gitIan Jackson2018-10-13
| | | | | | | | This will make it easier to handle the other clean modes more clearly. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Provide new clean mode --clean=check,ignoresIan Jackson2018-10-13
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: $cleanmode_re: Use extended syntaxIan Jackson2018-10-13
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: clean_tree_check: Reorganise command constructionIan Jackson2018-10-13
| | | | | | | | This will make it easier to make the command vary. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: clean_tree_check: Add a comment about modifed tracked filesIan Jackson2018-10-13
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Use a regexp to match clean mode checkIan Jackson2018-10-13
| | | | | | | | This will make it easier to introduce new variants. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Implement clean_tree_check for mode -wcIan Jackson2018-10-13
| | | | | | | | | | | | | This part of the fix for #910705. This makes -wc actually work with build_source. But per the discussion in #910705 we want to implement some checking in dpkg-source[-d] mode too. We need to teach the test suite about this notion of checking cleanlines rather than cleaning. For now we wildcard C*. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Move clean_tree_checkIan Jackson2018-10-13
| | | | | | Code motion. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Rorganise dpkg-source[-d] clean implementationIan Jackson2018-10-13
| | | | | | | | This will make it easier to introduce new variants. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Abolish obsolete variable $clean_using_builderIan Jackson2018-10-13
| | | | | | | | Nothing ever sets this to a trueish value. Abolish it. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Reorganise cleaning in build_prepIan Jackson2018-10-13
| | | | | | | | | | | | | | | 1. Replace the open-coded $includedirty with the equivalent building_source_in_playtree(), because the latter is what we actually care about here. 2. Reformat into if blocks. 3. Introuce and call clean_tree_check (currently a no-op). Now, writing clean_tree_check will be part of fixing #910705. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Honour new .clean-mode-newer access config optionIan Jackson2018-10-13
| | | | | | | This will allow us to extend the set of clean modes without causing irresolvable compatibility problems for users. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Put (?: ) around $cleanmode_re and use qr{}.Ian Jackson2018-10-13
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Drop (?!\n) from a use of $cleanmode_reIan Jackson2018-10-13
| | | | | | The config machinery now defends us from newlines. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Reject all git config options containing newlinesIan Jackson2018-10-13
| | | | | | | If we find something like this our regexp-based checking approaches are likely to fail and other strange may will go wrong. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Refuse to work if critical files have uncommitted changesIan Jackson2018-10-11
| | | | | | Notably, d/source/format and options, and the forbidden files. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Factor out debian/source/.. in check_not_dirtyIan Jackson2018-10-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out @forbid in check_not_dirtyIan Jackson2018-10-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Change to git toplevel dir before startingIan Jackson2018-10-11
| | | | | Closes: #910724. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Handle EXDEV when putting in place output sourceIan Jackson2018-10-11
| | | | | | | | Replace a rename call with rename_link_xf, and change the subsequent error handling to use $@ iff appropriate. Closes: #910730. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Add missing error check in single-debian-patch handlingIan Jackson2018-10-11
| | | | | | | We called rename here without checking the error at all. Handle ENOENT in case dpkg-source makes no patch. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Handle EXDEV when saving origsIan Jackson2018-10-11
| | | | | | | | | Replace two link calls with rename_link_xf, and change the subsequent error handling to use $@ iff appropriate. Part of the fix to #910730. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Forbid source building with --include-dirty non-.. bpdIan Jackson2018-10-11
| | | | | | | | Right now, this does bizarre damage to .. Fixing this is very hard without bpd support in dpkg-source. Closes: #910725. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt linearisation: Stop at debian/source/format changesIan Jackson2018-10-11
| | | | | | | Traversing a change of source format will not end well. Discovered this possibility while investigating #910687. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Replace mention of alioth by salsaIan Jackson2018-10-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fix spelling errors etc. in messagesIan Jackson2018-10-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Avoid crash if branch_is_gdr finds an origin commitIan Jackson2018-10-11
| | | | | | Closes: #910687. Reported-by: Mattia Rizzolo <mattia@debian.org> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Do not sometimes crash in quilt-fixup if git-debrebase missingIan Jackson2018-10-04
| | | | | | Closes:#910221. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark final batch of messages (11)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: Split another here doc for commit messages (nfc)Ian Jackson2018-10-01
| | | | | | This will make the translation markup auditable. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: fix import-dsc missing file referenceIan Jackson2018-10-01
| | | | | | | The message used to say ../ but actually nowadays we look in bpd and next to the .dsc. Change it to say .../. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark some messages (10)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Improve some error messages about changes filesIan Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Remove a spurious space (nfc)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Replace every `die $!;' with confessIan Jackson2018-10-01
| | | | | | | | | | This may improve error messages in case of internal errors etc., at the cost of producing stack traces when it's just that the user's disk is full. This is probably a good tradeoff. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark some messages (9)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: Reorganise quilt differences message generationIan Jackson2018-10-01
| | | | | | | No functional change. This will make the translation markup auditable. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark some messages (8)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Refactor and simplify `quilt fixup cannot be linear' generationIan Jackson2018-10-01
| | | | | | | | | | | Fold $reportnot into its one call site, and make the print a simple substitution rather than a complex concatenation. No functional change. This will make the translation markup auditable. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: Split more here docs for commit messages (nfc)Ian Jackson2018-10-01
| | | | | | This will make the translation markup auditable. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark some messages (7)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Improve some error messagesIan Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* i18n: dgit: mark some messages (6)Ian Jackson2018-10-01
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>