summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-04-13 13:39:16 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-04-13 13:39:16 -0400
commit1305893d82cafe9f84561cbad81d2fdf1f6b55c2 (patch)
tree7c11f4f7b8eecc2ef368698bf57c99ee149c2231
parent57b41a1ee78f1181e603b5fd3c563e9b7793620f (diff)
update
-rw-r--r--doc/todo/smudge.mdwn22
1 files changed, 18 insertions, 4 deletions
diff --git a/doc/todo/smudge.mdwn b/doc/todo/smudge.mdwn
index 973499548..fb97defc1 100644
--- a/doc/todo/smudge.mdwn
+++ b/doc/todo/smudge.mdwn
@@ -23,13 +23,27 @@ git-annex should use smudge/clean filters.
(May need to use libgit2 to do this efficiently, cannot find
any plumbing except git-update-index, which is very inneficient for
smudged files.)
+
* Checking out a different branch causes git to smudge all changed files,
- and write their content. This does not honor annex.thin.
+ and write their content. This does not honor annex.thin. A warning
+ message is printed in this case.
+
This is particularly wasteful when checking out an adjusted unlocked
branch, which causes 2x the space to be used.
- Seems worth having a "git annex checkout" that's like "git checkout"
- to change branches, and honors annex.thin. And, `git annex adjust`
- could use the same thing internally when checking out an adjusted branch.
+
+ "git annex proxy" could be used to handle this.
+ Make it run the git command with smudge filters disabled and then
+ scan through the changed files in the work tree, and update pointer files
+ to be hard links to their content.
+
+ git-annex adjust and git-annex sync could both use that internally
+ when checking out the adjusted branch, and merging a branch into HEAD.
+
+ Since this approach modifies work tree files, it again causes git status
+ to think files are modified. So, the above todo item about that needs to
+ be sorted out first; it would not do for git annex adjust to cause
+ the whole work tree to be considered to be modified!
+
* Eventually (but not yet), make v6 the default for new repositories.
Note that the assistant forces repos into direct mode; that will need to
be changed then, and it should enable annex.thin instead.