contrib/xml.rnc
author Yuya Nishihara <yuya@tcha.org>
Sun, 04 Oct 2015 22:35:36 +0900
changeset 26493 13272104bb07
parent 10161 3acfb69a4729
permissions -rw-r--r--
util: use tuple accessor to get accurate st_mtime value (issue4836) Because st.st_mtime is computed as 'sec + 1e-9 * nsec' and double is too narrow to represent nanoseconds, int(st.st_mtime) can be 'sec + 1'. Therefore, that value could be different from the one got by osutils.listdir(). This patch fixes the problem by accessing to raw st_mtime by tuple index. It catches TypeError to fall back to st.st_mtime because our osutil.stat does not support tuple index. In dirstate.normal(), 'st' is always a Python stat, but in dirstate.status(), it can be either a Python stat or an osutil.stat. Thanks to vgatien-baron@janestreet.com for finding the root cause of this subtle problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10161
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     1
# RelaxNG schema for "xml" log style
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     2
# Inspired by Subversion's XML log format.
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     3
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     4
start = log
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     5
node.type = xsd:string  {minLength = "40" maxLength = "40"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     6
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     7
log = element log { logentry+ }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     8
logentry = element logentry {
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     9
    logentry.attlist,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    10
    branch*, tag*, hgparent*,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    11
    author, date,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    12
    msg, paths?, copies?, extra*
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    13
}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    14
logentry.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    15
    attribute revision {xsd:nonNegativeInteger}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    16
  & attribute node {node.type}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    17
branch = element branch { text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    18
tag = element tag { text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    19
hgparent = element parent {hgparent.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    20
hgparent.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    21
    attribute revision {xsd:integer {minInclusive = "-1"} }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    22
  & attribute node {node.type}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    23
author = element author { author.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    24
author.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    25
    attribute email {text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    26
date = element date {xsd:dateTime}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    27
msg = element msg {msg.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    28
msg.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    29
    attribute xml:space {"preserve"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    30
paths = element paths { path* }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    31
path = element path { path.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    32
path.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    33
    # Action: (A)dd, (M)odify, (R)emove
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    34
    attribute action {"A"|"M"|"R"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    35
copies = element copies { copy+ }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    36
copy = element copy { copy.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    37
copy.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    38
    attribute source {text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    39
extra = element extra {extra.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    40
extra.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    41
    attribute key {text}