summaryrefslogtreecommitdiff
path: root/doc/internals.mdwn
Commit message (Collapse)AuthorAge
* note on deleting filesGravatar Joey Hess2015-06-09
|
* parse X in location log file as indicating a dead keyGravatar Joey Hess2015-06-09
| | | | | | | | | | | | | | A dead key is both not present at the location that thinks it has a copy, and also is assumed to probably not be present anywhere else. Although there may be lurking disconnected repos that somehow still have a copy. Suprisingly few changes needed for this! This is because the presence log code only really concerns itself with keys that are present, and dead keys are not present. Note that both the location and web log can be parsed as having a dead key. I don't see any value to having keys listed as dead in the web log, but since it doesn't change any behavior, there was no point in not parsing it.
* rethought distributed fsck; instead add activity.log and expire commandGravatar Joey Hess2015-04-05
| | | | This is much more space efficient!
* splitting up the man pageGravatar Joey Hess2015-03-23
| | | | | | | | Common command man pages all split out and often expanded. A few sections split out into their own pages. Still need to do all the other commands..
* rework Differences data typeGravatar Joey Hess2015-01-28
| | | | | | | | | | | | | | Eliminated complexity and future proofed. The most important change is that all functions over Difference are now total; any Difference that can be expressed should be handled. Avoids needs for sanity checking of inputs, and version skew with the future. Also, the difference.log now serializes a [Difference], not a Differences. This saves space and keeps it simpler. Note that [Difference] might contain conflicting differences (eg, [Version5, Version6]. In this case, one of them needs to consistently win over the others, probably based on Ord.
* Repository tuning parameters can now be passed when initializing a ↵Gravatar Joey Hess2015-01-27
| | | | | | | | | | repository for the first time. * init: Repository tuning parameters can now be passed when initializing a repository for the first time. For details, see http://git-annex.branchable.com/tuning/ * merge: Refuse to merge changes from a git-annex branch of a repo that has been tuned in incompatable ways.
* Urls can now be claimed by remotes. This will allow creating, for example, a ↵Gravatar Joey Hess2014-12-08
| | | | external special remote that handles magnet: and *.torrent urls.
* DOC: minor typos and rewording in few docsGravatar Yaroslav Halchenko2014-12-04
|
* better organization and a few wording tweaksGravatar Joey Hess2014-10-31
|
* 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.
* document new chunk logfilesGravatar Joey Hess2014-07-24
|
* update for required contentGravatar Joey Hess2014-03-29
|
* factored out a generic MapLog from uuid-based logsGravatar Joey Hess2014-03-15
| | | | UUIDBased is just a MapLog with a UUID for the field.
* document more .git/annex/ contentsGravatar Joey Hess2014-02-26
|
* add metadata command to get/set metadataGravatar Joey Hess2014-02-12
| | | | | | | | | Adds metadata log, and command. Note that unsetting field values seems to currently be broken. And in general this has had all of 2 minutes worth of testing. This commit was sponsored by Julien Lefrique.
* global numcopies settingGravatar Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | * numcopies: New command, sets global numcopies value that is seen by all clones of a repository. * The annex.numcopies git config setting is deprecated. Once the numcopies command is used to set the global number of copies, any annex.numcopies git configs will be ignored. * assistant: Make the prefs page set the global numcopies. This global numcopies setting is needed to let preferred content expressions operate on numcopies. It's also convenient, because typically if you want git-annex to preserve N copies of files in a repo, you want it to do that no matter which repo it's running in. Making it global avoids needing to warn the user about gotchas involving inconsistent annex.numcopies settings. (See changes to doc/numcopies.mdwn.) Added a new variety of git-annex branch log file, that holds only 1 value. Will probably be useful for other stuff later. This commit was sponsored by Nicolas Pouillard.
* 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.
* document schedule.log and transitions.logGravatar Joey Hess2013-12-17
|
* fix linkGravatar Joey Hess2013-11-22
|
* some thoughts for madduckGravatar Joey Hess2013-11-04
|
* (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U2013-07-15
|
* document directory hashesGravatar Joey Hess2013-03-31
|
* document the encryption cipherGravatar Joey Hess2013-03-03
|
* document direct mode filesGravatar Joey Hess2012-12-25
|
* document the key formatGravatar Joey Hess2012-11-30
|
* added preferred-content log, and allow editing it with vicfgGravatar Joey Hess2012-10-04
| | | | | | | | | | | | | | This includes a full parser for the boolean expressions in the log, that compiles them into Matchers. Those matchers are not used yet. A complication is that matching against an expression should never crash git-annex with an error. Instead, vicfg checks that the expressions parse. If a bad expression (or an expression understood by some future git-annex version) gets into the log, it'll be ignored. Most of the code in Limit couldn't fail anyway, but I did have to make limitCopies check its parameter first, and return an error if it's bad, rather than erroring at runtime.
* group, ungroup: New commands to indicate groups of repositories.Gravatar Joey Hess2012-10-01
|
* some updatesGravatar Joey Hess2012-04-20
|
* add a link to git-union-mergeGravatar http://adamspiers.myopenid.com/2011-12-13
|
* slow, stupid, and safe index updatingGravatar Joey Hess2011-12-11
| | | | | | | | | | | | | | | | | | Always merge the git-annex branch into .git/annex/index before making a commit from the index. This ensures that, when the branch has been changed in any way (by a push being received, or changes pulled directly into it, or even by the user checking it out, and committing a change), the index reflects those changes. This is much too slow; it needs to be optimised to only update the index when the branch has really changed, not every time. Also, there is an unhandled race, when a change is made to the branch right after the index gets updated. I left it in for now because it's unlikely and I didn't want to complicate things with additional locking yet.
* update for dead reposGravatar Joey Hess2011-12-03
|
* add timestamps to remote.logGravatar Joey Hess2011-10-06
|
* add timestamp to uuid.logGravatar Joey Hess2011-10-06
| | | | | | | | * New or changed repository descriptions in uuid.log now have a timestamp, which is used to ensure the newest description is used when the uuid.log has been merged. * Note that older versions of git-annex will display the timestamp as part of the repository description, which is ugly but otherwise harmless.
* typoGravatar Joey Hess2011-08-15
|
* document web special remote log filesGravatar Joey Hess2011-07-01
|
* updatesGravatar Joey Hess2011-06-23
|
* add journaling to speed up changes to the git-annex branchGravatar Joey Hess2011-06-23
| | | | | | | | git is slow when the index file is large and has to be rewritten each time a file is changed. To speed this up, added a journal where changes are recorded before being fed into the index file and committed to the git-annex branch. The entire journal can be fed into git with just 2 commands, and only one write of the index file.
* update re git-annex branch direct modificationGravatar Joey Hess2011-06-23
|
* update documentation that mentioned .git-annex/Gravatar Joey Hess2011-06-22
|
* Use lowercase hash directories for locationlog filesGravatar Joey Hess2011-04-02
| | | | | | to avoid some issues with git on OSX with the mixed-case directories. No migration is needed; the old mixed case hash directories are still read; new information is written to the new directories.
* clean up remote.log handlingGravatar Joey Hess2011-03-29
|
* generalize special remote configuration storageGravatar Joey Hess2011-03-28
|
* more s3 docsGravatar Joey Hess2011-03-28
|
* update and bug closures for v2 layoutGravatar Joey Hess2011-03-16
|
* linkGravatar Joey Hess2011-03-01
|
* formatGravatar Joey Hess2011-03-01
|
* add internals pageGravatar Joey Hess2011-03-01