Merge "Pylint and PEP8 fixes for color.py"
diff --git a/manifest_xml.py b/manifest_xml.py
index 890c954..8b57bf5 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -38,8 +38,9 @@
LOCAL_MANIFEST_NAME = 'local_manifest.xml'
LOCAL_MANIFESTS_DIR_NAME = 'local_manifests'
-urllib.parse.uses_relative.extend(['ssh', 'git'])
-urllib.parse.uses_netloc.extend(['ssh', 'git'])
+# urljoin gets confused if the scheme is not known.
+urllib.parse.uses_relative.extend(['ssh', 'git', 'persistent-https', 'rpc'])
+urllib.parse.uses_netloc.extend(['ssh', 'git', 'persistent-https', 'rpc'])
class _Default(object):
"""Project defaults within the manifest."""
@@ -85,21 +86,13 @@
# urljoin will gets confused over quite a few things. The ones we care
# about here are:
# * no scheme in the base url, like <hostname:port>
- # * persistent-https://
- # * rpc://
- # We handle this by replacing these with obscure protocols
- # and then replacing them with the original when we are done.
- # gopher -> <none>
- # wais -> persistent-https
- # nntp -> rpc
+ # We handle no scheme by replacing it with an obscure protocol, gopher
+ # and then replacing it with the original when we are done.
+
if manifestUrl.find(':') != manifestUrl.find('/') - 1:
- manifestUrl = 'gopher://' + manifestUrl
- manifestUrl = re.sub(r'^persistent-https://', 'wais://', manifestUrl)
- manifestUrl = re.sub(r'^rpc://', 'nntp://', manifestUrl)
- url = urllib.parse.urljoin(manifestUrl, url)
- url = re.sub(r'^gopher://', '', url)
- url = re.sub(r'^wais://', 'persistent-https://', url)
- url = re.sub(r'^nntp://', 'rpc://', url)
+ url = urllib.parse.urljoin('gopher://' + manifestUrl, url)[9:]
+ else:
+ url = urllib.parse.urljoin(manifestUrl, url)
return url
def ToRemoteSpec(self, projectName):
diff --git a/project.py b/project.py
index 1245fa2..e76d639 100644
--- a/project.py
+++ b/project.py
@@ -1326,6 +1326,8 @@
if not ID_RE.match(self.revisionExpr):
# in case of manifest sync the revisionExpr might be a SHA1
branch.merge = self.revisionExpr
+ if not branch.merge.startswith('refs/'):
+ branch.merge = R_HEADS + branch.merge
branch.Save()
if cnt_mine > 0 and self.rebase:
@@ -1394,6 +1396,8 @@
branch = self.GetBranch(name)
branch.remote = self.GetRemote(self.remote.name)
branch.merge = self.revisionExpr
+ if not branch.merge.startswith('refs/'):
+ branch.merge = R_HEADS + self.revisionExpr
revid = self.GetRevisionId(all_refs)
if head.startswith(R_HEADS):
@@ -1865,7 +1869,8 @@
shallowfetch = self.config.GetString('repo.shallowfetch')
if shallowfetch and shallowfetch != ' '.join(spec):
- GitCommand(self, ['fetch', '--unshallow', name] + shallowfetch.split(),
+ GitCommand(self, ['fetch', '--depth=2147483647', name]
+ + shallowfetch.split(),
bare=True, ssh_proxy=ssh_proxy).Wait()
if depth:
self.config.SetString('repo.shallowfetch', ' '.join(spec))
diff --git a/repo b/repo
index 960e76f..f12354a 100755
--- a/repo
+++ b/repo
@@ -20,7 +20,7 @@
# limitations under the License.
# increment this whenever we make important changes to this script
-VERSION = (1, 22)
+VERSION = (1, 21)
# increment this if the MAINTAINER_KEYS block is modified
KEYRING_VERSION = (1, 2)
@@ -102,7 +102,7 @@
"""
GIT = 'git' # our git command
-MIN_GIT_VERSION = (1, 8, 2) # minimum supported git version
+MIN_GIT_VERSION = (1, 7, 2) # minimum supported git version
repodir = '.repo' # name of repo's private directory
S_repo = 'repo' # special repo repository
S_manifests = 'manifests' # special manifest repository