tests/svn-safe-append.py
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 03 Jun 2022 20:25:06 -0700
branchstable
changeset 49434 ef40864bc074
parent 48875 6000f5b25c9b
permissions -rwxr-xr-x
automation: refresh requirements I'm hitting errors installing the old version of cffi due to an apparent issue where older versions of cffi aren't compatible with the modern Clang I'm using. So let's upgrade packages to unbreak things and to keep things modern. Differential Revision: https://phab.mercurial-scm.org/D12629

#!/usr/bin/env python3


__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

if sys.version_info[0] >= 3:
    text = os.fsencode(sys.argv[1])
    fname = os.fsencode(sys.argv[2])
else:
    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(b"\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]