diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-04-30 19:14:47 +0100 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-04-30 19:14:47 +0100 |
commit | 2d5b60bbbdf1a43d0271f352a0d5f536796002c9 (patch) | |
tree | 64e46c965ef66de48764ebe7ef7f1b00f38ad7f4 | |
parent | b76d00c7a1e07267b8db214e344e4e9b293e5287 (diff) | |
download | morph-2d5b60bbbdf1a43d0271f352a0d5f536796002c9.tar.gz |
Add test for branching off not from master
-rwxr-xr-x | morph | 4 | ||||
-rwxr-xr-x | tests.branching/branch-creates-new-system-branch-not-from-master.script | 35 | ||||
-rw-r--r-- | tests.branching/branch-creates-new-system-branch-not-from-master.stdout | 29 | ||||
-rw-r--r-- | tests.branching/branch-creates-new-system-branch.stdout | 4 | ||||
-rw-r--r-- | tests.branching/edit-clones-chunk.stdout | 4 | ||||
-rwxr-xr-x | tests.branching/setup | 3 |
6 files changed, 71 insertions, 8 deletions
@@ -719,13 +719,13 @@ class Morph(cliapp.Application): def cmd_branch(self, args): '''Branch the whole system.''' - if len(args) != 1: + if len(args) not in [1, 2]: raise cliapp.AppException('morph branch needs name of branch ' 'as parameter') new_branch = args[0] repo = 'morphs' - commit = 'master' + commit = 'master' if len(args) == 1 else args[1] # Create the system branch directory. os.makedirs(new_branch) diff --git a/tests.branching/branch-creates-new-system-branch-not-from-master.script b/tests.branching/branch-creates-new-system-branch-not-from-master.script new file mode 100755 index 00000000..9ab44809 --- /dev/null +++ b/tests.branching/branch-creates-new-system-branch-not-from-master.script @@ -0,0 +1,35 @@ +#!/bin/sh +# Copyright (C) 2012 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +# Make sure "morph branch" creates a new system branch. + +set -eu + +cd "$DATADIR/mine" +"$SRCDIR/scripts/test-morph" init + +"$SRCDIR/scripts/test-morph" branch newbranch origin/alfred + +echo "File tree:" +"$SRCDIR/scripts/list-tree" . | grep -v '/\.git/' | + sed 's,/cache/gits/file_[^/]*_,/cache/gits/file_,' + +echo "Current branches:" +"$SRCDIR/scripts/run-git-in" newbranch/morphs branch + +echo "Current origin:" +"$SRCDIR/scripts/run-git-in" newbranch/morphs remote show origin | + sed 's,\(TMP/mine/\.morph/cache/gits/file_\).*_,\1,g' diff --git a/tests.branching/branch-creates-new-system-branch-not-from-master.stdout b/tests.branching/branch-creates-new-system-branch-not-from-master.stdout new file mode 100644 index 00000000..7c04a8dc --- /dev/null +++ b/tests.branching/branch-creates-new-system-branch-not-from-master.stdout @@ -0,0 +1,29 @@ +File tree: +d . +d ./.morph +d ./.morph/cache +d ./.morph/cache/gits +d ./.morph/cache/gits/file_morphs +d ./.morph/cache/gits/file_morphs/.git +d ./newbranch +d ./newbranch/morphs +d ./newbranch/morphs/.git +f ./newbranch/morphs/hello-stratum.chunk +f ./newbranch/morphs/hello-system.chunk +f ./newbranch/morphs/this.is.alfred +Current branches: + master +* newbranch +Current origin: +* remote origin + Fetch URL: file://TMP/morphs + Push URL: file://TMP/morphs + HEAD branch: master + Remote branches: + alfred tracked + master tracked + Local branches configured for 'git pull': + master merges with remote master + newbranch merges with remote alfred + Local ref configured for 'git push': + master pushes to master (up to date) diff --git a/tests.branching/branch-creates-new-system-branch.stdout b/tests.branching/branch-creates-new-system-branch.stdout index 6a3a9b98..0b0ce872 100644 --- a/tests.branching/branch-creates-new-system-branch.stdout +++ b/tests.branching/branch-creates-new-system-branch.stdout @@ -17,9 +17,7 @@ Current origin: * remote origin Fetch URL: file://TMP/morphs Push URL: file://TMP/morphs - HEAD branch (remote HEAD is ambiguous, may be one of the following): - alfred - master + HEAD branch: master Remote branches: alfred tracked master tracked diff --git a/tests.branching/edit-clones-chunk.stdout b/tests.branching/edit-clones-chunk.stdout index 4bbf909e..c712f0bf 100644 --- a/tests.branching/edit-clones-chunk.stdout +++ b/tests.branching/edit-clones-chunk.stdout @@ -5,9 +5,7 @@ Current origin, morphs: * remote origin Fetch URL: file://TMP/morphs Push URL: file://TMP/morphs - HEAD branch (remote HEAD is ambiguous, may be one of the following): - alfred - master + HEAD branch: master Remote branches: alfred tracked master tracked diff --git a/tests.branching/setup b/tests.branching/setup index 68117fa3..261e7142 100755 --- a/tests.branching/setup +++ b/tests.branching/setup @@ -74,6 +74,9 @@ scripts/run-git-in "$DATADIR/morphs" commit -m initial # Add an extra branch to the morphs repo. scripts/run-git-in "$DATADIR/morphs" checkout -b alfred +touch "$DATADIR/morphs/this.is.alfred" +scripts/run-git-in "$DATADIR/morphs" add this.is.alfred +scripts/run-git-in "$DATADIR/morphs" commit --quiet -m 'mark as alfred' scripts/run-git-in "$DATADIR/morphs" checkout master |