# Bazaar revision bundle v0.8 # # message: # Validate log output after merge to empty tree # committer: Henry Ludemann # date: Sat 2007-01-27 09:55:35.605999947 +0000 === modified file bzrlib/tests/blackbox/test_merge.py --- bzrlib/tests/blackbox/test_merge.py +++ bzrlib/tests/blackbox/test_merge.py @@ -269,3 +269,47 @@ self.assertContainsRe(err, '1 revision\\(s\\) pulled') tree_a = WorkingTree.open('.') self.assertEqual([self.id2], tree_a.get_parent_ids()) + + def test_merge_to_empty_tree(self): + # While this is a corner case, it can happend when automatically converting sub-directories + # of a module from another source control system. + # + # eg: + # sub-directory we are interested in was created on a branch, so on the mainline + # we have no revisions when branching (and so none when merging back) + from bzrlib.branch import Branch + + os.mkdir('integration') + os.chdir('integration') + self.runbzr('init') + os.chdir('..') + + self.runbzr('branch integration some_branch') + + os.chdir('some_branch') + file('hello', 'w').write('foo') + self.runbzr('add hello') + a = WorkingTree.open('.') + a_tip = a.commit("some change on the branch") + some_branch = Branch.open('.') + self.assertEqual(1, len(some_branch.revision_history())) + os.chdir('..') + + os.chdir('integration') + self.runbzr('merge ../some_branch') + integ = Branch.open('.') + self.assertEquals(WorkingTree.open('.').get_parent_ids(), [some_branch.last_revision()]) + self.runbzr(['commit', '-m', "Merge from some_branch"]) + + # Now we need to validate the revision history... + integ = Branch.open('.') + self.assertEqual(1, len(integ.revision_history())) + + # Do a quick check of the log output, and make sure we only have + # a single revision (that is merged from another revision). + full_log = self.runbzr("log")[0] + self.assertTrue('revno: 1\n' in full_log) + self.assertTrue('revno: 2\n' not in full_log) + self.assertTrue(' branch nick: some_branch' in full_log) + self.assertTrue(' message:' in full_log) + self.assertTrue(' some change on the branch' in full_log) === modified directory // last-changed:henry@munchkin-20070127095535-ot6q1cwzo ... 00g1tfn # revision id: henry@munchkin-20070127095535-ot6q1cwzo00g1tfn # sha1: 400cb380c5f182b792afaf691f6d6afe50de5898 # inventory sha1: 782f33fd7a5849cc6ccf2a116e9d5b3fba268ebd # parent ids: # henry@munchkin-20070127085317-uuoi64kcxxx0e17i # base id: henry@munchkin-20070126212700-s0epw3jkswszmu17 # properties: # branch-nick: bzr.dev # message: # Test merging to an empty tree # committer: Henry Ludemann # date: Sat 2007-01-27 08:53:17.355000019 +0000 === modified file bzrlib/tests/blackbox/test_merge.py // encoding:base64 LS0tIGJ6cmxpYi90ZXN0cy9ibGFja2JveC90ZXN0X21lcmdlLnB5CisrKyBienJsaWIvdGVzdHMv YmxhY2tib3gvdGVzdF9tZXJnZS5weQpAQCAtMjY5LDMgKzI2OSwzOSBAQAogICAgICAgICBzZWxm LmFzc2VydENvbnRhaW5zUmUoZXJyLCAnMSByZXZpc2lvblxcKHNcXCkgcHVsbGVkJykKICAgICAg ICAgdHJlZV9hID0gV29ya2luZ1RyZWUub3BlbignLicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoW3NlbGYuaWQyXSwgdHJlZV9hLmdldF9wYXJlbnRfaWRzKCkpCisKKyAgICBkZWYgdGVzdF9t ZXJnZV90b19lbXB0eV90cmVlKHNlbGYpOgorICAgICAgICAjIFdoaWxlIHRoaXMgaXMgYSBjb3Ju ZXIgY2FzZSwgaXQgY2FuIGhhcHBlbmQgd2hlbiBhdXRvbWF0aWNhbGx5IGNvbnZlcnRpbmcgc3Vi LWRpcmVjdG9yaWVzCisgICAgICAgICMgb2YgYSBtb2R1bGUgZnJvbSBhbm90aGVyIHNvdXJjZSBj b250cm9sIHN5c3RlbS4KKyAgICAgICAgIworICAgICAgICAjIGVnOgorICAgICAgICAjIHN1Yi1k aXJlY3Rvcnkgd2UgYXJlIGludGVyZXN0ZWQgaW4gd2FzIGNyZWF0ZWQgb24gYSBicmFuY2gsIHNv IG9uIHRoZSBtYWlubGluZQorICAgICAgICAjIHdlIGhhdmUgbm8gcmV2aXNpb25zIHdoZW4gYnJh bmNoaW5nIChhbmQgc28gbm9uZSB3aGVuIG1lcmdpbmcgYmFjaykKKyAgICAgICAgZnJvbSBienJs aWIuYnJhbmNoIGltcG9ydCBCcmFuY2gKKyAgICAgICAgCisgICAgICAgIG9zLm1rZGlyKCdpbnRl Z3JhdGlvbicpCisgICAgICAgIG9zLmNoZGlyKCdpbnRlZ3JhdGlvbicpCisgICAgICAgIHNlbGYu cnVuYnpyKCdpbml0JykKKyAgICAgICAgb3MuY2hkaXIoJy4uJykKKworICAgICAgICBzZWxmLnJ1 bmJ6cignYnJhbmNoIGludGVncmF0aW9uIHNvbWVfYnJhbmNoJykKKworICAgICAgICBvcy5jaGRp cignc29tZV9icmFuY2gnKQorICAgICAgICBmaWxlKCdoZWxsbycsICd3Jykud3JpdGUoJ2Zvbycp CisgICAgICAgIHNlbGYucnVuYnpyKCdhZGQgaGVsbG8nKQorICAgICAgICBhID0gV29ya2luZ1Ry ZWUub3BlbignLicpCisgICAgICAgIGFfdGlwID0gYS5jb21taXQoInNvbWUgY2hhbmdlIikKKyAg ICAgICAgc29tZV9icmFuY2ggPSBCcmFuY2gub3BlbignLicpCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoMSwgbGVuKHNvbWVfYnJhbmNoLnJldmlzaW9uX2hpc3RvcnkoKSkpCisgICAgICAgIG9z LmNoZGlyKCcuLicpCisKKyAgICAgICAgb3MuY2hkaXIoJ2ludGVncmF0aW9uJykKKyAgICAgICAg c2VsZi5ydW5ienIoJ21lcmdlIC4uL3NvbWVfYnJhbmNoJykKKyAgICAgICAgaW50ZWcgPSBCcmFu Y2gub3BlbignLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFdvcmtpbmdUcmVlLm9wZW4o Jy4nKS5nZXRfcGFyZW50X2lkcygpLCBbc29tZV9icmFuY2gubGFzdF9yZXZpc2lvbigpXSkKKyAg ICAgICAgc2VsZi5ydW5ienIoWydjb21taXQnLCAgJy1tJywgICJNZXJnZSBmcm9tIHNvbWVfYnJh bmNoIl0pCisKKyAgICAgICAgIyBOb3cgd2UgbmVlZCB0byB2YWxpZGF0ZSB0aGUgcmV2aXNpb24g aGlzdG9yeS4uLgorICAgICAgICBpbnRlZyA9IEJyYW5jaC5vcGVuKCcuJykKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbCgxLCBsZW4oaW50ZWcucmV2aXNpb25faGlzdG9yeSgpKSkKKwoK === modified directory // last-changed:henry@munchkin-20070127085317-uuoi64kcx ... xx0e17i # revision id: henry@munchkin-20070127085317-uuoi64kcxxx0e17i # sha1: 3de600352c5240f68fb3fc11308069eef36738df # inventory sha1: 369e53e3764c15e1e010f7bf39fd821dac5b5540 # parent ids: # henry@munchkin-20070126212700-s0epw3jkswszmu17 # properties: # branch-nick: bzr.dev