tests/svn-safe-append.py
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 21 Mar 2018 18:13:40 -0700
changeset 37181 49630e75635d
parent 36789 ffa3026d4196
child 39740 e1e10cbb5568
permissions -rwxr-xr-x
thirdparty: allow zope.interface.advice to be lazily imported The symbol from this module is only used in functions. Let's access that symbol through its imported module so importing zope.interface.advice can be lazy. Differential Revision: https://phab.mercurial-scm.org/D2931

#!/usr/bin/env python

from __future__ import absolute_import

__doc__ = """Same as `echo a >> b`, but ensures a changed mtime of b.
Without this svn will not detect workspace changes."""

import os
import stat
import sys

text = sys.argv[1]
fname = sys.argv[2]

f = open(fname, "ab")
try:
    before = os.fstat(f.fileno())[stat.ST_MTIME]
    f.write(text)
    f.write("\n")
finally:
    f.close()
inc = 1
now = os.stat(fname)[stat.ST_MTIME]
while now == before:
    t = now + inc
    inc += 1
    os.utime(fname, (t, t))
    now = os.stat(fname)[stat.ST_MTIME]