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>
This commit is contained in:
Shawn O. Pearce
2009-04-10 18:53:46 -07:00
parent 8bd5e60b16
commit fb2316146f
5 changed files with 122 additions and 3 deletions

View File

@ -28,6 +28,7 @@ import re
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 @@ def _Main(argv):
repo = _Repo(opt.repodir)
try:
repo._Run(argv)
try:
repo._Run(argv)
finally:
close_ssh()
except KeyboardInterrupt:
sys.exit(1)
except RepoChangedException, rce: