git-annex/Git
Joey Hess 1cd02762bf
Optimisations to git-annex branch query and setting, avoiding repeated copies of the environment.
Speeds up commands like  "git-annex find --in remote" by over 50%.

Profiling showed that adjustGitEnv was 21% of the time and 37% of the
allocations of that command. It copied the environment each time with
getEnvironment.

The only repeated use of adjustGitEnv is in withIndexFile, which tends to
be run at least once per file. So, it was optimised by keeping a cache of
the environment, which can be reused.

There could be other better ways to optimise this. Maybe get the while
environment once at startup. But, then it would have to be serialized back
out each time running a child process, so I doubt that would be a net win.

It might be better to cache a version of the environment that is
pre-modified to use .git-annex/index. But, profiling doesn't show that
modifying the enviroment is taking any significant time.
2016-09-29 13:36:48 -04:00
..
Command update my email address and homepage url 2015-01-21 12:50:09 -04:00
Remote desc 2015-04-19 08:18:17 -04:00
AutoCorrect.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Branch.hs Pass -S to git commit-tree when commit.gpgsign is set and when making a non-automatic commit, in order to preserve current behavior when used with git 1.9, which has stopped doing this itself. 2016-06-02 15:07:20 -04:00
BuildVersion.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
CatFile.hs fix parsing of commit with no parents 2016-03-31 17:12:01 -04:00
CheckAttr.hs fix handling of unspecified attributes (particularly for annex.largefiles) 2016-02-05 18:41:23 -04:00
CheckIgnore.hs work around git check-ignore --batch bad exit status bug, and bring back import -J 2015-11-06 15:39:51 -04:00
Command.hs avoid withWorkTreeRelated affecting annex symlink calculation 2016-04-08 14:24:00 -04:00
Config.hs Submodules are now supported by git-annex! 2015-03-02 16:43:44 -04:00
Construct.hs avoid withWorkTreeRelated affecting annex symlink calculation 2016-04-08 14:24:00 -04:00
CurrentRepo.hs avoid unncessary IO 2015-02-12 15:33:44 -04:00
DiffTree.hs fix warning 2016-03-11 14:33:38 -04:00
DiffTreeItem.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Env.hs Optimisations to git-annex branch query and setting, avoiding repeated copies of the environment. 2016-09-29 13:36:48 -04:00
FileMode.hs fix various build warnings, mostly on Windows 2015-10-13 13:24:44 -04:00
Filename.hs fix use of hifalutin terminology 2015-11-16 14:37:31 -04:00
FilePath.hs --branch, stage 2 2016-07-20 15:23:43 -04:00
Fsck.hs Assistant, repair: Filter out git fsck lines about duplicate file entries in tree objects. 2016-09-05 16:08:49 -04:00
GCrypt.hs New url for git-remote-gcrypt, now maintained by spwhitton. 2016-07-05 11:30:58 -04:00
HashObject.hs Windows: Avoid terminating git-annex branch lines with \r\n when union merging. 2016-05-27 15:22:52 -04:00
Hook.hs Windows: Handle shebang in external special remote program. 2016-09-05 12:09:23 -04:00
Index.hs git's handing of relative GIT_INDEX_FILE is more insane than I thought; always make absolute 2016-05-22 15:02:55 -04:00
LockFile.hs replicate git's message about an existing lock file 2016-03-03 13:06:39 -04:00
LsFiles.hs remove Params constructor from Utility.SafeCommand 2015-06-01 13:52:23 -04:00
LsTree.hs forgot to use sfile 2016-02-26 16:12:40 -04:00
Merge.hs --allow-unrelated-histories will be in git 2.9.0, not 2.8.2 2016-04-27 13:54:46 -04:00
Objects.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Queue.hs minor typo fixes throughout 2016-06-02 11:22:18 -04:00
Ref.hs fix bugs in handing of deep branches with sync and adjusted branches 2016-09-21 15:23:47 -04:00
RefLog.hs Only look at reflogs for relevant branches, not for git-annex branches 2015-07-07 17:36:30 -04:00
Remote.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Repair.hs improve data type 2016-01-01 15:56:24 -04:00
Sha.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
SharedRepository.hs Support git's undocumented core.sharedRepository=2 value, which is equivilant to "world". 2015-07-06 15:33:44 -04:00
Status.hs status: Show added but not yet committed files. 2015-09-22 17:32:28 -04:00
Tree.hs more windows path fixes 2016-05-04 12:42:05 -04:00
Types.hs avoid withWorkTreeRelated affecting annex symlink calculation 2016-04-08 14:24:00 -04:00
UnionMerge.hs Sped up git-annex merge by using git hash-object --batch. 2016-03-14 16:23:22 -04:00
UpdateIndex.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Url.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Version.hs more {-# OPTIONS_GHC -fno-warn-tabs #-} ... Forcing people who have what is merely a difference of opinion to you to do this is a bit of an asshole move. Just saying. 2015-05-10 16:38:49 -04:00