contrib/tmplrewrite.py
author Matt Harbison <matt_harbison@yahoo.com>
Sat, 07 Jul 2012 00:47:30 -0400
changeset 17185 2c7c4824969e
parent 8432 94ef2c8ce683
permissions -rwxr-xr-x
revset: add origin() predicate This predicate is used to find the original source of csets created by a graft, transplant or rebase --keep. If a copied cset is itself copied, only the source of the original copy is selected. hg log -r origin() # all src csets, anywhere hg log -r origin(branch(default)) # all srcs of copies on default By following through different types of copy commands and only selecting the original cset, the implementation differences between the copy commands are hidden. (A graft of a graft preserves the original source in its 'extra' map, while transplant and rebase use the immediate source specified for the command). Given a repo with a cset S that is grafted to create G(S), which itself is grafted to become G(G(S)) o-S / o-o-G(S) \ o-G(G(S)) hg log -r origin( G(S) ) # { S } hg log -r origin( G(G(S)) ) # { S }, NOT { G(S) } Even if the last graft were a transplant hg log -r origin( T(G(S)) ) # { S } A rebase without --keep essentially strips the source, so providing the cset that results to this predicate will yield an empty set. Note that the convert extension does not currently update the 'extra' map in its destination csets, and therefore copies made prior to the convert will be unable to find their source.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8432
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     1
#!/usr/bin/python
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     2
import sys, os, re
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     3
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
IGNORE = ['.css', '.py']
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     5
oldre = re.compile('#([\w\|%]+)#')
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     6
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     7
def rewrite(fn):
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     8
    f = open(fn)
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     9
    new = open(fn + '.new', 'wb')
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    10
    for ln in f:
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    11
        new.write(oldre.sub('{\\1}', ln))
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    12
    new.close()
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    13
    f.close()
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    14
    os.rename(new.name, f.name)
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    15
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    16
if __name__ == '__main__':
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    17
    if len(sys.argv) < 2:
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    18
        print 'usage: python tmplrewrite.py [file [file [file]]]'
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    19
    for fn in sys.argv[1:]:
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    20
        if os.path.splitext(fn) in IGNORE:
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    21
            continue
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    22
        print 'rewriting %s...' % fn
94ef2c8ce683 contrib: add tmplrewrite.py script to help rewrite old templater syntax
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    23
        rewrite(fn)