From 2d5b60bbbdf1a43d0271f352a0d5f536796002c9 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 30 Apr 2012 19:14:47 +0100 Subject: Add test for branching off not from master --- morph | 4 +-- ...reates-new-system-branch-not-from-master.script | 35 ++++++++++++++++++++++ ...reates-new-system-branch-not-from-master.stdout | 29 ++++++++++++++++++ .../branch-creates-new-system-branch.stdout | 4 +-- tests.branching/edit-clones-chunk.stdout | 4 +-- tests.branching/setup | 3 ++ 6 files changed, 71 insertions(+), 8 deletions(-) create mode 100755 tests.branching/branch-creates-new-system-branch-not-from-master.script create mode 100644 tests.branching/branch-creates-new-system-branch-not-from-master.stdout diff --git a/morph b/morph index 8f3ba311..0a77995b 100755 --- a/morph +++ b/morph @@ -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 -- cgit v1.2.1