summaryrefslogtreecommitdiff
path: root/dgit
Commit message (Collapse)AuthorAge
* dgit: Remove unsubstituted $changesfile from messageIan Jackson2018-08-21
| | | | | | Closes:#906787. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: do not crash on push of a new gdr package. Closes:#906784.Ian Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Maybe mention gitattributesIan Jackson2018-08-20
| | | | | | | | These are a potential cause of quilt linearisation failure. Closes:#906199. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup errors: Refactor and reword very slightlyIan Jackson2018-08-20
| | | | | | | Make this two calls to push so we can put things in between. Also remove `to specify'; now the message fits in 80 columns. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Do not suggest quilt modes if we see gdrIan Jackson2018-08-20
| | | | | | | If `stopped at' is a git-debrebase commit, then a non-default quilt mode is probably not the answer. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fiuxp: linearisation failure: Add a blank lineIan Jackson2018-08-20
| | | | | | | The `stopped at' commit report can be long, if there are several, or complicated, commits. Add a blank line. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: @failsuggestion: Include a machine-readable reasonIan Jackson2018-08-20
| | | | | | | Each entry is now an arrayref. This will let quilt_fiuxp filter them later. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup error messages: Change hint emphasisIan Jackson2018-08-20
| | | | | | | | | * No longer hint --quilt=smash or dpkg source --commit. These are rarely the right thing. * Hint about bad origs, instead. This is fairly common. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Remove a spurious spaceIan Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Move reflog_cache_* from dgitIan Jackson2018-08-12
| | | | | | | | We are going to want this for git-debrebase merge resolutions. NFC other than the usual change to literal `git'. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Move make_commit_text from dgitIan Jackson2018-08-12
| | | | | | NFC other than the usual change to literal `git'. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fix a spelling error `$merginputs' to `$mergeinputs'Ian Jackson2018-08-10
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Drop an obsolete xxx commentIan Jackson2018-08-10
| | | | | | | | | | This comment comes originally from a WIP commit e0ebbc5879c01d4c3e802101e146c5fb08bc9d49 I have in before-rebase.2016-11-07. In that commit, @merginputs did not exist. Now it does, and that is how the ref comes out. So this comment is obsolete. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Move upstreamversion from dgitIan Jackson2018-08-03
| | | | | | NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Deconfuse argument orders of is_orig_file_of_p_v etc.Ian Jackson2018-08-03
| | | | | | NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Improve error message for unknown suite, to suggest -dIan Jackson2018-08-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Move is_orig_file_of_p_v and its dependencies from dgitIan Jackson2018-08-03
| | | | | | | | | We want is_orig_file_of_p_v, so move it and all the things it depends on. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Provide print-unapplied-treeish subcommand.Ian Jackson2018-08-03
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Break out quilt_fakedsc2unapplied.Ian Jackson2018-08-03
| | | | | | NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Rename --dgit-view-save to --save-dgit-view, leaving an alias.Ian Jackson2018-08-03
| | | | | | This name makes more sense. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Refactor %internal_object_save from $dgit_view_saveIan Jackson2018-08-03
| | | | | | Preparatory to allow saving other internal objects. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit build: Warn if --build-products-dir is not `..'.Ian Jackson2018-07-29
| | | | | | Closes:#904859. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Remove // from inside conditionalsIan Jackson2018-07-29
| | | | | | | | | | | This idiom is terse, but quite confusing. Instead, handle the undef case explicitly. While we are editing these: * Change two internal errors from die to confess * Fix a die in git-debrebase which ought to be badusage Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: move cmd_sbuildSean Whitton2018-07-28
| | | | | | No functional change. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: new 'pbuilder' and 'cowbuilder' subcommandsSean Whitton2018-07-28
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: remove dead $need_split_build_invocation code pathSean Whitton2018-07-28
| | | | | | No functional change. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: factor out build_with_binary_builder()Sean Whitton2018-07-28
| | | | | | The pbuilder and cowbuilder subcommands will reuse this code. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: fix a reference to parent directorySean Whitton2018-07-28
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: set $dscfn in build_or_push_prep_early()Sean Whitton2018-07-28
| | | | | | No functional change. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: opts_opt_multi_cmd: New @$extra featureIan Jackson2018-07-28
| | | | | | Adjust the existing call sites. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Update copyright yearsSean Whitton2018-07-27
| | | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Abolish move_dsc_to_bpdIan Jackson2018-07-26
| | | | | | | | | | | | | This subroutine only has one caller. It also contains a bit of duplication both within itself and compared to its caller - the calls to mv and its error handling - which is annoying to remove as it is. Instead, put its code into build_source, and break out a private subroutine $mv for the rename. No functional change other than to messages. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Revert "dgit: Move up $sourcechanges"Ian Jackson2018-07-26
| | | | | | This reverts commit 07437a3fe514da7990300b2fd594adff49685de5. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Move cmd_push_source down the fileIan Jackson2018-07-26
| | | | | | Pure code motion. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: push_source no longer cleans the tree.Ian Jackson2018-07-26
| | | | | | This is no longer needed because we always build in a playtree. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: build_source mostly uses a playtree, not $maindirIan Jackson2018-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular, it uses a playtree unless we are trying to include uncommitted changes in the source package (which is not supported in split brain mode). This change allows build_source to respect $buildproductsdir. It will also enable, later, building a source package from HEAD, or arbitrary git ref, when the working tree is dirty. This change also requires modifying build_prep to only conditionally clean $maindir. It should clean $maindir only when it's $maindir that we're packing into a source package, or when we are running any builder in $maindir. When we are using a playtree we must build the changes file there too, because dpkg-genchanges cannot be persuaded to look for the .dsc anywhere but ../. Right now build-source still cleans the tree needlessly. We need to change the test suite to not expect a clean unless running a builder: dgit now cleans the tree only when including uncommitted changes in a source package, and when running a builder in $maindir. The code in lib-build-modes does not test the including of uncommitted changes in a source package. Thus, it should expect the tree to be cleaned only when running a builder. Also, we need to not expect a clean with sbuild, for the same reason. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Drop alwayssplit testsIan Jackson2018-07-26
| | | | | | | | | | Since dgit: make $need_split_build_invocation always true this option has had no effect, so these tests are redundant. And change the comment in dgit near the option parsing. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: build_prep: Provide it with $wantsrcIan Jackson2018-07-26
| | | | | | No functional change yet as it doesn't use it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: build_source: drop call to build_prepIan Jackson2018-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | We want the callers to do this so they can control it better. They mostly already do. In detail: * cmd_push_source This one is most complicated. It already calls prep_push, which does a variety of things which overlap with build_prep. The things which are in build_prep but not in prep_push are: - notpushing (via build_prep_early), which seems to be a mistake - clean_tree(), which is needed, so we add it (for now...) - build_maybe_quilt_fixup, which is needed, so we add it - remove old changes, which is not actually needed * cmd_build, cmd_gbp_build build_prep was already called by the if arm which didn't call build_source; so we can just move it up outside the if. No functional change here. * cmd_build_source, cmd_sbuild We need to replace the call. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: build_source: Drop call to build_prep_earlyIan Jackson2018-07-26
| | | | | | | | | build_prep starts with a call to build_prep_early so this is redundant (and confusing). Effect is to sometimes no longer duplicate some effort. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Abolish build_source_for_pushIan Jackson2018-07-26
| | | | | | | | | This sub has only one caller and the indirection is not really helpful IMO. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: build_source_for_push does not try to unapply patchesSean Whitton2018-07-26
| | | | | | | | build_source_for_push should now always build in a worktree, so patches should never be applied dirtily to $maindir. Die if it turns out they were. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: Move up $sourcechangesIan Jackson2018-07-26
| | | | | | | | This is not really ideal, but cmd_push_source needs it. For now do it like this. I may move cmd_push_source further down the file, later, and then we can revert this. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: make $need_split_build_invocation always trueSean Whitton2018-07-26
| | | | | | | | | | | | | | | | | dgit will always build the source package. One minor consequence is that dgit will usualliy generate *_multi.changes rather than *_$arch.changes, so we need to update the one test that makes the contrary assumption. Bump the dgit major version number as this is quite a significant change in implementation and also a behavioural change. This change makes a lot of code dead. Removing that is left as a task for the future. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Move WANTSRC_* definitions up the fileIan Jackson2018-07-26
| | | | | | We are going to want these a bit earlier. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Disregard *_multi.changes for .changes ambiguity purposesIan Jackson2018-07-26
| | | | | | | | | | | | | | | | | | | | | | The changes file ambiguity problem arises because dgit does not know what architecture changes file the build is going to generate. (To know that it would have to delve even more into the command line options the user is passing through dgit to the builder.) dgit --always-split-build generally makes a _multi.changes file, because it merges source changes with binaries from the build. We are going to make --always-split-build the only way things are done. This would result in lots more situations where --rm-old-changes is needed. However, actually, we can assume that the builder does not generate a *_multi.changes. That will allow us to spot the builder-generated changes file even if there is already a dgit-generated *_multi.changes file from a previous build. So: disregard _multi.changes, both when pre-checking for confusing files, and when actually figuring out what the build produced. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: push-source dies if user tried to include uncommitted changesSean Whitton2018-07-26
| | | | | | | This does not make sense because you cannot dgit push uncommitted changes. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit: don't let the user pass --include-dirty in split brain modeSean Whitton2018-07-26
| | | | | | | It is not supported. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Rename --ignore-dirty to --include-dirtyIan Jackson2018-07-26
| | | | | | Leaving the old name supported as a deprecated alias. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: linkorigs: Fix error handling when bpd missingIan Jackson2018-07-26
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>