view tests/test-revset @ 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 73112cb2a6d7
children 437579a0068a
line wrap: on
line source

#!/bin/sh

HGENCODING=utf-8
export HGENCODING

try() {
	echo '% hg debugrevspec' $@
	hg debugrevspec --debug $@
}

log() {
    echo "% log '$1'"
    hg log --template '{rev}\n' -r "$1"
}

hg init repo
cd repo

echo a > a
hg branch a
hg ci -Aqm0

echo b > b
hg branch b
hg ci -Aqm1

rm a
hg branch a-b-c-
hg ci -Aqm2 -u Bob

hg co 1
hg branch +a+b+c+
hg ci -Aqm3

hg co 2  # interleave
echo bb > b
hg branch -- -a-b-c-
hg ci -Aqm4 -d "May 12 2005"

hg co 3
hg branch /a/b/c/
hg ci -Aqm"5 bug"

hg merge 4
hg branch _a_b_c_
hg ci -Aqm"6 issue619"

hg branch .a.b.c.
hg ci -Aqm7

hg branch all
hg ci --close-branch -Aqm8

hg co 4
hg branch é
hg ci -Aqm9

hg tag -r6 1.0

hg clone --quiet -U -r 7 . ../remote1
hg clone --quiet -U -r 8 . ../remote2
echo "[paths]" >> .hg/hgrc
echo "default = ../remote1" >> .hg/hgrc

# names that should work without quoting
try a
try b-a
try _a_b_c_
try _a_b_c_-a
try .a.b.c.
try .a.b.c.-a
try -- '-a-b-c-' # complains
log -a-b-c- # succeeds with fallback
try -- -a-b-c--a # complains
try é

# quoting needed
try '"-a-b-c-"-a'

log '1 or 2'
log '1|2'
log '1 and 2'
log '1&2'
try '1&2|3' # precedence - and is higher
try '1|2&3' 
try '1&2&3' # associativity
try '1|(2|3)'
log '1.0' # tag
log 'a' # branch
log '2785f51ee' 
log 'date(2005)'
log 'date(this is a test)'
log 'date()'
log 'date'
log 'date(' 
log 'date(tip)'
log '"date"'
log 'date(2005) and 1::'

log 'ancestor(1)'
log 'ancestor(4,5)'
log 'ancestor(4,5) and 4'
log 'ancestors(5)'
log 'author(bob)'
log 'branch(é)'
log 'children(ancestor(4,5))'
log 'closed()'
log 'contains(a)'
log 'descendants(2 or 3)'
log 'file(b)'
log 'follow()'
log 'grep("issue\d+")'
log 'head()'
log 'heads(6::)'
log 'keyword(issue)'
log 'limit(head(), 1)'
log 'max(contains(a))'
log 'min(contains(a))'
log 'merge()'
log 'modifies(b)'
log 'outgoing()'
log 'outgoing("../remote1")'
log 'outgoing("../remote2")'
log 'p1(merge())'
log 'p2(merge())'
log 'parents(merge())'
log 'removes(a)'
log 'roots(all())'
log 'reverse(2 or 3 or 4 or 5)'
log 'sort(limit(reverse(all()), 3))'
log 'sort(2 or 3 or 4 or 5, date)'
log 'tagged()'
log 'user(bob)'

log '4::8'
log '4:8'

log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")'

log 'not 0 and 0:2'
log 'not 1 and 0:2'
log 'not 2 and 0:2'
log '(1 and 2)::'
log '(1 and 2):'
log '(1 and 2):3'
log 'sort(head(), -rev)'