代码之家  ›  专栏  ›  技术社区  ›  Jason S

在svn diff--xml-摘要中使用了什么模式?

  •  1
  • Jason S  · 技术社区  · 5 年前

    我要分析的输出 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 回复  |  直到 5 年前
        1
  •  1
  •   Jason S    5 年前

    哎呀——我说得太早了;那 --xml option 链接如下:

    ——XML

    以XML格式打印输出。输出的XML模式(RELAXNG格式)保存在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" }