contrib/tmplrewrite.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 27 Jun 2012 22:03:27 +0900
changeset 17152 f287d4a62031
parent 8432 94ef2c8ce683
permissions -rwxr-xr-x
mq: create patch file after commit to import diff of ".hgsubstate" at qrefresh Even though the committed revision contains diff of ".hgsubstate", the patch file created by qrefresh doesn't contain it, because: - ".hgsubstate" is not listed up as one of target files of the patch for reasons below, so diff of ".hgsubstate" is not imported into patch file - status of ".hgsubstate" in working directory is usually "clean" - ".hgsubstate" is not specified explicitly by users - the patch file is created before commit processing which updates or creates ".hgsubstate" automatically, so there is no diff for it at that time This patch resolves this problem by: - putting ".hgsubstate" into target list of the patch, if needed: this allows "patch.diff()" to import diff of ".hgsubstate" into patch file. - creating the patch file after commit processing: this updates ".hgsubstate" before "patch.diff()" invocation. For the former fixing, this patch introduces "putsubstate2changes()" to share same implementation with qnew. This is invoked only once per qnew/qrefresh at most, so there is less performance impact. This patch also omits "match" argument for "patch.diff()" invocation, because "patch.diff()" ignores "match" if "changes" is specified.
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)