tests/test-convert-tla.out
author Renato Cunha <renatoc@gmail.com>
Tue, 03 Aug 2010 13:52:48 -0300
changeset 11748 37a70a784397
parent 10490 f2618cacb485
permissions -rw-r--r--
py3kcompat: added a "compatibility layer" for py3k This patch adds some ugly constructs. The first of them is bytesformatter, a function that formats strings like when '%' is called. The main motivation for this function is py3k's strange behavior: >>> 'foo %s' % b'bar' "foo b'bar'" >>> b'foo %s' % b'bar' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'bytes' and 'bytes' >>> b'foo %s' % 'bar' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'bytes' and 'str' In other words, if we can't format bytes with bytes, and recall that all mercurial strings will be converted by a fixer, then things will break badly if we don't take a similar approach. The other addition with this patch is that the os.environ dictionary is monkeypatched to have bytes items. Hopefully this won't be needed in the future, as python 3.2 might get a os.environb dictionary that holds bytes items.

% create tla archive
% initialize tla repo
* creating version tla@mercurial--convert/tla--test--0
* imported tla@mercurial--convert/tla--test--0
% create initial files
A/ .arch-ids
A/ src
A/ src/.arch-ids
A  .arch-ids/a.id
A  a
A  src/.arch-ids/=id
A  src/.arch-ids/b.id
A  src/b
* update pristine tree (tla@mercurial--convert/tla--test--0--base-0 => tla--test--0--patch-1)
* committed tla@mercurial--convert/tla--test--0--patch-1
% create link file and modify a
A  src/.arch-ids/a-link.id
A  src/a-link
M  a
* update pristine tree (tla@mercurial--convert/tla--test--0--patch-1 => tla--test--0--patch-2)
* committed tla@mercurial--convert/tla--test--0--patch-2
% create second link and modify b
A  src/.arch-ids/a-link-2.id
A  src/a-link-2
Mb src/b
* update pristine tree (tla@mercurial--convert/tla--test--0--patch-2 => tla--test--0--patch-3)
* committed tla@mercurial--convert/tla--test--0--patch-3
% b file to link and a-link-2 to regular file
fl src/b
lf src/a-link-2
* update pristine tree (tla@mercurial--convert/tla--test--0--patch-3 => tla--test--0--patch-4)
* committed tla@mercurial--convert/tla--test--0--patch-4
% move a-link-2 file and src directory
D/ src/.arch-ids
A/ test/.arch-ids
/> src	test
=> src/.arch-ids/a-link-2.id	.arch-ids/c.id
=> src/a-link-2	c
=> src/.arch-ids/=id	test/.arch-ids/=id
=> src/.arch-ids/a-link.id	test/.arch-ids/a-link.id
=> src/.arch-ids/b.id	test/.arch-ids/b.id
* update pristine tree (tla@mercurial--convert/tla--test--0--patch-4 => tla--test--0--patch-5)
* committed tla@mercurial--convert/tla--test--0--patch-5
% converting tla repo to Mercurial
initializing destination tla-repo-hg repository
analyzing tree version tla@mercurial--convert/tla--test--0...
scanning source...
sorting...
converting...
5 initial import
4 added a file, src and src/b (binary)
3 added link to a and modify a
2 added second link and modify b
1 file to link and link to file test
0 move and rename a-link-2 file and src directory
% show graph log
o  5 "move and rename a-link-2 file and src directory" files: c src/a-link src/a-link-2 src/b test/a-link test/b
|
o  4 "file to link and link to file test" files: src/a-link-2 src/b
|
o  3 "added second link and modify b" files: src/a-link-2 src/b
|
o  2 "added link to a and modify a" files: a src/a-link
|
o  1 "added a file, src and src/b (binary)" files: a src/b
|
o  0 "initial import" files:

c4072c4b72e1cabace081888efa148ee80ca3cbb 644   a
0201ac32a3a8e86e303dff60366382a54b48a72e 644   c
c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b