Mercurial > hg
view tests/test-convert-bzr-merges.t @ 39270:37e56607cbb9
lfs: add a progress bar when searching for blobs to upload
The search itself can take an extreme amount of time if there are a lot of
revisions involved. I've got a local repo that took 6 minutes to push 1850
commits, and 60% of that time was spent here (there are ~70K files):
\ 58.1% wrapper.py: extractpointers line 297: pointers = extractpointers(...
| 57.7% wrapper.py: pointersfromctx line 352: for p in pointersfromctx(ct...
| 57.4% wrapper.py: pointerfromctx line 397: p = pointerfromctx(ctx, f, ...
\ 38.7% context.py: __contains__ line 368: if f not in ctx:
| 38.7% util.py: __get__ line 82: return key in self._manifest
| 38.7% context.py: _manifest line 1416: result = self.func(obj)
| 38.7% manifest.py: read line 472: return self._manifestctx.re...
\ 25.6% revlog.py: revision line 1562: text = rl.revision(self._node)
\ 12.8% revlog.py: _chunks line 2217: bins = self._chunks(chain, ...
| 12.0% revlog.py: decompressline 2112: ladd(decomp(buffer(data, ch...
\ 7.8% revlog.py: checkhash line 2232: self.checkhash(text, node, ...
| 7.8% revlog.py: hash line 2315: if node != self.hash(text, ...
| 7.8% revlog.py: hash line 2242: return hash(text, p1, p2)
\ 12.0% manifest.py: __init__ line 1565: self._data = manifestdict(t...
\ 16.8% context.py: filenode line 378: if not _islfs(fctx.filelog(...
| 15.7% util.py: __get__ line 706: return self._filelog
| 14.8% context.py: _filelog line 1416: result = self.func(obj)
| 14.8% localrepo.py: file line 629: return self._repo.file(self...
| 14.8% filelog.py: __init__ line 1134: return filelog.filelog(self...
| 14.5% revlog.py: __init__ line 24: censorable=True)
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 24 Aug 2018 17:45:46 -0400 |
parents | 5e52b6da9c0c |
children | 0c72eddb4be5 |
line wrap: on
line source
#require bzr N.B. bzr 1.13 has a bug that breaks this test. If you see this test fail, check your bzr version. Upgrading to bzr 1.13.1 should fix it. $ . "$TESTDIR/bzr-definitions" test multiple merges at once $ mkdir test-multimerge $ cd test-multimerge $ bzr init -q source $ cd source $ echo content > file $ echo text > rename_me $ bzr add -q file rename_me $ bzr commit -q -m 'Initial add' '--commit-time=2009-10-10 08:00:00 +0100' $ cd .. $ bzr branch -q source source-branch1 $ cd source-branch1 $ echo morecontent >> file $ echo evenmorecontent > file-branch1 $ bzr add -q file-branch1 $ bzr commit -q -m 'Added branch1 file' '--commit-time=2009-10-10 08:00:01 +0100' $ cd ../source $ sleep 1 $ echo content > file-parent $ bzr add -q file-parent $ bzr commit -q -m 'Added parent file' '--commit-time=2009-10-10 08:00:02 +0100' $ cd .. $ bzr branch -q source source-branch2 $ cd source-branch2 $ echo somecontent > file-branch2 $ bzr add -q file-branch2 $ bzr mv -q rename_me renamed $ echo change > renamed $ bzr commit -q -m 'Added brach2 file' '--commit-time=2009-10-10 08:00:03 +0100' $ sleep 1 $ cd ../source $ bzr merge -q ../source-branch1 $ bzr merge -q --force ../source-branch2 $ bzr commit -q -m 'Merged branches' '--commit-time=2009-10-10 08:00:04 +0100' $ cd .. BUG: file-branch2 should not be added in rev 4, and the rename_me -> renamed move should be recorded in the fixup merge. $ hg convert --datesort --config convert.bzr.saverev=False source source-hg initializing destination source-hg repository scanning source... sorting... converting... 4 Initial add 3 Added branch1 file 2 Added parent file 1 Added brach2 file 0 Merged branches warning: can't find ancestor for 'renamed' copied from 'rename_me'! $ glog -R source-hg o 5@source "(octopus merge fixup)" files+: [], files-: [], files: [renamed] |\ | o 4@source "Merged branches" files+: [file-branch1 file-branch2 renamed], files-: [rename_me], files: [file] | |\ o---+ 3@source-branch2 "Added brach2 file" files+: [file-branch2 renamed], files-: [rename_me], files: [] / / | o 2@source "Added parent file" files+: [file-parent], files-: [], files: [] | | o | 1@source-branch1 "Added branch1 file" files+: [file-branch1], files-: [], files: [file] |/ o 0@source "Initial add" files+: [file rename_me], files-: [], files: [] $ manifest source-hg tip % manifest of tip 644 file 644 file-branch1 644 file-branch2 644 file-parent 644 renamed $ hg convert source-hg hg2hg initializing destination hg2hg repository scanning source... sorting... converting... 5 Initial add 4 Added branch1 file 3 Added parent file 2 Added brach2 file 1 Merged branches 0 (octopus merge fixup) BUG: The manifest entries should be the same for matching revisions, and nothing should be outgoing $ hg -R source-hg manifest --debug -r tip | grep renamed 67109fdebf6c556eb0a9d5696dd98c8420520405 644 renamed $ hg -R hg2hg manifest --debug -r tip | grep renamed 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed $ hg -R source-hg manifest --debug -r 'tip^' | grep renamed 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed $ hg -R hg2hg manifest --debug -r 'tip^' | grep renamed 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed BUG: The revisions found should be the same in both repos $ hg --cwd source-hg log -r 'file("renamed")' -G -Tcompact o 5[tip]:4,3 6652429c300a 2009-10-10 08:00 +0100 foo |\ (octopus merge fixup) | | | o 4:2,1 e0ae8af3503a 2009-10-10 08:00 +0100 foo | |\ Merged branches | ~ ~ o 3 138bed2e14be 2009-10-10 08:00 +0100 foo | Added brach2 file ~ $ hg --cwd hg2hg log -r 'file("renamed")' -G -Tcompact o 4:2,1 e0ae8af3503a 2009-10-10 08:00 +0100 foo |\ Merged branches ~ ~ o 3 138bed2e14be 2009-10-10 08:00 +0100 foo | Added brach2 file ~ BUG(?): The move seems to be recorded in rev 4, so it should probably show up there. It's not recorded as a move in rev 5, even in source-hg. $ hg -R source-hg up -q tip $ hg -R hg2hg up -q tip $ hg --cwd source-hg log -r 'follow("renamed")' -G -Tcompact @ 5[tip]:4,3 6652429c300a 2009-10-10 08:00 +0100 foo |\ (octopus merge fixup) | : o : 3 138bed2e14be 2009-10-10 08:00 +0100 foo :/ Added brach2 file : o 0 18b86f5df51b 2009-10-10 08:00 +0100 foo Initial add $ hg --cwd hg2hg log -r 'follow("renamed")' -G -Tcompact o 3 138bed2e14be 2009-10-10 08:00 +0100 foo : Added brach2 file : o 0 18b86f5df51b 2009-10-10 08:00 +0100 foo Initial add $ hg -R hg2hg out source-hg -T compact comparing with source-hg searching for changes 5[tip]:4,3 3be2299ccd31 2009-10-10 08:00 +0100 foo (octopus merge fixup) $ glog -R hg2hg @ 5@source "(octopus merge fixup)" files+: [], files-: [], files: [] |\ | o 4@source "Merged branches" files+: [file-branch1 file-branch2 renamed], files-: [rename_me], files: [file] | |\ o---+ 3@source-branch2 "Added brach2 file" files+: [file-branch2 renamed], files-: [rename_me], files: [] / / | o 2@source "Added parent file" files+: [file-parent], files-: [], files: [] | | o | 1@source-branch1 "Added branch1 file" files+: [file-branch1], files-: [], files: [file] |/ o 0@source "Initial add" files+: [file rename_me], files-: [], files: [] $ hg -R source-hg log --debug -r tip changeset: 5:6652429c300ab66fdeaf2e730945676a00b53231 branch: source tag: tip phase: draft parent: 4:e0ae8af3503af9bbffb0b29268a02744cc61a561 parent: 3:138bed2e14be415a2692b02e41405b2864f758b4 manifest: 5:1eabd5f5d4b985784cf2c45c717ff053eca14b0d user: Foo Bar <foo.bar@example.com> date: Sat Oct 10 08:00:04 2009 +0100 files: renamed extra: branch=source description: (octopus merge fixup) $ hg -R hg2hg log --debug -r tip changeset: 5:3be2299ccd315ff9aab2b49bdb0d14e3244435e8 branch: source tag: tip phase: draft parent: 4:e0ae8af3503af9bbffb0b29268a02744cc61a561 parent: 3:138bed2e14be415a2692b02e41405b2864f758b4 manifest: 4:3ece3c7f2cc6df15b3cbbf3273c69869fc7c3ab0 user: Foo Bar <foo.bar@example.com> date: Sat Oct 10 08:00:04 2009 +0100 extra: branch=source description: (octopus merge fixup) $ hg -R source-hg manifest --debug -r tip cdf31ed9242b209cd94697112160e2c5b37a667d 644 file 5108144f585149b29779d7c7e51d61dd22303ffe 644 file-branch1 80753c4a9ac3806858405b96b24a907b309e3616 644 file-branch2 7108421418404a937c684d2479a34a24d2ce4757 644 file-parent 67109fdebf6c556eb0a9d5696dd98c8420520405 644 renamed $ hg -R source-hg manifest --debug -r 'tip^' cdf31ed9242b209cd94697112160e2c5b37a667d 644 file 5108144f585149b29779d7c7e51d61dd22303ffe 644 file-branch1 80753c4a9ac3806858405b96b24a907b309e3616 644 file-branch2 7108421418404a937c684d2479a34a24d2ce4757 644 file-parent 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed $ hg -R hg2hg manifest --debug -r tip cdf31ed9242b209cd94697112160e2c5b37a667d 644 file 5108144f585149b29779d7c7e51d61dd22303ffe 644 file-branch1 80753c4a9ac3806858405b96b24a907b309e3616 644 file-branch2 7108421418404a937c684d2479a34a24d2ce4757 644 file-parent 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed $ hg -R hg2hg manifest --debug -r 'tip^' cdf31ed9242b209cd94697112160e2c5b37a667d 644 file 5108144f585149b29779d7c7e51d61dd22303ffe 644 file-branch1 80753c4a9ac3806858405b96b24a907b309e3616 644 file-branch2 7108421418404a937c684d2479a34a24d2ce4757 644 file-parent 27c968376d7c3afd095ecb9c7697919b933448c8 644 renamed $ cd ..