#!/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 deal with stratum renames; currently it doesn't deal ## very well, but at least we don't crash. set -eu # Create system branch. cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" init "$SRCDIR/scripts/test-morph" branch test:morphs baserock/newbranch # The user may 'morph edit hello-system hello-stratum hello' and commit here: # we currently silently ignore her changes on merge, because we don't # associate hello-stratum and goodbye-stratum at all. # Rename the stratum "$SRCDIR/scripts/test-morph" edit hello-system hello-stratum cd baserock/newbranch/test:morphs sed -e 's/"morph": "hello-stratum"/"morph": "goodbye-stratum"/'\ -i hello-system.morph sed -e 's/"name": "hello-stratum"/"name": "goodbye-stratum"/' \ hello-stratum.morph > goodbye-stratum.morph git rm -q hello-stratum.morph git add goodbye-stratum.morph git commit -q --all -m "Rename hello-stratum to goodbye-stratum" # The user may 'morph edit hello-system goodbye-stratum hello' and commit # here, too: same problem. # Merge changes back to master (this should fail, because we don't support # adding strata inside branches yet). cd "$DATADIR/workspace" "$SRCDIR/scripts/test-morph" checkout test:morphs master cd master "$SRCDIR/scripts/test-morph" merge baserock/newbranch