This commit is contained in:
Joey Hess 2018-10-22 12:39:36 -04:00
parent 3286e68063
commit fc26fd059b
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -10,19 +10,19 @@ git-annex should use smudge/clean filters. v6 mode
branch, which causes 2x the space to be used. branch, which causes 2x the space to be used.
"git annex proxy" could be used to handle this. "git annex proxy" could be used to handle this.
Make it run the git command with smudge filters disabled and then Make it run the git command with smudge filter set to not output content
scan through the changed files in the work tree, and update pointer files but only pointers, and then at the end populate the pointer files, hard
to be hard links to their content. when appropriate. (As an optimization, the smudge filter could also be
made to use the long-running filter interface when run this way.)
git-annex adjust and git-annex sync could both use that internally git-annex adjust and git-annex sync could both use that internally
when checking out the adjusted branch, and merging a branch into HEAD. when checking out the adjusted branch, and merging a branch into HEAD.
Or: Make the smudge filter not provide the actual file content, but the Or: Make the smudge filter never provide the actual file content, but the
pointer, at least when used in a checkout. And install a post-checkout pointer. Install post-checkout and post-merge hooks that populate
hook that populates the worktree files that were checked out. the worktree files that were checked out. Of course, they will also
Of course, it will also need to update the index. need to update the index.
A post-merge hook would also be needed to handle git pull and merge.
Problem: post-merge hook is not run when there's a merge conflict. Problem: post-merge hook is not run when there's a merge conflict.
Git does not actually run the smudge filter in this case; Git does not actually run the smudge filter in this case;
the conflicting file becomes a text file containing a merge conflict the conflicting file becomes a text file containing a merge conflict
@ -32,6 +32,10 @@ git-annex should use smudge/clean filters. v6 mode
populated. The post-commit hook would then need to populate the file, populated. The post-commit hook would then need to populate the file,
once the merge got committed. once the merge got committed.
Problem: No hook seems to be run for git stash / git stash apply
or for git reset --hard. Fatal or can we live with needing to run a
git-annex command to populate the files after those commands?
Optionally: Use the filterdriver interface during checkout. Unfortunately that Optionally: Use the filterdriver interface during checkout. Unfortunately that
interface is slower for cleaning during git add (see interface is slower for cleaning during git add (see
[[todo/Long_Running_Filter_Process]]), but if the smudge filter is not [[todo/Long_Running_Filter_Process]]), but if the smudge filter is not