summaryrefslogtreecommitdiff
path: root/doc/todo
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-11-07 21:02:25 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-11-07 21:02:25 -0400
commit377bf24d9a951186b374cd7a3f920b6bc9deb8f1 (patch)
treed0dbbff751f73c63d2497c9ce5212ef7ecfc9784 /doc/todo
parent714619d9e834a3a04340b164255ff2c92f654228 (diff)
documentation for checkout
Diffstat (limited to 'doc/todo')
-rw-r--r--doc/todo/backendSHA1.mdwn2
-rw-r--r--doc/todo/checkout.mdwn18
2 files changed, 20 insertions, 0 deletions
diff --git a/doc/todo/backendSHA1.mdwn b/doc/todo/backendSHA1.mdwn
index fa9728af6..44df406de 100644
--- a/doc/todo/backendSHA1.mdwn
+++ b/doc/todo/backendSHA1.mdwn
@@ -3,3 +3,5 @@ This backend is not finished.
In particular, while files can be added using it, git-annex will not notice
when their content changes, and will not create a new key for the new sha1
of the net content.
+
+[[done]]; use checkout subcommand
diff --git a/doc/todo/checkout.mdwn b/doc/todo/checkout.mdwn
index 70d31a5ff..50da2d62e 100644
--- a/doc/todo/checkout.mdwn
+++ b/doc/todo/checkout.mdwn
@@ -3,3 +3,21 @@ file's content, with a copy of the file. Once you've checked a file out,
you can edit it, and `git commit` it. On commit, git-annex will detect
if the file has been changed, and if it has, `add` its content to the
annex.
+
+> Internally, this will need to store the original symlink to the file, in
+> `.git/annex/checkedout/$filename`.
+>
+> * git-annex uncheckout moves that back
+> * git-annex pre-commit hook checks each file being committed to see if
+> it has a symlink there, and if so, removes the symlink and adds the new
+> content to the annex.
+>
+> And it seems the file content should be copied, not moved or hard linked:
+>
+> * Makes sure other annexes can find it if transferring it from
+> this annex.
+> * Ensures it's always available for uncheckout.
+> * Avoids the last copy of a file's content being lost when
+> the checked out file is modified.
+
+[[done]]