From 81426ef48f85b32804f744e6fcf89b6372325dc7 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Thu, 24 Jan 2013 17:25:17 +0000 Subject: 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. --- morphlib/plugins/branch_and_merge_plugin.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'morphlib/plugins') 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 ' -- cgit v1.2.1