Merge lp:~jelmer/brz/git-unexpected-http-response into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: 7728
Merged at revision: 7670
Proposed branch: lp:~jelmer/brz/git-unexpected-http-response
Merge into: lp:brz
Diff against target: 69 lines (+23/-0)
3 files modified
breezy/git/remote.py (+5/-0)
breezy/git/tests/test_remote.py (+13/-0)
breezy/repository.py (+5/-0)
To merge this branch: bzr merge lp:~jelmer/brz/git-unexpected-http-response
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+433058@code.launchpad.net

Commit message

Handle http unexpected errors from git

Description of the change

Handle http unexpected errors from git

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve
Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :
Download full text (13.6 KiB)

The attempt to merge lp:~jelmer/brz/git-unexpected-http-response into lp:brz failed. Command exited with 142.
Below is the output from the failed tests.

Collecting setuptools-gettext
  Downloading setuptools_gettext-0.1.1-py3-none-any.whl (10 kB)
Requirement already satisfied: setuptools>=46.1 in ./lib/python3.10/site-packages (from setuptools-gettext) (65.5.0)
Installing collected packages: setuptools-gettext
Successfully installed setuptools-gettext-0.1.1
Obtaining file:///tmp/tarmac/branch.g1er185z
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Checking if build backend supports build_editable: started
  Checking if build backend supports build_editable: finished with status 'done'
  Getting requirements to build editable: started
  Getting requirements to build editable: finished with status 'done'
  Preparing editable metadata (pyproject.toml): started
  Preparing editable metadata (pyproject.toml): finished with status 'done'
Requirement already satisfied: dulwich>=0.20.46 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.20.50)
Requirement already satisfied: urllib3>=1.24.1 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.26.12)
Requirement already satisfied: merge3 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.0.8)
Requirement already satisfied: patiencediff in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.2.3)
Requirement already satisfied: pyyaml in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (6.0)
Requirement already satisfied: configobj in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (5.0.6)
Requirement already satisfied: fastbencode in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.0.12)
Requirement already satisfied: gpg in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.18.0)
Collecting testtools
  Downloading testtools-2.5.0-py3-none-any.whl (181 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 182.0/182.0 kB 1.8 MB/s eta 0:00:00
Collecting python-subunit
  Downloading python_subunit-1.4.1-py3-none-any.whl (106 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.7/106.7 kB 1.8 MB/s eta 0:00:00
Requirement already satisfied: paramiko in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (2.10.4)
Collecting sphinx-epytext
  Downloading sphinx-epytext-0.0.4.tar.gz (3.6 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: setuptools in ./lib/python3.10/site-packages (from breezy==3.3.1.dev0) (65.5.0)
Collecting sphinx
  Downloading sphinx-5.3.0-py3-none-any.whl (3.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 1.0 MB/s eta 0:00:00
Requirement already satisfied: launchpadlib>=1.6.3 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.10.17)
Collecting fastimport
  Downloading fastimport-0.9.14.tar.gz (41 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.8/41.8 kB 1.1 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: httplib2 in /usr/lib/python3/dist-pac...

Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :
Download full text (13.2 KiB)

The attempt to merge lp:~jelmer/brz/git-unexpected-http-response into lp:brz failed. Command exited with 142.
Below is the output from the failed tests.

Collecting setuptools-gettext
  Using cached setuptools_gettext-0.1.1-py3-none-any.whl (10 kB)
Requirement already satisfied: setuptools>=46.1 in ./lib/python3.10/site-packages (from setuptools-gettext) (65.5.0)
Installing collected packages: setuptools-gettext
Successfully installed setuptools-gettext-0.1.1
Obtaining file:///tmp/tarmac/branch.8i2hf_c2
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Checking if build backend supports build_editable: started
  Checking if build backend supports build_editable: finished with status 'done'
  Getting requirements to build editable: started
  Getting requirements to build editable: finished with status 'done'
  Preparing editable metadata (pyproject.toml): started
  Preparing editable metadata (pyproject.toml): finished with status 'done'
Requirement already satisfied: pyyaml in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (6.0)
Requirement already satisfied: dulwich>=0.20.46 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.20.50)
Requirement already satisfied: fastbencode in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.0.12)
Requirement already satisfied: configobj in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (5.0.6)
Requirement already satisfied: urllib3>=1.24.1 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.26.12)
Requirement already satisfied: merge3 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.0.8)
Requirement already satisfied: patiencediff in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (0.2.3)
Collecting fastimport
  Using cached fastimport-0.9.14.tar.gz (41 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: launchpadlib>=1.6.3 in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.10.17)
Collecting testtools
  Using cached testtools-2.5.0-py3-none-any.whl (181 kB)
Collecting python-subunit
  Using cached python_subunit-1.4.1-py3-none-any.whl (106 kB)
Collecting sphinx-epytext
  Using cached sphinx-epytext-0.0.4.tar.gz (3.6 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: setuptools in ./lib/python3.10/site-packages (from breezy==3.3.1.dev0) (65.5.0)
Collecting sphinx
  Using cached sphinx-5.3.0-py3-none-any.whl (3.2 MB)
Requirement already satisfied: gpg in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (1.18.0)
Requirement already satisfied: paramiko in /usr/lib/python3/dist-packages (from breezy==3.3.1.dev0) (2.10.4)
Requirement already satisfied: httplib2 in /usr/lib/python3/dist-packages (from launchpadlib>=1.6.3->breezy==3.3.1.dev0) (0.20.4)
Collecting keyring
  Using cached keyring-23.11.0-py3-none-any.whl (36 kB)
Requirement already satisfied: lazr.restfulclient>=0.9.19 in /usr/lib/python3/dist-packages (from launchpadlib>=1.6.3->breezy==3.3.1.dev0) (0.14.5)
Requirement already satisfied...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'breezy/git/remote.py'
--- breezy/git/remote.py 2022-10-28 18:05:19 +0000
+++ breezy/git/remote.py 2022-11-15 16:32:03 +0000
@@ -48,6 +48,7 @@
48 NotLocalUrl,48 NotLocalUrl,
49 PermissionDenied,49 PermissionDenied,
50 TransportError,50 TransportError,
51 UnexpectedHttpStatus,
51 UninitializableFormat,52 UninitializableFormat,
52 )53 )
53from ..revision import NULL_REVISION54from ..revision import NULL_REVISION
@@ -229,6 +230,10 @@
229 return ConnectionReset(message)230 return ConnectionReset(message)
230 if message == 'The remote server unexpectedly closed the connection.':231 if message == 'The remote server unexpectedly closed the connection.':
231 return TransportError(message)232 return TransportError(message)
233 m = re.match(r'unexpected http resp ([0-9]+) for (.*)', message)
234 if m:
235 # TODO(jelmer): Have dulwich raise an exception and look at that instead?
236 return UnexpectedHttpStatus(path=m.group(2), code=int(m.group(1)), extra=message)
232 if message == 'protected branch hook declined':237 if message == 'protected branch hook declined':
233 return ProtectedBranchHookDeclined(msg=message)238 return ProtectedBranchHookDeclined(msg=message)
234 # Don't know, just return it to the user as-is239 # Don't know, just return it to the user as-is
235240
=== modified file 'breezy/git/tests/test_remote.py'
--- breezy/git/tests/test_remote.py 2022-11-13 18:35:58 +0000
+++ breezy/git/tests/test_remote.py 2022-11-15 16:32:03 +0000
@@ -31,6 +31,7 @@
31 NoSuchTag,31 NoSuchTag,
32 PermissionDenied,32 PermissionDenied,
33 TransportError,33 TransportError,
34 UnexpectedHttpStatus,
34 )35 )
3536
36from ...tests import (37from ...tests import (
@@ -202,6 +203,18 @@
202 RemoteGitError(203 RemoteGitError(
203 '[Errno 104] Connection reset by peer')))204 '[Errno 104] Connection reset by peer')))
204205
206 def test_http_unexpected(self):
207 self.assertEqual(
208 UnexpectedHttpStatus(
209 'https://example.com/bigint.git/git-upload-pack',
210 403, extra=('unexpected http resp 403 for '
211 'https://example.com/bigint.git/git-upload-pack')),
212 parse_git_error(
213 'url',
214 RemoteGitError(
215 'unexpected http resp 403 for '
216 'https://example.com/bigint.git/git-upload-pack')))
217
205218
206class ParseHangupTests(TestCase):219class ParseHangupTests(TestCase):
207220
208221
=== modified file 'breezy/repository.py'
--- breezy/repository.py 2022-11-13 20:26:24 +0000
+++ breezy/repository.py 2022-11-15 16:32:03 +0000
@@ -1627,6 +1627,11 @@
1627 if source.supports_rich_root() != target.supports_rich_root():1627 if source.supports_rich_root() != target.supports_rich_root():
1628 raise errors.IncompatibleRepositories(source, target,1628 raise errors.IncompatibleRepositories(source, target,
1629 "different rich-root support")1629 "different rich-root support")
1630 if not hasattr(source, '_serializer') or not hasattr(target, '_serializer'):
1631 if source != target:
1632 raise errors.IncompatibleRepositories(source, target, "different formats")
1633 return
1634
1630 if source._serializer != target._serializer:1635 if source._serializer != target._serializer:
1631 raise errors.IncompatibleRepositories(source, target,1636 raise errors.IncompatibleRepositories(source, target,
1632 "different serializers")1637 "different serializers")

Subscribers

People subscribed via source and target branches