# HG changeset patch # User Marcin Kuzminski # Date 2016-09-15 11:39:19 # Node ID 64866b2d1160145c378fe51e1f15e86fa7e89127 # Parent 89d7d99838be196e5a78261b6ad48d0f4911f101 # Parent 0b6ca72aa8fc8b3ab744cc4c70faca204934aac5 release: Merge default into stable for release preparation diff --git a/.bumpversion.cfg b/.bumpversion.cfg --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 4.3.1 +current_version = 4.4.0 message = release: Bump version {current_version} to {new_version} [bumpversion:file:vcsserver/VERSION] diff --git a/.release.cfg b/.release.cfg --- a/.release.cfg +++ b/.release.cfg @@ -5,12 +5,10 @@ done = false done = true [task:fixes_on_stable] -done = true [task:pip2nix_generated] -done = true [release] -state = prepared -version = 4.3.1 +state = in_progress +version = 4.4.0 diff --git a/pkgs/python-packages.nix b/pkgs/python-packages.nix --- a/pkgs/python-packages.nix +++ b/pkgs/python-packages.nix @@ -299,7 +299,7 @@ }; }; rhodecode-vcsserver = super.buildPythonPackage { - name = "rhodecode-vcsserver-4.3.1"; + name = "rhodecode-vcsserver-4.4.0"; buildInputs = with self; [mock pytest WebTest]; doCheck = true; propagatedBuildInputs = with self; [configobj dulwich hgsubversion infrae.cache mercurial msgpack-python pyramid Pyro4 simplejson subprocess32 waitress WebOb]; diff --git a/vcsserver/VERSION b/vcsserver/VERSION --- a/vcsserver/VERSION +++ b/vcsserver/VERSION @@ -1,1 +1,1 @@ -4.3.1 \ No newline at end of file +4.4.0 \ No newline at end of file diff --git a/vcsserver/git.py b/vcsserver/git.py --- a/vcsserver/git.py +++ b/vcsserver/git.py @@ -429,28 +429,15 @@ class GitRemote(object): return list(getattr(obj, a) for a in attrs) @reraise_safe_exceptions - def get_refs(self, wire, keys=None): - # FIXME(skreft): this method is affected by bug - # http://bugs.rhodecode.com/issues/298. - # Basically, it will overwrite previously computed references if - # there's another one with the same name and given the order of - # repo.get_refs() is not guaranteed, the output of this method is not - # stable either. + def get_refs(self, wire): repo = self._factory.repo(wire) - refs = repo.get_refs() - if keys is None: - return refs - _refs = {} - for ref, sha in refs.iteritems(): - for k, type_ in keys: - if ref.startswith(k): - _key = ref[len(k):] - if type_ == 'T': - sha = repo.get_object(sha).id - _refs[_key] = [sha, type_] - break - return _refs + repo.refs._peeled_refs + result = {} + for ref, sha in repo.refs.as_dict().items(): + peeled_sha = repo.refs._peeled_refs.get(ref, sha) + result[ref] = peeled_sha + return result @reraise_safe_exceptions def get_refs_path(self, wire): diff --git a/vcsserver/hg.py b/vcsserver/hg.py --- a/vcsserver/hg.py +++ b/vcsserver/hg.py @@ -316,6 +316,7 @@ class HgRemote(object): @reraise_safe_exceptions def check_url(self, url, config): + log.info("Checking URL for remote cloning/import: %s", url) _proto = None if '+' in url[:url.find('://')]: _proto = url[0:url.find('+')] @@ -345,10 +346,12 @@ class HgRemote(object): req = urllib2.Request(cu, None, {}) try: + log.debug("Trying to open URL %s", url) resp = o.open(req) if resp.code != 200: raise exceptions.URLError('Return Code is not 200') except Exception as e: + log.warning("URL cannot be opened: %s", url, exc_info=True) # means it cannot be cloned raise exceptions.URLError("[%s] org_exc: %s" % (cleaned_uri, e)) @@ -358,12 +361,16 @@ class HgRemote(object): pass else: # check for pure hg repos + log.debug( + "Verifying if URL is a Mercurial repository: %s", url) httppeer(make_ui_from_config(config), url).lookup('tip') except Exception as e: + log.warning("URL is not a valid Mercurial repository: %s", url) raise exceptions.URLError( "url [%s] does not look like an hg repo org_exc: %s" % (cleaned_uri, e)) + log.info("URL is a valid Mercurial repository: %s", url) return True @reraise_safe_exceptions