summaryrefslogtreecommitdiffstats
path: root/git_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'git_config.py')
-rw-r--r--git_config.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/git_config.py b/git_config.py
index 8e3dfb1b..286e89ca 100644
--- a/git_config.py
+++ b/git_config.py
@@ -19,6 +19,8 @@ import re
19import subprocess 19import subprocess
20import sys 20import sys
21import time 21import time
22import urllib2
23
22from signal import SIGTERM 24from signal import SIGTERM
23from urllib2 import urlopen, HTTPError 25from urllib2 import urlopen, HTTPError
24from error import GitError, UploadError 26from error import GitError, UploadError
@@ -74,6 +76,14 @@ class GitConfig(object):
74 else: 76 else:
75 self._pickle = pickleFile 77 self._pickle = pickleFile
76 78
79 def ClearCache(self):
80 if os.path.exists(self._pickle):
81 os.remove(self._pickle)
82 self._cache_dict = None
83 self._section_dict = None
84 self._remotes = {}
85 self._branches = {}
86
77 def Has(self, name, include_defaults = True): 87 def Has(self, name, include_defaults = True):
78 """Return true if this configuration file has the key. 88 """Return true if this configuration file has the key.
79 """ 89 """
@@ -535,23 +545,25 @@ class Remote(object):
535 try: 545 try:
536 info = urlopen(u).read() 546 info = urlopen(u).read()
537 if info == 'NOT_AVAILABLE': 547 if info == 'NOT_AVAILABLE':
538 raise UploadError('Upload over ssh unavailable') 548 raise UploadError('%s: SSH disabled' % self.review)
539 if '<' in info: 549 if '<' in info:
540 # Assume the server gave us some sort of HTML 550 # Assume the server gave us some sort of HTML
541 # response back, like maybe a login page. 551 # response back, like maybe a login page.
542 # 552 #
543 raise UploadError('Cannot read %s:\n%s' % (u, info)) 553 raise UploadError('%s: Cannot parse response' % u)
544 554
545 self._review_protocol = 'ssh' 555 self._review_protocol = 'ssh'
546 self._review_host = info.split(" ")[0] 556 self._review_host = info.split(" ")[0]
547 self._review_port = info.split(" ")[1] 557 self._review_port = info.split(" ")[1]
558 except urllib2.URLError, e:
559 raise UploadError('%s: %s' % (self.review, e.reason[1]))
548 except HTTPError, e: 560 except HTTPError, e:
549 if e.code == 404: 561 if e.code == 404:
550 self._review_protocol = 'http-post' 562 self._review_protocol = 'http-post'
551 self._review_host = None 563 self._review_host = None
552 self._review_port = None 564 self._review_port = None
553 else: 565 else:
554 raise UploadError('Cannot guess Gerrit version') 566 raise UploadError('Upload over ssh unavailable')
555 567
556 REVIEW_CACHE[u] = ( 568 REVIEW_CACHE[u] = (
557 self._review_protocol, 569 self._review_protocol,