aboutsummaryrefslogtreecommitdiff
path: root/Logs/UUIDBased.hs
Commit message (Collapse)AuthorAge
* avoid accidental Show of VectorClockGravatar Joey Hess2017-08-14
| | | | Removed its Show instance.
* Added GIT_ANNEX_VECTOR_CLOCK environment variableGravatar Joey Hess2017-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Can be used to override the default timestamps used in log files in the git-annex branch. This is a dangerous environment variable; use with caution. Note that this only affects writing to the logs on the git-annex branch. It is not used for metadata in git commits (other env vars can be set for that). There are many other places where timestamps are still used, that don't get committed to git, but do touch disk. Including regular timestamps of files, and timestamps embedded in some files in .git/annex/, including the last fsck timestamp and timestamps in transfer log files. A good way to find such things in git-annex is to get for getPOSIXTime and getCurrentTime, although some of the results are of course false positives that never hit disk (unless git-annex gets swapped out..) So this commit does NOT necessarily make git-annex comply with some HIPPA privacy regulations; it's up to the user to determine if they can use it in a way compliant with such regulations. Benchmarking: It takes 0.00114 milliseconds to call getEnv "GIT_ANNEX_VECTOR_CLOCK" when that env var is not set. So, 100 thousand log files can be written with an added overhead of only 0.114 seconds. That should be by far swamped by the actual overhead of writing the log files and making the commit containing them. This commit was supported by the NSF-funded DataLad project.
* Split lines in the git-annex branch on \r as well as \n, to deal with \r\n ↵Gravatar Joey Hess2016-05-27
| | | | | | | | | | | | | | | terminated lines written by some versions of git-annex on Windows. This fixes strange displays in some cases, including whereis showing many duplicate locations, and showing more total copies than actually exist. It's unknown if that lead to data loss when eg, dropping. At the moment, it seems unlikely it could, since the UUID with \r's appended is not the same as a UUID without, and so no remote matches it. It's also unknown if \r's can leak in on windows, perhaps when merging the git-annex branch.
* support time-1.5.0Gravatar Joey Hess2015-05-10
| | | | | | | This no longer uses old-locale's defaultTimeLocale, but provides one of its own. Factored out a Logs.TimeStamp.
* update my email address and homepage urlGravatar Joey Hess2015-01-21
|
* implement chunk logsGravatar Joey Hess2014-07-24
| | | | | | | Slightly tricky as they are not normal UUIDBased logs, but are instead maps from (uuid, chunksize) to chunkcount. This commit was sponsored by Frank Thomas.
* factored out a generic MapLog from uuid-based logsGravatar Joey Hess2014-03-15
| | | | UUIDBased is just a MapLog with a UUID for the field.
* add remote state logsGravatar Joey Hess2014-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | This allows a remote to store a piece of arbitrary state associated with a key. This is needed to support Tahoe, where the file-cap is calculated from the data stored in it, and used to retrieve a key later. Glacier also would be much improved by using this. GETSTATE and SETSTATE are added to the external special remote protocol. Note that the state is left as-is even when a key is removed from a remote. It's up to the remote to decide when it wants to clear the state. The remote state log, $KEY.log.rmt, is a UUID-based log. However, rather than using the old UUID-based log format, I created a new variant of that format. The new varient is more space efficient (since it lacks the "timestamp=" hack, and easier to parse (and the parser doesn't mess with whitespace in the value), and avoids compatability cruft in the old one. This seemed worth cleaning up for these new files, since there could be a lot of them, while before UUID-based logs were only used for a few log files at the top of the git-annex branch. The transition code has also been updated to handle these new UUID-based logs. This commit was sponsored by Daniel Hofer.
* clean up cruft left in log by bugGravatar Joey Hess2013-11-09
|
* where indentingGravatar Joey Hess2012-11-11
|
* standard preferred content settings for client, transfer, backup, and ↵Gravatar Joey Hess2012-10-10
| | | | | | | | archive repositories I've designed these to work well together, I hope. If I get it wrong, I can just change the code in one place, since these expressions won't be stored in the git-annex branch.
* use strict insertWithGravatar Joey Hess2012-05-04
|
* remove some partial functionsGravatar Joey Hess2011-12-15
| | | | | A few were too hard to get rid of, and safe since the code does check for an empty line.
* Automatically fix up badly formatted uuid.log entries produced by ↵Gravatar Joey Hess2011-11-11
| | | | 3.20111105, whenever the uuid.log is changed (ie, by init or describe).
* lintGravatar Joey Hess2011-11-11
|
* clean up read/show abuseGravatar Joey Hess2011-11-08
| | | | | | | Avoid ever using read to parse a non-haskell formatted input string. show :: Key is arguably still show abuse, but displaying Keys as filenames is just too useful to give up.
* add a UUID typeGravatar Joey Hess2011-11-07
| | | | Should have done this a long time ago.
* reorganize log modulesGravatar Joey Hess2011-10-15
no code changes