contrib/fuzz/dirstate_corpus.py
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 01 Feb 2019 22:52:09 -0800
changeset 41577 5f827e9ce870
parent 41015 b444407f635b
child 43076 2372284d9457
permissions -rw-r--r--
status: if ui.relative-paths=no, don't use relative paths even with patterns Without ui.relative-paths or command.status.relative set, you get this behavior: hgext$ hg st M hgext/narrow/narrowrepo.py hgext$ hg st . M narrow/narrowrepo.py hgext$ hg st narrow M narrow/narrowrepo.py I think it's surprising that some of those produce relative paths. I suspect it works that way because "hg st ." was an easy way of getting relative paths. Perhaps not much thought was given to how it should behave when the pattern was not ".". It also feels wrong to conflate the request for relative patterns with matching of of patterns. Since we can now start fresh and define the behavior of ui.relative-paths as we want, I suggest we make ui.relative-paths=no consistently not give relative paths. So that's what this paths starts doing for `hg status`. Differential Revision: https://phab.mercurial-scm.org/D5802
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41015
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
from __future__ import absolute_import, print_function
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
import argparse
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
import os
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
import zipfile
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
ap = argparse.ArgumentParser()
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
ap.add_argument("out", metavar="some.zip", type=str, nargs=1)
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
args = ap.parse_args()
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
reporoot = os.path.normpath(os.path.join(os.path.dirname(__file__),
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
                                         '..', '..'))
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
dirstate = os.path.join(reporoot, '.hg', 'dirstate')
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
with zipfile.ZipFile(args.out[0], "w", zipfile.ZIP_STORED) as zf:
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    16
    if os.path.exists(dirstate):
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
        with open(dirstate) as f:
b444407f635b fuzz: new fuzzer for dirstate parser
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
            zf.writestr("dirstate", f.read())