Mercurial > hg
view tests/test-encoding-align @ 11948:88d4911930bf
contrib/setup3k.py: added script to build hg with py3k
This patch implements a script that inherits most of its functionality from
hg's setup.py and adds support to calling 2to3 during invocation with python3.
The motivation of having this script around is twofold:
1) It enables py3k crazies to test mercurial in py3k and, hopefully, patch it
more easily, so it can improve the py3k support to eventually run there.
2) Being separated from the main setup.py eliminates the need to make hg's
setup.py even more cluttered, and enables "independent" development until
the port is done.
Some considerations about the structure of this patch:
Mercurial already overrides the behavior of build_py, this patch tweaks it a bit
more to add support to call 2to3 with a custom fixer* location for Mercurial.
There is also a need of having the core C modules built *before* the
translation process starts, otherwise 2to3 will think those are global modules.
* A fixer is a python module that transforms python 2.x code in python 3.x
code.
author | Renato Cunha <renatoc@gmail.com> |
---|---|
date | Tue, 03 Aug 2010 13:18:16 -0300 |
parents | c29012a73518 |
children | 4c94b6d0fb1c |
line wrap: on
line source
#!/bin/sh ######################################## HGENCODING=utf-8 export HGENCODING hg init t cd t python << EOF # (byte, width) = (6, 4) s = "\xe7\x9f\xad\xe5\x90\x8d" # (byte, width) = (7, 7): odd width is good for alignment test m = "MIDDLE_" # (byte, width) = (18, 12) l = "\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d" f = file('s', 'w'); f.write(s); f.close() f = file('m', 'w'); f.write(m); f.close() f = file('l', 'w'); f.write(l); f.close() # instant extension to show list of options f = file('showoptlist.py', 'w'); f.write("""# encoding: utf-8 def showoptlist(ui, repo, *pats, **opts): '''dummy command to show option descriptions''' return 0 cmdtable = { 'showoptlist': (showoptlist, [('s', 'opt1', '', 'short width', '""" + s + """'), ('m', 'opt2', '', 'middle width', '""" + m + """'), ('l', 'opt3', '', 'long width', '""" + l + """') ], "" ) } """) f.close() EOF S=`cat s` M=`cat m` L=`cat l` ######################################## #### alignment of: #### - option descriptions in help cat <<EOF > .hg/hgrc [extensions] ja_ext = `pwd`/showoptlist.py EOF echo '% check alignment of option descriptions in help' hg help showoptlist ######################################## #### alignment of: #### - user names in annotate #### - file names in diffstat rm -f s; touch s rm -f m; touch m rm -f l; touch l #### add files cp s $S hg add $S cp m $M hg add $M cp l $L hg add $L #### commit(1) echo 'first line(1)' >> s; cp s $S echo 'first line(2)' >> m; cp m $M echo 'first line(3)' >> l; cp l $L hg commit -m 'first commit' -u $S -d "1000000 0" #### commit(2) echo 'second line(1)' >> s; cp s $S echo 'second line(2)' >> m; cp m $M echo 'second line(3)' >> l; cp l $L hg commit -m 'second commit' -u $M -d "1000000 0" #### commit(3) echo 'third line(1)' >> s; cp s $S echo 'third line(2)' >> m; cp m $M echo 'third line(3)' >> l; cp l $L hg commit -m 'third commit' -u $L -d "1000000 0" #### check echo '% check alignment of user names in annotate' hg annotate -u $M echo '% check alignment of filenames in diffstat' hg diff -c tip --stat ######################################## #### alignment of: #### - branch names in list #### - tag names in list #### add branches/tags hg branch $S hg tag -d "1000000 0" $S hg branch $M hg tag -d "1000000 0" $M hg branch $L hg tag -d "1000000 0" $L #### check echo '% check alignment of branches' hg tags echo '% check alignment of tags' hg tags ######################################## exit 0