#!/bin/sh # # Copyright (C) 2012-2013 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. ## Verify that "morph edit" clones a chunk repository into a system branch. set -eu # Add a second stratum that build-depends on the first. We can ignore the fact # that both strata contain the same chunk for this test. cd "$DATADIR/morphs" cat < xyzzy-stratum.morph build-depends: - morph: hello-stratum ref: master repo: test:morphs chunks: - build-depends: [] name: hello ref: master repo: test:hello kind: stratum name: xyzzy-stratum EOF # Add the xyzzy-stratum to hello-system. awk ' flag == 0 { print } /^strata:/ { flag=1; next } flag == 1 && /^[ -]/ { print; next } flag == 1 { print "- morph: xyzzy-stratum" print " ref: master" print " repo: test:morphs" print $0 flag = 0 } ' hello-system.morph > temp mv temp hello-system.morph git add xyzzy-stratum.morph hello-system.morph git commit -q -m "Add 2nd stratum with a build dependency" # Create system branch. cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init "$SRCDIR/scripts/test-morph" branch test:morphs newbranch # Edit chunk. "$SRCDIR/scripts/test-morph" edit hello-system hello-stratum hello # See what effect the editing had. "$SRCDIR/scripts/run-git-in" "newbranch/test:morphs" diff