summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Test suite: quilt-gbp-build-modes: New test, which does not pass yetIan Jackson2016-09-15
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: With sbuild, unapply patches in right dirIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: With gbp-build, provide gbp with patches-unapplied treeIan Jackson2016-09-11
| | | | | | | We may still need to apply, and then unapply, the patches, so as to clean the tree. But gbp itself expects a patches-unapplied tree. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Make maybe_unapply_patches_again reset $patches_applied_dirtilyIan Jackson2016-09-11
| | | | | | That makes it idempotent. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: Some more todo itemsIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: TODO re fetch patternsIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: Add a new desireIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: quilt-gbp: Provide and use t-gbp-pushed-goodIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Break out t-incoming-dsc (nfc)Ian Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Break out t-pushed-good-core (nfc)Ian Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-output: support expecting empty filesIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split brain: Push correct view to dgit repos serverIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Test suite: quilt-gbp test: MoreIan Jackson2016-09-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: lrfetchrefs: Delete unneeded fetched refs, etc.Ian Jackson2016-09-11
| | | | | | | | Fetch only the refs we (think we) are going to use, and delete the lrfetchrefs (`refs/dgit-fetch/...') versions of those we give another name to. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Implement `git-fetch --no-insane'Ian Jackson2016-09-11
| | | | | | | | | | git-fetch has some very poor behaviours. Implement a non-insane version. We are going to want to not fetch things we aren't going to use, and this is necessary for that. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: tag-updates: Do not assert a that dgit-fetch/ ref existsIan Jackson2016-09-11
| | | | | | | We don't actually want dgit to leave these lying around unless it has to. So don't insist on that. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: inarchivecopy: Is finishedIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: inarchivecopy: use t-sametree-parentIan Jackson2016-09-06
| | | | | | Otherwise different history between fetch and clone breaks the test. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Provide t-sametree-parentIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: need to clean up lrfetchrefsIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: inarchivecopy: More workIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: inarchivecopy: More workIan Jackson2016-09-06
| | | | | | Select specifically 1.3 for first test, and do a clone Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: inarchivecopy: New test (does not pass yet)Ian Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: provide for x-dgit-unfinished restrictionIan Jackson2016-09-06
| | | | | | | | This will allow us to add tests which fail or are broken, without causing the test suite as a whole to fail. When the test is good, the restrction should be removed. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Add a comment explaining import discardIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Clarify some messages about archive/local skewIan Jackson2016-09-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: New fetch algorithm - try to tolerate in-archive copiesIan Jackson2016-09-06
| | | | | | | | | | | | | | | | Big comment explains. Amongst other things: * Introduce the mergeinfo concept * Abolish fetchspec in favour of lrfetchref * Synthesize a pseudo-merge linking the archive's .dsc with the dgit server's git branch, as appropriate. * Introduce mergeinfo_version. I have tried to ensure that where the import done by previous versions of dgit would be correct, the new import is the same. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Remove refs/remotes/dgit/dgit/sid from pari-extra worktreeIan Jackson2016-09-05
| | | | | | | | This, effectively, simulates a previous fetch of something. Do this in the actual tests instead: in this case, only necessary in fetch-localgitonly. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: examplegit: make "new" branch be 2.xIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-commit: honour $majorv for major versionIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Honour t_dgit_xoptsIan Jackson2016-09-05
| | | | | | No callers. This may come in useful, though, at some point. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: examplegit: Make two pushes to unstableIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: examplegit: Save mirror as part of setupIan Jackson2016-09-05
| | | | | | incoming has nothing in it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-setup-*: Fix lock pathIan Jackson2016-09-05
| | | | | | Needs to be not in a directory which may not exist yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: Provide t-setup-* machineryIan Jackson2016-09-05
| | | | | | | | | | | | | | | | | | | | | Setups are, essentially, prefixes to test cases. We arrange to be able to reuse their state (as explicitly recorded in t-setup-done), so that manual runs of the test suite can be faster. We save the tmp base directory (the directory shared by tests), if there is one. That will be used for cacheing of setups. And we save the environment in form we can use xargs and env to restore. We use a conventional with-lock-ex and stamp file pattern for the cache. The IMPORT file (containing shell variables) doubles as the stamp. The setup execution rune is exciting. This mostly results from the fact that we want xargs to pass all the env vars to env, and that xargs cannot be persuaded to append fixed arguments to the arguments read from its input file. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: examplegit setup scriptIan Jackson2016-09-05
| | | | | | | | | | We are going to have `setup' scripts which explain how to set up the preconditions for one or more tests. This is the first one. Right now it runs to completion, generating its deliverables in $tmp, but then crashes due to the as-yet-unimplemented t-setup-done call. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-commit: Permit specification of the suite in $3Ian Jackson2016-09-05
| | | | | | | | | This also means that we need to default $2 with ${2:-} since callers want need to pass an empty value for the version, to get the default. No functional change since none of the call sites use this yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-pushed-good: Support other suitesIan Jackson2016-09-05
| | | | | | | | Honour $2 being the suite codename, defaulting to sid. No functional change, since no-one passes this argument right now. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Test suite: t-archive-none: Support multiple suitesIan Jackson2016-09-05
| | | | | | | | | | t-archive-none now honours `suitespecs', which defaults to just `sid:unstable'. No overall functional change since no-one sets suitespecs to a non-default value. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: Synthetic ff is not to do with $tag, reallyIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: Have checked all uses of $split_brainIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: Update following split tag workIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* TODO.BRANCH: More notes about our plansIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split brain: Test case: Do pushIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split brain: TODOsIan Jackson2016-09-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split tags: Push the maintainer view tag, where supportedIan Jackson2016-09-05
| | | | | | | | | | | | | | | | | We introduce a new `maint' possibility in to the dgit-tag-format access cfg list, presence of which indicates that the receiver is content to receive DEP-14-style maintainer-view (ie, non-dgit0 tags. For now, we default this to true. However, repos handled by dgit-repos-server cannot currently cope with this, because: * dgit-repos-server currently tries to be compatible with old dgits which send DEP-14-named dgit tags; * dgit-repos-server doesn't currently permit the creation of `extraneous' (ie, non-dgit) tags and branches. So for Debian, we do not set this flag. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split tags: Genrate maintainer-view tag tooIan Jackson2016-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | push_tagwants gets a new argument, $maintviewhead, which is defined iff the quilt mode means we want split tags. It then specifies the generation of both tags. push_mktags gains the ability to make the new `maint' view tag (and checks that the view is not something else unexpected). Introduce a function debiantag_maintview for calculating the maintainer's idea of the tag. Currently we use DEP-14 encoding (and this function is a clone-and-hack of Dgit.pm::debiantag_old, but perhaps we should do something more complicated (depending on the quilt mode). For now we do not push the maint view tag anywhere. The ability to do that, where appropriate, will come in a moment. This commit introduces protocol version 4, which includes the new `maint-view' param. When have a split brain quilt mode, we need to be sure that we're using protocol version 4 or out peer may not honour this, resulting in an annoying failure later (the responder sending a different number of tags to the number expected). We also have to check that we're using the new tag format (or we might want to try to generate two different tags with the same name, which is madness). When the quilt mode is not a split brain one, this whole commit should produce no overall functional change (even though a higher protocol version may be negotiated). Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split tags: Preparation: Rename tag variables etc. in dopushIan Jackson2016-09-05
| | | | | | | | | | | | | | We are going to have different branches at once. Rename some variables to permit this distinction. We have $actualhead (whatever HEAD is), $dgithead (the dgit view), and $maintviewhead (the maintainer's view if different, or undef if not0. Change the existing references. Also change one reference to HEAD to $dgithead: when we update the local tracking ref for the dgit view, we need to use $dgitview. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split tags: Preparation: Reorganise tagwants and mktagsIan Jackson2016-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to want to generate two tags. The current code structure is not really set up for this. Also the knowledge of what tags are being made needs to be used both in dopush and in the push responder. So: * Introduce push_tagwants, which calculates which tags we are going to be making, including some details of them. * `View' indicates which tag this is. For now there is only one, `dgit'. But the tags are going to be in a defined order - or, at least, the `dgit' tag will come first. * Have push_parse_changelog no longer return the single tag name, and abolish the corresponding $i_tag varaiable. * push_mktag bcomes push_mktags and takes much of its instruction from @$tagwants. * push_mktags does more than just making tags - it also updates the dsc, and does some checks, so it needs to fish the relevant object id out of the dgit view tag. * $mktag in push_tagwants can now operate on a tagwant, and the tag-making part of push_mktags just iterates over the tagwants. * The filename plumbing in dopush is somewhat generalised: we collect the filenames out of push_mtags or responder_receive_files, and then substitute them into the tagwants. * The tag checking iterates over the tagwants. * The push spec computation iterates over the tagwants. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Split tags: Preparation: Break out (and fix) need_tagformatIan Jackson2016-09-05
| | | | | | | | | | No major functional change. However, we do preserve the previous override value, so that need_tagformat's caller is happy, we still override the access configuration. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>