summaryrefslogtreecommitdiff
path: root/doc/design/assistant
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-09-15 22:40:21 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-09-15 22:40:21 -0400
commitdd9e1f9831021511499a349ec2cf4489868422fe (patch)
tree9d78bd2d8ba4ed93a714fd2f2bc67064c5861e94 /doc/design/assistant
parentda63b7e96c6f20a9e50f4c4a5c473c108b4b83e2 (diff)
blog for the day
Diffstat (limited to 'doc/design/assistant')
-rw-r--r--doc/design/assistant/blog/day_82__git-annex_branch_work.mdwn26
-rw-r--r--doc/design/assistant/syncing.mdwn1
2 files changed, 27 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_82__git-annex_branch_work.mdwn b/doc/design/assistant/blog/day_82__git-annex_branch_work.mdwn
new file mode 100644
index 000000000..ed2e4e602
--- /dev/null
+++ b/doc/design/assistant/blog/day_82__git-annex_branch_work.mdwn
@@ -0,0 +1,26 @@
+Started today doing testing of [[syncing]], and found some bugs and things
+it needs to do better. But was quickly sidetracked when I noticed that
+`transferkey` was making a commit to the git-annex branch for every file it
+transferred, which is too slow and bloats history too much.
+
+To fix that actually involved fixing a long-standing annoyance; that
+read-only git-annex commands like `whereis` sometimes start off with
+"(Recording state in git)", when the journal contains some not yet
+committed changes to the git-annex branch. I had to carefully think
+through the cases to avoid those commits.
+
+As I was working on that, I found a real nasty lurking bug in the git-annex
+branch handling. It's unlikely to happen unless `annex.autocommit=false` is
+set, but it could occur when two git-annex processes race one another just
+right too. The root of the bug is that `git cat-file --batch` does not
+always show changes made to the index after it started. I think it does
+in enough cases to have tricked me before, but in general it can't be
+trusted to report the current state of the index, but only some past state.
+
+I was able to fix the bug, by ensuring that changes being made to the
+branch are always visible in either the journal or the branch -- never in
+the index alone.
+
+----
+
+Hopefully something less low-level tomorrow..!
diff --git a/doc/design/assistant/syncing.mdwn b/doc/design/assistant/syncing.mdwn
index ff6b9ac77..85667301d 100644
--- a/doc/design/assistant/syncing.mdwn
+++ b/doc/design/assistant/syncing.mdwn
@@ -8,6 +8,7 @@ all the other git clones, at both the git level and the key/value level.
There does not seem to be an error message. This will sometimes reproduce
(in a fresh clone each time) several times in a row, but then stops happening,
which has prevented me from debugging it.
+ This could possibly have been caused by the bug fixed in 750c4ac6c282d14d19f79e0711f858367da145e4.
* The git repository syncing sometimes fails due to the remote having updated.
While syncing retries, this sometimes doesn't work.