281
281
builder.start_series()
282
282
self.addCleanup(builder.finish_series)
283
283
builder.build_snapshot([], [
284
('add', ('', 'root-id', 'directory', None)),
285
('add', ('a', 'a-id', 'file', 'content\n'))],
284
('add', ('', b'root-id', 'directory', None)),
285
('add', ('a', b'a-id', 'file', b'content\n'))],
286
286
revision_id=b'A')
287
builder.build_snapshot(['A'], [
288
('modify', ('a', 'new content\nfor a\n')),
289
('add', ('b', 'b-id', 'file', 'b-content\n'))],
287
builder.build_snapshot([b'A'], [
288
('modify', ('a', b'new content\nfor a\n')),
289
('add', ('b', b'b-id', 'file', b'b-content\n'))],
290
290
revision_id=b'B')
291
291
tree = self.make_workingtree('tree')
292
292
source_branch = builder.get_branch()
293
tree.branch.repository.fetch(source_branch.repository, 'B')
294
tree.pull(source_branch, stop_revision='A')
293
tree.branch.repository.fetch(source_branch.repository, b'B')
294
tree.pull(source_branch, stop_revision=b'A')
295
295
tree.lock_write()
296
296
self.addCleanup(tree.unlock)
297
297
state = tree.current_dirstate()
302
302
return orig_update(delta, new_revid)
303
303
state.update_basis_by_delta = log_update_basis_by_delta
304
304
basis = tree.basis_tree()
305
self.assertEqual('a-id', basis.path2id('a'))
305
self.assertEqual(b'a-id', basis.path2id('a'))
306
306
self.assertFalse(basis.is_versioned('b'))
307
307
def fail_set_parent_trees(trees, ghosts):
308
308
raise AssertionError('dirstate.set_parent_trees() was called')
309
309
state.set_parent_trees = fail_set_parent_trees
310
310
repo = tree.branch.repository
311
tree.pull(source_branch, stop_revision='B')
312
self.assertEqual(['B'], called)
311
tree.pull(source_branch, stop_revision=b'B')
312
self.assertEqual([b'B'], called)
313
313
basis = tree.basis_tree()
314
self.assertEqual('a-id', basis.path2id('a'))
315
self.assertEqual('b-id', basis.path2id('b'))
314
self.assertEqual(b'a-id', basis.path2id('a'))
315
self.assertEqual(b'b-id', basis.path2id('b'))
317
317
def test_set_parent_trees_handles_missing_basis(self):
318
318
builder = self.make_branch_builder('source')
319
319
builder.start_series()
320
320
self.addCleanup(builder.finish_series)
321
321
builder.build_snapshot([], [
322
('add', ('', 'root-id', 'directory', None)),
323
('add', ('a', 'a-id', 'file', 'content\n'))],
322
('add', ('', b'root-id', 'directory', None)),
323
('add', ('a', b'a-id', 'file', b'content\n'))],
324
324
revision_id=b'A')
325
builder.build_snapshot(['A'], [
326
('modify', ('a', 'new content\nfor a\n')),
327
('add', ('b', 'b-id', 'file', 'b-content\n'))],
325
builder.build_snapshot([b'A'], [
326
('modify', ('a', b'new content\nfor a\n')),
327
('add', ('b', b'b-id', 'file', b'b-content\n'))],
328
328
revision_id=b'B')
329
builder.build_snapshot(['A'], [
330
('add', ('c', 'c-id', 'file', 'c-content\n'))],
329
builder.build_snapshot([b'A'], [
330
('add', ('c', b'c-id', 'file', b'c-content\n'))],
331
331
revision_id=b'C')
332
332
b_c = self.make_branch('branch_with_c')
333
b_c.pull(builder.get_branch(), stop_revision='C')
333
b_c.pull(builder.get_branch(), stop_revision=b'C')
334
334
b_b = self.make_branch('branch_with_b')
335
b_b.pull(builder.get_branch(), stop_revision='B')
335
b_b.pull(builder.get_branch(), stop_revision=b'B')
336
336
# This is reproducing some of what 'switch' does, just to isolate the
337
337
# set_parent_trees() step.
338
338
wt = b_b.create_checkout('tree', lightweight=True)