diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-05-12 14:26:58 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-05-12 14:26:58 -0400 |
commit | 630d7dea4cec3941d73f0a3c40a22e6c2a040eac (patch) | |
tree | cf7c5ace2f7a2e1f898f4f004898363b0ccdd7dd /doc/todo/smudge.mdwn | |
parent | d61bf001a5bd693efe1906cbd1bc1bea5c159a45 (diff) |
link to my post "proposal for extending smudge/clean filters with raw file access"
Diffstat (limited to 'doc/todo/smudge.mdwn')
-rw-r--r-- | doc/todo/smudge.mdwn | 14 |
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 |