summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-05-12 10:57:20 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-05-12 10:57:58 -0400
commit54af9a9eed26ebdaed1e442d3e9539c6532f5e53 (patch)
tree29573ad6c75b4131ee26bc0ea1054047308cdb88
parent5d750fd687f7d251e95804a8b54ffa7d935a5928 (diff)
break out bug report
-rw-r--r--doc/bugs/get_-J_cannot_be_used_with_password-based_authentication/comment_8_5da63cf5fa93120c85b98077fba51488._comment3
-rw-r--r--doc/bugs/minor_display_glitch_with_ssh_password_prompting_and_-J.mdwn45
2 files changed, 47 insertions, 1 deletions
diff --git a/doc/bugs/get_-J_cannot_be_used_with_password-based_authentication/comment_8_5da63cf5fa93120c85b98077fba51488._comment b/doc/bugs/get_-J_cannot_be_used_with_password-based_authentication/comment_8_5da63cf5fa93120c85b98077fba51488._comment
index 1de5890d7..8860bc536 100644
--- a/doc/bugs/get_-J_cannot_be_used_with_password-based_authentication/comment_8_5da63cf5fa93120c85b98077fba51488._comment
+++ b/doc/bugs/get_-J_cannot_be_used_with_password-based_authentication/comment_8_5da63cf5fa93120c85b98077fba51488._comment
@@ -6,5 +6,6 @@
Current status: It's implemented, but not for `GIT_SSH` yet.
The display is a bit ugly, because the ssh password prompt line
-confuses the concurrent-output region manager.
+confuses the concurrent-output region manager. Opened
+[[minor_display_glitch_with_ssh_password_prompting_and_-J]] bug for that.
"""]]
diff --git a/doc/bugs/minor_display_glitch_with_ssh_password_prompting_and_-J.mdwn b/doc/bugs/minor_display_glitch_with_ssh_password_prompting_and_-J.mdwn
new file mode 100644
index 000000000..b106e664d
--- /dev/null
+++ b/doc/bugs/minor_display_glitch_with_ssh_password_prompting_and_-J.mdwn
@@ -0,0 +1,45 @@
+When using -J and there's a ssh password prompt (or other prompt eg ssh
+host key), the region-based display gets messed up by the ssh output. This
+is a minor display glitch; it's still fairly clear what git-annex is doing.
+
+The root problem is that the regional display code does not know the
+absolute cursor position. All cursor movement is relative. So when ssh
+display moves the cursor, all subsequent output goes to the wrong place.
+
+ansi-terminal has absolute cursor movement, but no way to query position.
+
+Some approaches to fix it:
+
+1. Allocate a slave pty and run ssh in there, forwarding IO from the slave
+ pty to the master pty. The ssh output is then added to the region that
+ it's prompting for the password for.
+
+ Unix-specific and somewhat heavyweight solution.
+
+2. Set position to eg 0,0 when starting git-annex, and then the
+ absolute position can be calculated, and after ssh runs it can reset the
+ cursor to the previous position.
+
+ Would make -J take over the whole screen even if it's only transferring
+ 1 file.
+
+3. Clear all regions before running the ssh command that can prompt,
+ (moving the cursor to the start of the first region),
+ and redraw them when it's done. So the ssh output would appear above the
+ redrawn regions.
+
+ This would cause some flicker in the common case where ssh does not have
+ any output. The N regions would display briefly, then be cleared, then
+ be redrawn. It might flicker multiple times, when multiple different
+ hosts are being accessed.
+
+ One way to avoid the flicker would be to first
+ try to ssh with password prompting disabled, and only if that fails do
+ regions need to be cleared for the ssh that will prompt. Also, since
+ we then know ssh will prompt, we can display the hostname as context for
+ the "Password:" prompt it uses.
+
+4. Find a way to add cursor position querying to ansi-terminal. Can it be
+ done portably?
+
+--[[Joey]]