Merge lp:~jelmer/brz/hpss-ghost-rev-error into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/hpss-ghost-rev-error
Merge into: lp:brz
Diff against target: 80 lines (+26/-0)
5 files modified
breezy/bzr/remote.py (+2/-0)
breezy/bzr/smart/request.py (+2/-0)
breezy/tests/test_remote.py (+6/-0)
breezy/tests/test_smart.py (+11/-0)
breezy/tests/test_smart_request.py (+5/-0)
To merge this branch: bzr merge lp:~jelmer/brz/hpss-ghost-rev-error
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+346342@code.launchpad.net

Commit message

Handle GhostRevisionsHaveNoRevno in hpss.

Description of the change

Handle GhostRevisionsHaveNoRevno in hpss.

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Okay.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/bzr/remote.py'
2--- breezy/bzr/remote.py 2018-05-13 16:23:17 +0000
3+++ breezy/bzr/remote.py 2018-05-19 17:45:36 +0000
4@@ -4234,6 +4234,8 @@
5 lambda err, find, get_path: errors.UnresumableWriteGroup(
6 repository=find('repository'), write_groups=err.error_args[0],
7 reason=err.error_args[1]))
8+no_context_error_translators.register(b'GhostRevisionsHaveNoRevno',
9+ lambda err: errors.GhostRevisionsHaveNoRevno(*err.error_args))
10 no_context_error_translators.register(b'IncompatibleRepositories',
11 lambda err: errors.IncompatibleRepositories(
12 err.error_args[0].decode('utf-8'), err.error_args[1].decode('utf-8'), err.error_args[2].decode('utf-8')))
13
14=== modified file 'breezy/bzr/smart/request.py'
15--- breezy/bzr/smart/request.py 2018-05-13 02:18:13 +0000
16+++ breezy/bzr/smart/request.py 2018-05-19 17:45:36 +0000
17@@ -469,6 +469,8 @@
18 return (b'TokenMismatch', err.given_token, err.lock_token)
19 elif isinstance(err, errors.LockContention):
20 return (b'LockContention',)
21+ elif isinstance(err, errors.GhostRevisionsHaveNoRevno):
22+ return (b'GhostRevisionsHaveNoRevno', err.revision_id, err.ghost_revision_id)
23 elif isinstance(err, MemoryError):
24 # GZ 2011-02-24: Copy breezy.trace -Dmem_dump functionality here?
25 return (b'MemoryError',)
26
27=== modified file 'breezy/tests/test_remote.py'
28--- breezy/tests/test_remote.py 2018-05-13 02:45:58 +0000
29+++ breezy/tests/test_remote.py 2018-05-19 17:45:36 +0000
30@@ -3749,6 +3749,12 @@
31 "details here")
32 self.assertEqual(expected_error, translated_error)
33
34+ def test_GhostRevisionsHaveNoRevno(self):
35+ translated_error = self.translateTuple((b'GhostRevisionsHaveNoRevno',
36+ b"revid1", b"revid2"))
37+ expected_error = errors.GhostRevisionsHaveNoRevno(b"revid1", b"revid2")
38+ self.assertEqual(expected_error, translated_error)
39+
40 def test_PermissionDenied_no_args(self):
41 path = 'a path'
42 translated_error = self.translateTuple((b'PermissionDenied',),
43
44=== modified file 'breezy/tests/test_smart.py'
45--- breezy/tests/test_smart.py 2018-05-13 02:18:13 +0000
46+++ breezy/tests/test_smart.py 2018-05-19 17:45:36 +0000
47@@ -853,6 +853,17 @@
48 self.assertEqual(smart_req.SmartServerResponse((b'ok', b'0', b'null:')),
49 request.execute(b''))
50
51+ def test_ghost(self):
52+ """For an empty branch, the result is ('ok', '0', 'null:')."""
53+ backing = self.get_transport()
54+ request = smart_branch.SmartServerBranchRequestLastRevisionInfo(backing)
55+ branch = self.make_branch('.')
56+ def last_revision_info():
57+ raise errors.GhostRevisionsHaveNoRevno('revid1', 'revid2')
58+ self.overrideAttr(branch, 'last_revision_info', last_revision_info)
59+ self.assertRaises(errors.GhostRevisionsHaveNoRevno,
60+ request.do_with_branch, branch)
61+
62 def test_not_empty(self):
63 """For a non-empty branch, the result is ('ok', 'revno', 'revid')."""
64 backing = self.get_transport()
65
66=== modified file 'breezy/tests/test_smart_request.py'
67--- breezy/tests/test_smart_request.py 2018-05-13 02:45:58 +0000
68+++ breezy/tests/test_smart_request.py 2018-05-19 17:45:36 +0000
69@@ -208,6 +208,11 @@
70 def test_MemoryError(self):
71 self.assertTranslationEqual((b"MemoryError",), MemoryError())
72
73+ def test_GhostRevisionsHaveNoRevno(self):
74+ self.assertTranslationEqual(
75+ (b"GhostRevisionsHaveNoRevno", b'revid1', b'revid2'),
76+ errors.GhostRevisionsHaveNoRevno(b'revid1', b'revid2'))
77+
78 def test_generic_Exception(self):
79 self.assertTranslationEqual((b'error', b'Exception', b""),
80 Exception())

Subscribers

People subscribed via source and target branches