aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-05-12 14:26:58 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-05-12 14:26:58 -0400
commit630d7dea4cec3941d73f0a3c40a22e6c2a040eac (patch)
treecf7c5ace2f7a2e1f898f4f004898363b0ccdd7dd
parentd61bf001a5bd693efe1906cbd1bc1bea5c159a45 (diff)
link to my post "proposal for extending smudge/clean filters with raw file access"
-rw-r--r--doc/todo/smudge.mdwn14
1 files changed, 12 insertions, 2 deletions
diff --git a/doc/todo/smudge.mdwn b/doc/todo/smudge.mdwn
index fb97defc1..e784f746c 100644
--- a/doc/todo/smudge.mdwn
+++ b/doc/todo/smudge.mdwn
@@ -20,9 +20,19 @@ git-annex should use smudge/clean filters.
Upgrading a direct mode repo also leaves files in this state.
User can use `git add` to clear it up, but better to avoid this,
by updating stat info in the index.
- (May need to use libgit2 to do this efficiently, cannot find
+
+ May need to use libgit2 to do this efficiently, cannot find
any plumbing except git-update-index, which is very inneficient for
- smudged files.)
+ smudged files; updating a file feeds its whole content through the clean
+ filter again.
+
+ Part of the problem is that the clean filter needs to consume the whole
+ of stdin. (And git has to write the whole file content to stdout from the
+ file it mmaps). A more efficient smudge/clean interface that let the filter
+ read the file itself would let git-annex short-circuit when the file it's
+ cleaning is one it already knows about. I've proposed extending git with
+ such an interface:
+ <http://news.gmane.org/find-root.php?message_id=20160512182432.GA27427%40kitenet.net>
* Checking out a different branch causes git to smudge all changed files,
and write their content. This does not honor annex.thin. A warning