diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2013-01-28 13:42:22 +0000 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2013-01-28 13:42:22 +0000 |
commit | e48bbe396cccb4f4be2e7170547cab1de3d6c623 (patch) | |
tree | 243164aa11827a734299bda201220f2266b1eea1 | |
parent | ae72508c67c283efbb258515036e2b8e5eaa14ed (diff) | |
parent | 7751ea4a71523fed39cefa6c9300f91e2446243b (diff) | |
download | morph-e48bbe396cccb4f4be2e7170547cab1de3d6c623.tar.gz |
Merge remote-tracking branch 'origin/baserock/richardmaw/temp-build-ref-commit-fix'
Broke a long line to make test suite pass.
-rw-r--r-- | morphlib/plugins/branch_and_merge_plugin.py | 7 | ||||
-rwxr-xr-x | tests.as-root/building-a-system-branch-picks-up-committed-removes.script | 57 |
2 files changed, 61 insertions, 3 deletions
diff --git a/morphlib/plugins/branch_and_merge_plugin.py b/morphlib/plugins/branch_and_merge_plugin.py index 88c017c8..60e8d4ef 100644 --- a/morphlib/plugins/branch_and_merge_plugin.py +++ b/morphlib/plugins/branch_and_merge_plugin.py @@ -1486,9 +1486,10 @@ class BranchAndMergePlugin(cliapp.Plugin): # Obtain parent SHA1 for the temporary ref tree to be committed. # This will either be the current commit of the temporary ref or # HEAD in case the temporary ref does not exist yet. + system_branch_sha1 = self.resolve_ref(repo_dir, system_branch) parent_sha1 = self.resolve_ref(repo_dir, build_ref) if not parent_sha1: - parent_sha1 = self.resolve_ref(repo_dir, system_branch) + parent_sha1 = system_branch_sha1 # Prepare an environment with our internal index file. # This index file allows us to commit changes to a tree without @@ -1499,8 +1500,8 @@ class BranchAndMergePlugin(cliapp.Plugin): env['GIT_COMMITTER_NAME'] = committer_name env['GIT_COMMITTER_EMAIL'] = committer_email - # Read tree from parent or current HEAD into the morph index. - self.app.runcmd(['git', 'read-tree', parent_sha1], + # Read tree from current HEAD into the morph index. + self.app.runcmd(['git', 'read-tree', system_branch_sha1], cwd=repo_dir, env=env) self.app.status(msg='%(repo)s: Adding uncommitted changes to ' diff --git a/tests.as-root/building-a-system-branch-picks-up-committed-removes.script b/tests.as-root/building-a-system-branch-picks-up-committed-removes.script new file mode 100755 index 00000000..b593eabd --- /dev/null +++ b/tests.as-root/building-a-system-branch-picks-up-committed-removes.script @@ -0,0 +1,57 @@ +#!/bin/bash +# Copyright (C) 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. + +set -e + +. "$SRCDIR/tests.as-root/setup-build" +KERNEL_BRANCH=baserock/builds/123456789/AABBCCDDE + +cd "$DATADIR/workspace/branch1/test:kernel-repo" +git checkout --quiet master +echo Use Morph >README +git add README +git commit --quiet -m 'Add README' + +# Build the linux system from the system branch. +cd "$DATADIR/workspace" +"$SRCDIR/scripts/test-morph" build linux-system + +# Make a change elsewhere to be pulled in +PEER_REPO="$DATADIR/peer-kernel" +git clone --quiet "file://$DATADIR/workspace/branch1/test:kernel-repo" \ + "$PEER_REPO" +cd "$PEER_REPO" +git checkout --quiet -b fix +# remove useless README +git rm --quiet README +git commit --quiet -m 'change stuff' +git checkout --quiet master +git merge --no-ff fix >/dev/null 2>&1 + +# Pull a commit in to the linux morphology. +cd "$DATADIR/workspace/branch1/test:kernel-repo" +git remote add peer "file://$PEER_REPO" +git remote update >/dev/null 2>&1 +git merge --quiet peer/master + +# Build the linux system again without comitting. +cd "$DATADIR/workspace" +"$SRCDIR/scripts/test-morph" build linux-system +cd branch1/test:kernel-repo + +# Check whether the new morphology exists in the temporary build ref +cd "$DATADIR/workspace/branch1/test:kernel-repo" +! git cat-file blob "$KERNEL_BRANCH:README" >/dev/null 2>&1 |