summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* unused importGravatar Joey Hess2015-12-24
|
* typoGravatar Joey Hess2015-12-24
|
* flush keys db queue even on exceptionGravatar Joey Hess2015-12-23
| | | | | Also fixed a bug in makeRunner; run' leaves the mvar empty so have to refill it.
* optimise read and write for Keys database (untested)Gravatar Joey Hess2015-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Writes are optimised by queueing up multiple writes when possible. The queue is flushed after the Annex monad action finishes. That makes it happen on program termination, and also whenever a nested Annex monad action finishes. Reads are optimised by checking once (per AnnexState) if the database exists. If the database doesn't exist yet, all reads return mempty. Reads also cause queued writes to be flushed, so reads will always be consistent with writes (as long as they're made inside the same Annex monad). A future optimisation path would be to determine when that's not necessary, which is probably most of the time, and avoid flushing unncessarily. Design notes for this commit: - separate reads from writes - reuse a handle which is left open until program exit or until the MVar goes out of scope (and autoclosed then) - writes are queued - queue is flushed periodically - immediate queue flush before any read - auto-flush queue when database handle is garbage collected - flush queue on exit from Annex monad (Note that this may happen repeatedly for a single database connection; or a connection may be reused for multiple Annex monad actions, possibly even concurrent ones.) - if database does not exist (or is empty) the handle is not opened by reads; reads instead return empty results - writes open the handle if it was not open previously
* allow flushDbQueue to be run repeatedlyGravatar Joey Hess2015-12-23
|
* auto-close database connections when MVar is GCedGravatar Joey Hess2015-12-23
|
* split out Database.Queue from Database.HandleGravatar Joey Hess2015-12-23
| | | | | | Fsck can use the queue for efficiency since it is write-heavy, and only reads a value before writing it. But, the queue is not suited to the Keys database.
* updateGravatar Joey Hess2015-12-22
|
* Merge branch 'master' into smudgeGravatar Joey Hess2015-12-22
|\
* | updateGravatar Joey Hess2015-12-22
| |
* | clean up cruft in assistant fast rename code pathGravatar Joey Hess2015-12-22
| |
* | combine PendingAddChanges for the same file into oneGravatar Joey Hess2015-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | In v6 unlocked mode, this fixes a problem that was making eg, echo > file cause the assistant to copy the file to the annex object, instead of hard linking it. That because 2 change events were seen (one for opening the file and one for closing) and processed together the file was then locked down twice. Which meant it had mutiple hard links, and so prevented linkAnnex from hard linking it. There might be scenarios where multiple events come in, but staggered such that a file gets locked down repeatedly, and it would still be copied to the annex object in that case.
* | move cleanOldKey into ingestGravatar Joey Hess2015-12-22
| |
* | populate unlocked files with newly available content when ingestingGravatar Joey Hess2015-12-22
| | | | | | | | | | | | This can happen when ingesting a new file in either locked or unlocked mode, when some unlocked files in the repo use the same key, and the content was not locally available before.
* | finish v6 support for assistantGravatar Joey Hess2015-12-22
| | | | | | | | Seems to basically work now!
* | make linkAnnex detect when the file changes as it's being copied/linked inGravatar Joey Hess2015-12-22
| | | | | | | | | | | | | | | | | | This fixes a race where the modified file ended up in annex/objects, and the InodeCache stored in the database was for the modified version, so git-annex didn't know it had gotten modified. The race could occur when the smudge filter was running; now it gets the InodeCache before generating the Key, which avoids the race.
* | refactoringGravatar Joey Hess2015-12-22
| | | | | | | | no behavior changes
| * link to neurodebian standalone debGravatar Joey Hess2015-12-22
| |
| * remove obsolte note about sid package being out of dateGravatar Joey Hess2015-12-22
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2015-12-22
| |\
| * | addurl: Added --with-files option.Gravatar Joey Hess2015-12-22
| | |
| * | refactorGravatar Joey Hess2015-12-22
| | |
* | | wip v6 support for assistantGravatar Joey Hess2015-12-21
| | | | | | | | | | | | Files are not yet added to v6 repos in unlocked mode.
* | | remove (v6) associated file in unannexGravatar Joey Hess2015-12-21
| | |
* | | Merge branch 'master' into smudgeGravatar Joey Hess2015-12-21
|\| |
| | * (no commit message)Gravatar https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f42015-12-21
| | |
| | * Added a commentGravatar frost.kristian@75a6b6a25121f985cd8708f98c691d41716ac7202015-12-21
| |/
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2015-12-21
| |\
| * | addurl: Added --batch option.Gravatar Joey Hess2015-12-21
| | |
| | * Added a commentGravatar https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f42015-12-21
| | |
| * | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2015-12-21
| |\|
| | * Added a commentGravatar cbaines2015-12-21
| | |
| | * Added a commentGravatar frost.kristian@75a6b6a25121f985cd8708f98c691d41716ac7202015-12-21
| | |
| | * Added a commentGravatar cbaines2015-12-21
| | |
| | * Added a commentGravatar cbaines2015-12-21
| | |
| | * Added a commentGravatar https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf5742015-12-21
| | |
| | * Added a comment: A problem with SmartGit then?Gravatar jhannwong@c9c7a67b5632a4bbc0c959cfeb3d340e02f285652015-12-21
| | |
| | * (no commit message)Gravatar frost.kristian@75a6b6a25121f985cd8708f98c691d41716ac7202015-12-20
| | |
| | * Added a commentGravatar sts2015-12-20
| | |
| * | fix build warnings under ghc 7.10Gravatar Joey Hess2015-12-19
| |/ | | | | | | | | | | Caused by AMP.. Since I've finally upgraded my dev laptop to 7.10, I may start missing imports that are not needed with it but are with older versions..
| * updateGravatar Joey Hess2015-12-19
| |
| * reuse commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * commentGravatar Joey Hess2015-12-19
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2015-12-19
| |\
| * | status: On crippled filesystems, was displaying M for all annexed files that ↵Gravatar Joey Hess2015-12-19
| | | | | | | | | | | | were present. Probably caused by a change to what git status displays in this situation. Fixed by treating files git thinks are modified the same as typechanged files.