summaryrefslogtreecommitdiff
path: root/tests.branching/workflow.script
Commit message (Collapse)AuthorAgeFilesLines
* Tidy up command testsSam Thursfield2012-11-141-3/+2
| | | | Be consistent about placement of test description, blank lines, etc.
* tests: Use test: URL prefix instead of baserock: throughoutSam Thursfield2012-11-071-4/+4
| | | | | | | | | | Some tests already used test: and in order to be able to share the scripts/setup-3rd-party-strata script they need to all use the same prefix. Using baserock: implies that we are using real code from Baserock, so I picked test: because the tests only ever use mock morphologies and no real code.
* Rewrite 'merge' commandSam Thursfield2012-09-101-3/+4
| | | | | | 'merge' now traverses every system in the branch root (baserock:morphs) and merges any chunk or stratum that was changed with 'morph edit'. It also takes care of updating the refs in the target branch.
* Rewrite edit command to expect SYSTEM STRATUM [CHUNK] parametersJannis Pohlmann2012-09-041-2/+2
| | | | | | | | | | | | | | | | | Editing no longer requires a repository to be specified, neither does it require a branch. It now starts off from a system morphology that is required to exist in the branch root repository. Relative to this system, "morph edit" realises the repository of a stratum and, optionally, a chunk, creates edit branches named after the system branch, if necessary, and update the references in the system and stratum morphology accordingly. The changes made to any of the repositories in the system branch are not committed. All existing changes are updated to work with this new input syntax for "morph edit".
* Add mandatory repository parameter to "morph branch"Jannis Pohlmann2012-08-291-4/+3
| | | | | | | | | This is complementary to adding a repository parameter to the "morph checkout" command. It allows to branch off arbitrary repositories rather than always branching off baserock:morphs. All affected tests are updated to provide and work with this new parameter.
* Remember repository that was branched off from for merging and editingJannis Pohlmann2012-08-291-2/+2
| | | | | | | | | | | | | | | | | | | With this commit, "morph branch" and "morph checkout" remember the repository that was branched off from (the "branch root") in a special file called $workspace/$branch/.morph-system-branch/branch-root This information is later used when checking out individual repositories using "morph edit" instead of using the previously hard-coded "$workspace/$branch/morphs" repository as the branch root. This commit also updates the "morph merge" code to handle repositories specified with aliases or as full URLs in the same way "morph checkout" does. All affected tests are updated.
* Make "morph checkout" require a repository parameterJannis Pohlmann2012-08-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of hard-coding "baserock:morphs" as the repository we check out from, we want to allow people to check out from arbitrary repositories with system and stratum morphologies. This commit adds a mandatory repository parameter to "morph checkout". This parameter can either be an aliased repo, e.g. baserock:morphs, or a full repo URL such as ssh://gitano@git.baserock.org/baserock/morphs. When cloning the actual repository into a local directory, the following happens: For alias repos baserock:morphs and baserock:foo/bar, the repositories would be cloned into the directories $workspace/$branch/baserock:morphs and $workspace/$branch/baserock:foo/bar. For repos specified using full URLs, the scheme and .git suffix (if present) are stripped off. The above ssh example would be cloned into the following directory: $workspace/$branch/gitano@git.baserock.org/baserock/morphs This commit also adjusts all affected tests and adds a new test to verify that checking out from full repo URLs works as expected.
* Make "morph show-system-branch" anywhere in a workspace, if possibleJannis Pohlmann2012-08-291-3/+3
| | | | | | | | | | | | | | | | | | | | | There are mainly three situations to deal with: 1. We are outside a workspace and cannot deduce the system branch. 2. We are inside a workspace and inside a branch. We can detect this by walking up from the working directory towards the workspace. If we find a .morph-system-branch in one of the parent directories, we know the branch name. If we don't find one, something is wrong. 3. We are inside a workspace but outside a branch (or partially into a branch, e.g. in foo/ where the branch is foo/bar). We can deduce the branch if we recurse into subdirectories to find a .morph-system-branch directory. Care needs to be taken to not recurse infinitely. We may also not recurse if there are multiple subdirectories as these could belong to two different branches. This commit makes "morph show-system-branch" work in all of the above scenarios. It also adds tests for all of them.
* Rename the "morph minedir" command to "morph workspace"Jannis Pohlmann2012-08-291-2/+2
| | | | | | | | | | | | Mine may be a nice metaphor but it is not very intuitive. Hence, this commit renames "mine" to "workspace". This affects not just the branch and merge plugin (the only code that changes) but also documentation and tests, which are updated along with the code in this commit. I decided to omit the "dir" suffix in the command because I think people know well that a workspace will be a directory in this case and that allows us to refer to this concept with one word ("workspace") instead of two words ("workspace directory").
* Use repo alias prefixes properly in testsLars Wirzenius2012-05-041-2/+2
|
* Add test script to test the whole branch+merge processLars Wirzenius2012-03-261-0/+39