git-annex/Command
Joey Hess 529f488ec4
fix a thundering herd problem
Avoid repeatedly opening keys db when accessing a local git remote and -J
is used.

What was happening was that Remote.Git.onLocal created a new annex state
as each thread started up. The way the MVar was used did not prevent that.
And that, in turn, led to repeated opening of the keys db, as well as
probably other extra work or resource use.

Also managed to get rid of Annex.remoteannexstate, and it turned out there
was an unncessary Maybe in the keysdbhandle, since the handle starts out
closed.
2020-04-17 17:09:29 -04:00
..
Add.hs add --force-small: Send all non-regular files through addFile 2020-03-26 13:14:16 -04:00
AddUnused.hs more RawFilePath 2019-12-18 17:10:28 -04:00
AddUrl.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Adjust.hs adjust --lock: This enters an adjusted branch where files are locked. 2019-09-27 14:23:25 -04:00
Assistant.hs remotedaemon: Don't list --stop in help since it's not supported. 2019-09-30 14:40:46 -04:00
Benchmark.hs improve benchmark --databases 2019-11-21 17:25:20 -04:00
CalcKey.hs convert KeySource to RawFilePath 2020-02-21 10:04:44 -04:00
CheckPresentKey.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Commit.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Config.hs support boolean git configs that are represented by the name of the setting with no value 2020-04-13 13:35:22 -04:00
ConfigList.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
ContentLocation.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
Copy.hs get the most commonly used commands building again 2019-12-04 13:45:18 -04:00
Dead.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Describe.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
DiffDriver.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
Direct.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
Drop.hs get the most commonly used commands building again 2019-12-04 13:45:18 -04:00
DropKey.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
DropUnused.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
EnableRemote.hs automate remote.name.skipFetchAll 2020-02-19 13:58:26 -04:00
EnableTor.hs use programPath consistently, not readProgramFile 2020-03-30 16:06:27 -04:00
ExamineKey.hs get many more commands building again 2019-12-05 11:40:10 -04:00
Expire.hs changelog and minor style 2020-02-28 12:57:55 -04:00
Export.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
Find.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
FindRef.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
Fix.hs fix build 2020-03-09 12:31:14 -04:00
Forget.hs Sped up query commands that read the git-annex branch by around 5% 2020-04-09 13:54:43 -04:00
FromKey.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Fsck.hs fix build 2020-03-09 12:31:14 -04:00
FuzzTest.hs mostly finished with createDirectoryUnder conversion 2020-03-06 11:57:15 -04:00
GCryptSetup.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Get.hs get the most commonly used commands building again 2019-12-04 13:45:18 -04:00
Group.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
GroupWanted.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
Help.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Import.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
ImportFeed.hs annex.addunlocked expressions 2019-12-20 15:56:25 -04:00
InAnnex.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Indirect.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
Info.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Init.hs changelog and minor style 2020-02-28 12:57:55 -04:00
InitRemote.hs automate remote.name.skipFetchAll 2020-02-19 13:58:26 -04:00
Inprogress.hs Merge branch 'master' into bs 2019-12-18 15:13:30 -04:00
List.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
Lock.hs convert replaceFile to createDirectoryUnder 2020-03-06 11:31:01 -04:00
LockContent.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Log.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
LookupKey.hs get many more commands building again 2019-12-05 11:40:10 -04:00
Map.hs Fix a potential failure to parse git config 2020-04-13 13:05:41 -04:00
MatchExpression.hs annex.addunlocked expressions 2019-12-20 15:56:25 -04:00
Merge.hs Sped up query commands that read the git-annex branch by around 5% 2020-04-09 13:54:43 -04:00
MetaData.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Migrate.hs convert KeySource to RawFilePath 2020-02-21 10:04:44 -04:00
Mirror.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
Move.hs get the most commonly used commands building again 2019-12-04 13:45:18 -04:00
Multicast.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
NotifyChanges.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
NumCopies.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
P2P.hs remoteConfig rework 2020-02-19 13:45:11 -04:00
P2PStdIO.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
PostReceive.hs sync --only-annex and annex.synconlyannex 2020-02-17 16:33:10 -04:00
PreCommit.hs remove unused import 2020-03-30 16:07:10 -04:00
Proxy.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
ReadPresentKey.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
RecvKey.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
RegisterUrl.hs cache the serialization of a Key 2019-11-22 17:49:16 -04:00
Reinit.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Reinject.hs convert KeySource to RawFilePath 2020-02-21 10:04:44 -04:00
ReKey.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
RemoteDaemon.hs remotedaemon: Don't list --stop in help since it's not supported. 2019-09-30 14:40:46 -04:00
RenameRemote.hs be stricter about rejecting invalid configurations for remotes 2020-01-10 14:52:48 -04:00
Repair.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Required.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ResolveMerge.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
RmUrl.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Schedule.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
Semitrust.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
SendKey.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
SetKey.hs cache the serialization of a Key 2019-11-22 17:49:16 -04:00
SetPresentKey.hs fix absolute filenames fed into --batch and git-annex info 2020-04-15 16:04:05 -04:00
Smudge.hs Fix bug that caused unlocked annexed dotfiles to be added to git by the smudge filter when annex.dotfiles was not set. 2020-03-09 14:20:02 -04:00
Status.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
Sync.hs fix a thundering herd problem 2020-04-17 17:09:29 -04:00
Test.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
TestRemote.hs Merge branch 'v7' 2020-02-26 18:15:18 -04:00
TransferInfo.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
TransferKey.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
TransferKeys.hs Sped up query commands that read the git-annex branch by around 5% 2020-04-09 13:54:43 -04:00
Trust.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Unannex.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
Undo.hs support sha256 git repos 2020-01-07 12:22:19 -04:00
Ungroup.hs make CommandStart return a StartMessage 2019-06-06 17:13:54 -04:00
Uninit.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
Unlock.hs convert replaceFile to createDirectoryUnder 2020-03-06 11:31:01 -04:00
Untrust.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Unused.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
Upgrade.hs fix problems with upgrade of local remotes 2020-03-09 16:49:28 -04:00
VAdd.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
VCycle.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
Version.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
VFilter.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
Vicfg.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
View.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
VPop.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
Wanted.hs finish CommandStart transition 2019-06-12 13:24:01 -04:00
Watch.hs remotedaemon: Don't list --stop in help since it's not supported. 2019-09-30 14:40:46 -04:00
WebApp.hs everything is building again 2019-12-05 15:10:23 -04:00
Whereis.hs catch whereisKey exception and provide error messages when external programs neglect to 2020-02-27 14:09:18 -04:00