svn diff --xml --summarize使用什么模式?

时间:2019-01-08 15:08:41

标签: xml svn schema

我想解析svn diff --xml --summarize的输出;它看起来很简单,但是我需要知道有哪些边缘情况。

摘自SVN书:

$ svn diff --summarize --xml http://svn.red-bean.com/repos/test@r2 \
           http://svn.red-bean.com/repos/test
<?xml version="1.0"?>
<diff>
<paths>
<path
   props="none"
   kind="file"
   item="modified">http://svn.red-bean.com/repos/test/sandwich.txt</path>
<path
   props="none"
   kind="file"
   item="deleted">http://svn.red-bean.com/repos/test/burrito.txt</path>
<path
   props="none"
   kind="dir"
   item="added">http://svn.red-bean.com/repos/test/snacks</path>
</paths>
</diff>

是否存在记录该XML模式的地方?

1 个答案:

答案 0 :(得分:1)

糟糕-我讲得太早了; --xml option的链接:

  

--xml

     

以XML格式打印输出。输出的XML模式(采用RELAX NG格式)保存在Subversion源树的subversion / svn / schema /目录中。

here,其中包含diff.rnc;截止到今天,它包含:

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
#
# XML RELAX NG schema for Subversion command-line client output
# For "svn diff --summarize --xml"

include "common.rnc"

start = diff

diff = element diff { paths }

paths = element paths { path* }

## A path entry
path = element path { attlist.path, text }
attlist.path &=
  ## The props of the entry.
  attribute props { "none" | "modified" },
  ## The kind of the entry.
  attribute kind { "dir" | "file" },
  ## The action performed against this path.  This terminology
  ## was chosen for consistency with 'svn status'.
  attribute item { "none" | "added" | "modified" | "deleted" }