tests/svn-safe-append.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 24 Jan 2022 11:49:06 +0100
changeset 48600 d9017df70135
parent 45830 c102b704edb5
child 48875 6000f5b25c9b
permissions -rwxr-xr-x
stream-clone: filter possible missing requirements using all supported one The `supportedformat` requirements is missing some important requirements and it seems better to filter out with all requirements we know, not just an "arbitrary" subset. This is especially relevant as we about to phase out the `supportedformat` class attribute. (a backport of this change to stable should be sent soon). Differential Revision: https://phab.mercurial-scm.org/D12031

#!/usr/bin/env python3

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

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]