summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-02-15 16:44:10 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-02-15 16:44:10 -0400
commit2c9aa367460784b32e9657e0e9de605f004a3cee (patch)
tree15f313658976dfbb2e4113d8226165fc6c793645
parent6604062163fd85697f69128c5c6dcb35512254b9 (diff)
devblog
-rw-r--r--doc/devblog/day_447__bug_class.mdwn48
-rw-r--r--doc/todo/simpler_setup_for_remote_worktree_update_on_push.mdwn (renamed from doc/todo/simpler_setup_for_post-update_merge.mdwn)0
2 files changed, 48 insertions, 0 deletions
diff --git a/doc/devblog/day_447__bug_class.mdwn b/doc/devblog/day_447__bug_class.mdwn
new file mode 100644
index 000000000..c7b3d386c
--- /dev/null
+++ b/doc/devblog/day_447__bug_class.mdwn
@@ -0,0 +1,48 @@
+When you see a command like "ssh somehost rm -f file", you probably don't
+think that consumes stdin. After all, the `rm -f` doesn't. But, `ssh`
+can pass stdin over the network even if it's not being consumed, and it
+turns out git-annex was bitten by this.
+
+That bug made `git-annex-checkpresentkey --batch` with remote accessed
+over ssh not see all the batch-mode input that was passed into it, because
+ssh sometimes consumed some of it.
+
+Shell scripts using git-annex could also be impacted by the bug, for
+example:
+
+ #!/bin/sh
+ find . -type l -atime 100 | \
+ while read file; do
+ echo "gonna drop $file that has not been used in a while"
+ git annex drop "$file"
+ done
+
+Depending on what remotes `git annex drop` talks to, it might consume
+parts of the output of find.
+
+I've fixed this in git-annex now (using `ssh -n` when running commands
+that are not fed some stdin of their own), but this seems like a class of
+bug that could impact lots of programs that run ssh.
+
+----
+
+I've been thinking about [[simpler_setup_for_remote_worktree_update_on_push]].
+
+One nice way to make a remote update its worktree on push is available
+in recent-ish gits, receive.denyCurrentBranch=updateInstead. That could
+already be used with `git annex sync`, but it hid any error messages
+when pushing the master branch to the remote (since that push fails with
+a large error message in default configurations). Found a way to make
+the error message be displayed when the remote's receive.denyCurrentBranch
+does not have the default configuration.
+
+The remaining problem is that direct mode and adjusted branch remotes
+won't get their works trees updated even when configured that way. I am
+thinking about adding a post-update hook to support those.
+
+----
+
+Also continuing to bring up the ancient kernel arm autobuilder. It's running
+its first build now.
+
+Today's work was sponsored by Riku Voipio.
diff --git a/doc/todo/simpler_setup_for_post-update_merge.mdwn b/doc/todo/simpler_setup_for_remote_worktree_update_on_push.mdwn
index 8d25f44b9..8d25f44b9 100644
--- a/doc/todo/simpler_setup_for_post-update_merge.mdwn
+++ b/doc/todo/simpler_setup_for_remote_worktree_update_on_push.mdwn