summaryrefslogtreecommitdiff
path: root/doc/design/assistant/blog/day_210__spring.mdwn
blob: ff34cfbfe018cd046b94659230fae0bad28ce563 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Trying to record screencasts demoing the assistant is really helping me
see things that need to be fixed.

Got the version of the haskell TLS library in Debian fixed, backporting
some changes to fix a botched security fix that made it reject all
certificates. So WebDAV special remotes will work again on the next release.

Fixed some more problems around content being dropped when files are
moved to archive directories, and gotten again when files are
moved out.

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.