Somewhat sped up git commit of modifications to unlocked files.

Avoid git reset here too, so I no longer need to care that it's much more
expensive than seems wise (but I asked the git list about that anyway).

It's not necessary to reset the staged file content from the index, as
the `git add` of the the symlink will replace it anyway.

`git commit` of unlocked files is still slow, since git still has to shove
their entire content into the index, only to have it be thrown away. So it's
still better to use `git annex add`
This commit is contained in:
Joey Hess 2011-05-31 16:08:37 -04:00
parent fb259033d4
commit 038da52bdd
2 changed files with 2 additions and 11 deletions

View file

@ -33,15 +33,5 @@ perform :: BackendFile -> CommandPerform
perform pair@(file, _) = do
ok <- doCommand $ Command.Add.start pair
if ok
then next $ cleanup file
then next $ return True
else error $ "failed to add " ++ file ++ "; canceling commit"
cleanup :: FilePath -> CommandCleanup
cleanup file = do
-- git commit will have staged the file's content;
-- drop that and run command queued by Add.state to
-- stage the symlink
g <- Annex.gitRepo
liftIO $ Git.run g "reset" [Params "-q --", File file]
AnnexQueue.flush True
return True

1
debian/changelog vendored
View file

@ -5,6 +5,7 @@ git-annex (0.20110523) UNRELEASED; urgency=low
`git reset`, and only running `git checkout` once, even when many files
are being locked.
* Fix locking of files with staged changes.
* Somewhat sped up `git commit` of modifications to unlocked files.
-- Joey Hess <joeyh@debian.org> Sat, 28 May 2011 22:29:37 -0400