summaryrefslogtreecommitdiff
path: root/morphlib/plugins
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2013-01-24 17:25:17 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2013-01-25 16:00:22 +0000
commit81426ef48f85b32804f744e6fcf89b6372325dc7 (patch)
tree3498a3d5c71745a10e590d913cd506174f80faeb /morphlib/plugins
parent0a6ab406c667d8b542ee6008349423a83896297b (diff)
downloadmorph-81426ef48f85b32804f744e6fcf89b6372325dc7.tar.gz
Make temporary build refs count changes against HEAD
Before it would determine which files are changed by comparing your working tree to This gets even weirder, since it's effectively comparing your working tree, the last commit on the temporary build ref, and the last commit of your HEAD, so committing a change to remove a file isn't noticed, because it was in the temporary build branch. It could also cause a strange case of a file being both added and untracked. Now the working tree and HEAD are compared, and committed on top of the temporary build ref. Better handling of the status output is still required, a deleted file is treated identically to an added one if it is only removed in the index. It would also be nicer to keep the user's index, since they may have added or removed files from it.
Diffstat (limited to 'morphlib/plugins')
-rw-r--r--morphlib/plugins/branch_and_merge_plugin.py7
1 files changed, 4 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 '