summaryrefslogtreecommitdiff
path: root/doc/design/assistant/blog/day_210__spring.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/design/assistant/blog/day_210__spring.mdwn')
-rw-r--r--doc/design/assistant/blog/day_210__spring.mdwn14
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_210__spring.mdwn b/doc/design/assistant/blog/day_210__spring.mdwn
index 061110b08..ff34cfbfe 100644
--- a/doc/design/assistant/blog/day_210__spring.mdwn
+++ b/doc/design/assistant/blog/day_210__spring.mdwn
@@ -13,3 +13,17 @@ Fixed some problems around USB drives. One was a real jaw-dropping
bug: "git annex drop --from usbdrive" when the drive was not
connected still updated the location log to indicate it did not have
the file anymore! (Thank goodness for fsck..)
+
+I've noticed that moving around files in direct mode repos is inneficient,
+because the assistant re-checksums the "new" file. One way to avoid
+that would be to have a lookup table from (inode, size, mtime) to
+key, but I don't have one, and would like to avoid adding one.
+
+Instead, I have a cunning plan to deal with this heuristically. If the
+assistant can notice a file was removed and another file added at the same
+time, it can compare the (inode, size, mtime) to see if it's a rename, and
+avoid the checksum overhead.
+
+The first step to getting there was to make the assistant better at
+batching together delete+add events into a single rename commit. I'm happy
+to say I've accomplished that, with no perceptable delay to commits.