aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/checkout.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@debian.org>2013-11-27 18:41:44 -0400
committerGravatar Joey Hess <joeyh@debian.org>2013-11-27 18:41:44 -0400
commit2e6d39d426f6b08f236d6071e671a9dcfc799d91 (patch)
tree1618fd9e34a30409ee0937cb4b3861ec3b5e7bba /doc/todo/checkout.mdwn
git-annex (5.20131127) unstable; urgency=low
* webapp: Detect when upgrades are available, and upgrade if the user desires. (Only when git-annex is installed using the prebuilt binaries from git-annex upstream, not from eg Debian.) * assistant: Detect when the git-annex binary is modified or replaced, and either prompt the user to restart the program, or automatically restart it. * annex.autoupgrade configures both the above upgrade behaviors. * Added support for quvi 0.9. Slightly suboptimal due to limitations in its interface compared with the old version. * Bug fix: annex.version did not get set on automatic upgrade to v5 direct mode repo, so the upgrade was performed repeatedly, slowing commands down. * webapp: Fix bug that broke switching between local repositories that use the new guarded direct mode. * Android: Fix stripping of the git-annex binary. * Android: Make terminal app show git-annex version number. * Android: Re-enable XMPP support. * reinject: Allow to be used in direct mode. * Futher improvements to git repo repair. Has now been tested in tens of thousands of intentionally damaged repos, and successfully repaired them all. * Allow use of --unused in bare repository. # imported from the archive
Diffstat (limited to 'doc/todo/checkout.mdwn')
-rw-r--r--doc/todo/checkout.mdwn23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/todo/checkout.mdwn b/doc/todo/checkout.mdwn
new file mode 100644
index 000000000..50da2d62e
--- /dev/null
+++ b/doc/todo/checkout.mdwn
@@ -0,0 +1,23 @@
+The checkout subcommand replaces the symlink that normally points at a
+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]]