Mercurial > hg
view contrib/xml.rnc @ 27953:88609cfa3745 stable
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
In c0f11347b107 (changegroup: don't support versions 01 and 02 with
treemanifests, 2016-01-19), I stopped supporting use of cg1 and cg2
with treemanifest repos. What I had not considered was that it's
perfectly safe to pull *to* a treemanifest repo using any changegroup
version. As reported in issue5066, I therefore broke pull from old
repos into a treemanifest repo. It was not covered by the test case,
because that pulled from a local repo while enabling treemanifests,
which enabled treemanifests on the source repo as well. After
switching to pulling via HTTP, it breaks.
Fix by splitting up changegroup.supportedversions() into
supportedincomingversions() and supportedoutgoingversions().
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 27 Jan 2016 09:07:28 -0800 |
parents | 3acfb69a4729 |
children |
line wrap: on
line source
# RelaxNG schema for "xml" log style # Inspired by Subversion's XML log format. start = log node.type = xsd:string {minLength = "40" maxLength = "40"} log = element log { logentry+ } logentry = element logentry { logentry.attlist, branch*, tag*, hgparent*, author, date, msg, paths?, copies?, extra* } logentry.attlist = attribute revision {xsd:nonNegativeInteger} & attribute node {node.type} branch = element branch { text } tag = element tag { text } hgparent = element parent {hgparent.attlist, text} hgparent.attlist = attribute revision {xsd:integer {minInclusive = "-1"} } & attribute node {node.type} author = element author { author.attlist, text } author.attlist = attribute email {text} date = element date {xsd:dateTime} msg = element msg {msg.attlist, text} msg.attlist = attribute xml:space {"preserve"} paths = element paths { path* } path = element path { path.attlist, text } path.attlist = # Action: (A)dd, (M)odify, (R)emove attribute action {"A"|"M"|"R"} copies = element copies { copy+ } copy = element copy { copy.attlist, text } copy.attlist = attribute source {text} extra = element extra {extra.attlist, text} extra.attlist = attribute key {text}