diff options
Diffstat (limited to 'subcmds')
| -rw-r--r-- | subcmds/sync.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py index ec5ada21..55ffca3e 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
| @@ -18,6 +18,7 @@ import os | |||
| 18 | import re | 18 | import re |
| 19 | import subprocess | 19 | import subprocess |
| 20 | import sys | 20 | import sys |
| 21 | import time | ||
| 21 | 22 | ||
| 22 | from git_command import GIT | 23 | from git_command import GIT |
| 23 | from project import HEAD | 24 | from project import HEAD |
| @@ -72,7 +73,7 @@ revision is temporarily needed. | |||
| 72 | dest='repo_upgraded', action='store_true', | 73 | dest='repo_upgraded', action='store_true', |
| 73 | help=SUPPRESS_HELP) | 74 | help=SUPPRESS_HELP) |
| 74 | 75 | ||
| 75 | def _Fetch(self, *projects): | 76 | def _Fetch(self, projects): |
| 76 | fetched = set() | 77 | fetched = set() |
| 77 | pm = Progress('Fetching projects', len(projects)) | 78 | pm = Progress('Fetching projects', len(projects)) |
| 78 | for project in projects: | 79 | for project in projects: |
| @@ -106,7 +107,14 @@ revision is temporarily needed. | |||
| 106 | all = self.GetProjects(args, missing_ok=True) | 107 | all = self.GetProjects(args, missing_ok=True) |
| 107 | 108 | ||
| 108 | if not opt.local_only: | 109 | if not opt.local_only: |
| 109 | fetched = self._Fetch(rp, mp, *all) | 110 | to_fetch = [] |
| 111 | now = time.time() | ||
| 112 | if (24 * 60 * 60) <= (now - rp.LastFetch): | ||
| 113 | to_fetch.append(rp) | ||
| 114 | to_fetch.append(mp) | ||
| 115 | to_fetch.extend(all) | ||
| 116 | |||
| 117 | fetched = self._Fetch(to_fetch) | ||
| 110 | _PostRepoFetch(rp, opt.no_repo_verify) | 118 | _PostRepoFetch(rp, opt.no_repo_verify) |
| 111 | if opt.network_only: | 119 | if opt.network_only: |
| 112 | # bail out now; the rest touches the working tree | 120 | # bail out now; the rest touches the working tree |
| @@ -124,7 +132,7 @@ revision is temporarily needed. | |||
| 124 | for project in all: | 132 | for project in all: |
| 125 | if project.gitdir not in fetched: | 133 | if project.gitdir not in fetched: |
| 126 | missing.append(project) | 134 | missing.append(project) |
| 127 | self._Fetch(*missing) | 135 | self._Fetch(missing) |
| 128 | 136 | ||
| 129 | syncbuf = SyncBuffer(mp.config, | 137 | syncbuf = SyncBuffer(mp.config, |
| 130 | detach_head = opt.detach_head) | 138 | detach_head = opt.detach_head) |
