From af2896a3796812f8094f9acb8ed2d1f10914f878 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Wed, 3 Oct 2012 17:54:25 +0100 Subject: Handle submodules in 'morph edit' We often have .gitmodules edited to contain a URI such as upstream:gnulib, so that we can transparently mirror these in different locations. It would be nice to set up git url.insteadOf rules to expand these for the submodules, but 'git submodule update' uses 'git clone' to fetch them, which will not take into account the configuration of the parent repository. Instead, we set up the submodules automatically and rewrite the URLs directly in the configuration. The user will need to recreate their system branch checkouts if their URL configuration changes, or update the URLs manually, but that should not happen often. --- tests.branching/edit-handles-submodules.script | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 tests.branching/edit-handles-submodules.script (limited to 'tests.branching/edit-handles-submodules.script') diff --git a/tests.branching/edit-handles-submodules.script b/tests.branching/edit-handles-submodules.script new file mode 100755 index 00000000..6e781cbe --- /dev/null +++ b/tests.branching/edit-handles-submodules.script @@ -0,0 +1,31 @@ +#!/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. + +# 'morph edit' should set up git URL rewriting correctly so that submodule +# commands function as usual, despite our prefixing and mirroring. + +set -eu + +cd "$DATADIR/workspace" +"$SRCDIR/scripts/test-morph" init +"$SRCDIR/scripts/test-morph" branch baserock:morphs newbranch + +# Submodules should be set up automatically +"$SRCDIR/scripts/test-morph" edit hello-system hello-stratum hello + +cd "$DATADIR/workspace/newbranch/baserock:hello" +[ -e foolib/README ] + -- cgit v1.2.1