#!/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. ## "morph merge" should detect changes in a repo that was added as part of the ## branch and warn the user that the changes will not be merged automatically set -eu # Create system branch. cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init "$SRCDIR/scripts/test-morph" branch test:morphs baserock/newbranch "$SRCDIR/scripts/test-morph" edit hello-system hello-stratum hello # Chunk moves to a new location (we manually update the ref back to master # here, so 'morph edit' can create a system branch in the new repo from it). git clone -q "$DATADIR/hello" "$DATADIR/hello-lorried" cd "$DATADIR/workspace/baserock/newbranch/test:morphs" sed -e 's/"repo": "test:hello"/"repo": "test:hello-lorried"/' \ -e 's/"ref": "baserock\/newbranch"/"ref": "master"/' \ -i hello-stratum.morph git commit -q --all -m "'hello' repository has moved" # Now we further edit the chunk, just for fun. "$SRCDIR/scripts/test-morph" edit hello-system hello-stratum hello cd "$DATADIR/workspace/baserock/newbranch/test:hello-lorried" touch newfile.txt git add newfile.txt git commit -m "Add new file" --quiet cd "$DATADIR/workspace/baserock/newbranch/test:morphs" git commit -q --all -m "Update system branch refs" # Try to merge changes back to master (should fail, because we don't support # adding chunks inside branches yet). cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" checkout test:morphs master cd master "$SRCDIR/scripts/test-morph" merge baserock/newbranch