Automatically use SSH control master support during sync
By creating a background ssh "control master" process which lives
for the duration of our sync cycle we can easily cut the time for
a no-op sync of 132 projects from 60s to 18s.
Bug: REPO-11
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/main.py b/main.py
index 6fa1e51..774b903 100755
--- a/main.py
+++ b/main.py
@@ -28,6 +28,7 @@
import sys
from trace import SetTrace
+from git_config import close_ssh
from command import InteractiveCommand
from command import MirrorSafeCommand
from command import PagedCommand
@@ -212,7 +213,10 @@
repo = _Repo(opt.repodir)
try:
- repo._Run(argv)
+ try:
+ repo._Run(argv)
+ finally:
+ close_ssh()
except KeyboardInterrupt:
sys.exit(1)
except RepoChangedException, rce: