Commit graph

31 commits

Author SHA1 Message Date
Joey Hess
3e68c1c2fd add remote state logs
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.
2014-01-03 16:35:57 -04:00
Joey Hess
1b3e2d8eb1 document schedule.log and transitions.log 2013-12-17 20:13:40 -04:00
Joey Hess
5cf8a2ffcd fix link 2013-11-22 16:19:46 -04:00
Joey Hess
70f3f22d8c some thoughts for madduck 2013-11-04 14:34:34 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U
bc5c2e0ee3 2013-07-15 09:44:10 +00:00
Joey Hess
e0f3d1a3ba document directory hashes 2013-03-31 20:13:49 -04:00
Joey Hess
b20c3a6252 document the encryption cipher 2013-03-03 20:47:36 -04:00
Joey Hess
221584ec7f document direct mode files 2012-12-25 14:25:47 -04:00
Joey Hess
08eedfef5d document the key format 2012-11-30 16:01:29 -04:00
Joey Hess
bc649a35ba added preferred-content log, and allow editing it with vicfg
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.
2012-10-04 16:00:19 -04:00
Joey Hess
2a96b1aab3 group, ungroup: New commands to indicate groups of repositories. 2012-10-01 15:12:04 -04:00
Joey Hess
c908bd3b97 some updates 2012-04-20 11:31:30 -04:00
http://adamspiers.myopenid.com/
c92d407efd add a link to git-union-merge 2011-12-13 22:01:13 +00:00
Joey Hess
8680c415de slow, stupid, and safe index updating
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.
2011-12-11 15:05:53 -04:00
Joey Hess
2f8d75638a update for dead repos 2011-12-03 21:01:22 -04:00
Joey Hess
f011033869 add timestamps to remote.log 2011-10-06 16:07:58 -04:00
Joey Hess
3e0d2a0803 add timestamp to uuid.log
* 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.
2011-10-06 15:31:25 -04:00
Joey Hess
829ea31b72 typo 2011-08-15 13:30:59 -04:00
Joey Hess
5d154b8436 document web special remote log files 2011-07-01 17:28:31 -04:00
Joey Hess
d05fd11392 updates 2011-06-23 12:11:03 -04:00
Joey Hess
5f494154a3 add journaling to speed up changes to the git-annex branch
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.
2011-06-23 11:37:26 -04:00
Joey Hess
23e765b67c update re git-annex branch direct modification 2011-06-23 09:56:04 -04:00
Joey Hess
b1acf41036 update documentation that mentioned .git-annex/ 2011-06-22 17:26:34 -04:00
Joey Hess
616e6f8a84 Use lowercase hash directories for locationlog files
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.
2011-04-02 13:49:03 -04:00
Joey Hess
05751d55cd clean up remote.log handling 2011-03-29 14:10:12 -04:00
Joey Hess
58af574934 generalize special remote configuration storage 2011-03-28 19:08:12 -04:00
Joey Hess
1878745a46 more s3 docs 2011-03-28 02:13:26 -04:00
Joey Hess
09a7689bc3 update and bug closures for v2 layout 2011-03-16 00:08:02 -04:00
Joey Hess
1072683a47 link 2011-03-01 21:38:47 -04:00
Joey Hess
d6be2e222f format 2011-03-01 21:37:27 -04:00
Joey Hess
fa92c29764 add internals page 2011-03-01 21:32:28 -04:00