如何确定远程版本项是目录还是文件?

时间:2013-06-11 07:09:38

标签: svn

在Subversion中是否有像ls -l这样的实用程序?

目的是区分文件和目录。有svn ls命令,但它只是列出了所有文件和目录,所以如果提交的文件没有扩展名,它就像一个目录。

例如。

M/trunk/Database/Base
M/trunk/Database/Upgrade
M/trunk/Database/readme

readme是此处的文件。

4 个答案:

答案 0 :(得分:0)

这可以通过合并svn statusls -l的输出的脚本来完成。

答案 1 :(得分:0)

svn ls的输出中,以/结尾的任何行都是目录。如果没有/和条目的结尾,那么它就是一个文件。

您还可以使用svn ls --verbose的输出并解析它,在“文件长度”列(日期戳前面的那一列)中查找整数。如果没有整数,那就是一个目录。如果有,那就是文件。

答案 2 :(得分:0)

好的......得到了.. svn info 就是答案

例如:

Path: /root/trunk/testproj
URL: https://my.svn.net/svn/testproj/trunk
Repository Root: https://my.svn.net/svn/testproj
Repository UUID: cdc0d28-0418-b024-f56a02f096e4
Revision: 100
**Node Kind: directory**
Schedule: normal
Last Changed Author: jack
Last Changed Rev: 100
Last Changed Date: 2013-06-10 14:11:08 +0530 (Mon, 10 Jun 2013)

这里'Node Kind'给出了我需要的信息。

答案 3 :(得分:0)

您可以使用svn info <URL>命令查明路径是代表文件还是目录。

运行命令svn info http://svn.apache.org/repos/asf/subversion/trunk/tools,结果将是:

Path: tools
URL: http://svn.apache.org/repos/asf/subversion/trunk/tools
Relative URL: ^/subversion/trunk/tools
Repository Root: http://svn.apache.org/repos/asf
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 1663737
Node Kind: directory
Last Changed Author: danielsh
Last Changed Rev: 1663005
Last Changed Date: 2015-03-01 00:31:24 +0300 (Sun, 01 Mar 2015)

&#34;节点类型:目录&#34; 条目表示/asf/subversion/trunk/tools是目录。

运行命令svn info http://svn.apache.org/repos/asf/subversion/trunk/README,结果将是:

Path: README
Name: README
URL: http://svn.apache.org/repos/asf/subversion/trunk/README
Relative URL: ^/subversion/trunk/README
Repository Root: http://svn.apache.org/repos/asf
Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
Revision: 1663738
Node Kind: file
Last Changed Author: danielsh
Last Changed Rev: 1242804
Last Changed Date: 2012-02-10 18:58:53 +0400 (Fri, 10 Feb 2012)

&#34;节点类型:文件&#34; 条目表示/asf/subversion/trunk/README是文件。


您可以向--xml命令添加svn info命令行选项以获取更易于解析的XMLed输出:

svn info http://svn.apache.org/repos/asf/subversion/trunk/README --xml

<?xml version="1.0" encoding="UTF-8"?>
<info>
<entry
   path="README"
   revision="1663740"
   kind="file">
<url>http://svn.apache.org/repos/asf/subversion/trunk/README</url>
<relative-url>^/subversion/trunk/README</relative-url>
<repository>
<root>http://svn.apache.org/repos/asf</root>
<uuid>13f79535-47bb-0310-9956-ffa450edef68</uuid>
</repository>
<commit
   revision="1242804">
<author>danielsh</author>
<date>2012-02-10T14:58:53.499287Z</date>
</commit>
</entry>
</info>