git-annex/doc/projects/datalad/bugs-done/annex-ssh-options_dropped_since_8.20200330.mdwn
Joey Hess bcc69f07e8
move old fixed datalad/dandi/repronim bugs to the project pages
This is to cut down on the number of files in bugs/, which makes it slow
to file new bug reports or update active bug reports. These old bugs
were about 1/3rd of the files in there. These projects want lists of
their old bugs to still be accessible, and have the lists on their
project pages, which will still list the old bugs.

Commands used:

for f in $(git grep -l '\[\[!tag projects/dandi\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/dandi/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/dandi/bugs-done; fi; fi; done
for f in $(git grep -l '\[\[!tag projects/repronim\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/repronim/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/repronim/bugs-done; fi; fi; done
for f in $(git grep -l '\[\[!tag projects/datalad\]\]'); do if grep -q 'done\]\]' "$f"; then git mv "$f" ../projects/datalad/bugs-done; g=$(echo "$f" | sed 's/.mdwn//'); if [ -d "$g" ]; then git mv "$g" ../projects/datalad/bugs-done; fi; fi; done

That assumes that bugs are not tagged by multiple projects at the same
time. Of the ones I moved, I've checked and none are.

Could do the same with todo/ but there are only 370 files in there, and
less than 84 of them could be moved this way, which does not seem likely
to produce a sizeable speedup.

Sponsored-by: Dartmouth College's Datalad project
2023-01-05 13:16:15 -04:00

50 lines
1.9 KiB
Markdown

When debugging some ssh-related datalad tests that hang with newer
git-annex versions, I noticed that there was a regression in the
treatment of annex-ssh-options in c8fec6ab0 (Fix a minor bug that
caused options provided with -c to be passed multiple times to git,
2020-03-16).
Here's a demo script. Pointing `SSHURL` to any ssh-accessible annex
repo should do. In the case below, the target is an annex repo with
one commit and no files in the working tree.
[[!format sh """
SSHURL="smaug:/home/kyle/scratch/repo"
cd "$(mktemp -d ${TMPDIR:-/tmp}/gx-ssh-opts-XXXXXXX)"
git clone "$SSHURL" ./ >/dev/null 2>&1
git annex init \
-c annex.sshcaching=false \
-c remote.origin.annex-ssh-options="-o ControlMaster=auto -S CACHE" \
--debug 2>&1 | grep 'read: ssh'
"""]]
With the parent of the above commit checked out (b166223d4), the
script outputs
```
[2020-06-30 11:09:43.853918422] read: ssh ["smaug","-o","ControlMaster=auto","-S","CACHE","-n","-T","git-annex-shell 'configlist' '/home/kyle/scratch/repo' '--debug'"]
```
With c8fec6ab0 checked out, it outputs
```
[2020-06-30 11:11:03.833678263] read: ssh ["smaug","-S",".git/annex/ssh/smaug","-o","ControlMaster=auto","-o","ControlPersist=yes","-n","-T","git-annex-shell 'configlist' '/home/kyle/scratch/repo' '--debug'"]
[2020-06-30 11:11:04.448046366] read: ssh ["-O","stop","-S","smaug","-o","ControlMaster=auto","-o","ControlPersist=yes","localhost"]
```
It looks like the options specified via
`remote.origin.annex-ssh-options` are dropped, and git-annex switches
to using its built-in ssh caching.
A recent commit on master (95b8b4a5a) shows the same behavior.
I've tried to work through the config-related handling and understand
why the condition from c8fec6ab0 results in the ssh options being
dropped, but I haven't made any progress yet.
[[!meta author=kyle]]
[[!tag projects/datalad]]
> [[fixed|done]] (also re-fixed the original bug in a better way)
> --[[Joey]]