diff --git a/svn_mirror/mirror.py b/svn_mirror/mirror.py index c2d567e..dfcee7f 100644 --- a/svn_mirror/mirror.py +++ b/svn_mirror/mirror.py @@ -232,13 +232,16 @@ class Mirror: text=True, ) + # git svn prompts for password on stderr (no newline) and reads from + # stdin. Write password immediately so it's buffered for the prompt. + if password: + process.stdin.write(password + "\n") + process.stdin.flush() + for line in process.stdout or []: line = line.rstrip() if line: logger.info("[git svn] %s", line) - if "Password for" in line and password: - process.stdin.write(password + "\n") - process.stdin.flush() ret = process.wait() if ret != 0: