diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-12-03 08:22:10 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-12-03 08:22:10 +0000 |
commit | f7b7157a4608d19d9bde97537df7d033cc5896f1 (patch) | |
tree | e1ba0453a46ed655bf9a0a7271a1e6c9e11efb9e | |
parent | 5c1fc7525927985fb97dcdb851808e48fee60614 (diff) | |
download | portage-f7b7157a4608d19d9bde97537df7d033cc5896f1.tar.gz portage-f7b7157a4608d19d9bde97537df7d033cc5896f1.tar.bz2 portage-f7b7157a4608d19d9bde97537df7d033cc5896f1.zip |
It's not safe to use the git commit -a option since there might
be some modified files elsewhere in the working tree that the
user doesn't want to commit. Therefore, call git update-index
in order to ensure that the index is updated with the latest
versions of all new and modified files in the relevant portion
of the working tree.
svn path=/main/trunk/; revision=12142
-rwxr-xr-x | bin/repoman | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/bin/repoman b/bin/repoman index d773419b9..9dc6ed6c9 100755 --- a/bin/repoman +++ b/bin/repoman @@ -1764,6 +1764,8 @@ else: mymanifests.add(f) else: myupdates.add(f) + if vcs == 'git': + myupdates.difference_update(myremoved) myupdates = list(myupdates) mymanifests = list(mymanifests) myheaders = [] @@ -2058,6 +2060,27 @@ else: portage.writemsg("!!! Disabled FEATURES='sign'\n") signed = False + if vcs == 'git': + # It's not safe to use the git commit -a option since there might + # be some modified files elsewhere in the working tree that the + # user doesn't want to commit. Therefore, call git update-index + # in order to ensure that the index is updated with the latest + # versions of all new and modified files in the relevant portion + # of the working tree. + myfiles = mymanifests + myupdates + myfiles.sort() + update_index_cmd = ["git", "update-index"] + update_index_cmd.extend(f.lstrip("./") for f in myfiles) + if options.pretend: + print "(%s)" % (" ".join(update_index_cmd),) + else: + retval = spawn(update_index_cmd, env=os.environ) + if retval != os.EX_OK: + writemsg_level(("!!! Exiting on %s (shell) " + \ + "error code: %s\n") % (vcs, retval), + level=logging.ERROR, noiselevel=-1) + sys.exit(retval) + if vcs == 'git' or manifest_commit_required or signed: myfiles = mymanifests[:] |