SVN中的结果代码是什么意思?

SVN中的结果代码是什么意思?我需要一份简短的推荐信。

215892 次浏览

有关更多详细信息,请参阅SVNBook: "工作副本文件和目录的状态"

常见状态:

U:工作文件已更新

G: repo上的更改自动合并到工作副本中

:工作副本被修改

C:此文件与repo中的版本冲突

?:这个文件不在版本控制之下

:此文件处于版本控制之下,但缺少或不完整

一个:该文件将被添加到版本控制(提交后)

+:该文件将被移动(提交后)

D:该文件将被删除(提交后)

年代:这表示文件或目录已经从剩余工作副本的路径(使用svn switch)切换到a 分支< / p >

:忽略

X:外部定义

:类型改变

R:项目在工作副本中已被替换。这意味着计划删除该文件,然后计划在其位置添加具有相同名称的新文件。

l:项目被锁定

E: Item存在,因为它是由svn更新创建的。

我通常通过gui(我的IDE或客户端)使用svn。因此,当我不得不求助于命令行时,我总是记不住代码。

我发现这个小抄很有帮助: 颠覆小抄 < / p >

在Subversion Book参考中查看:"工作副本文件和目录的状态"

强烈推荐给任何使用SVN做任何事情的人。

还要注意,第二列中的结果代码引用了文件的属性。例如:

U   filename.1
U  filename.2
UU  filename.3
< p >文件名。1: the file was updated
.日志含义 文件名。2:文件中的一个或多个属性(如svn:keywords)被更新
文件名。3:文件和它的属性都更新了

你总是可以通过运行:

svn status --help

我想说一些关于G的情况,

G:对回购的更改会自动合并到工作副本中

我认为上面的定义不清楚,会产生一些混乱,因为所有文件都会自动合并到工作副本中,正确的定义应该是:

U =项目(U)提前到存储库版本

项的本地更改由存储库修改

C =项的本地更改(C)与存储库冲突

D =从工作副本中删除的项目(D)

A =项目(A)添加到工作副本

还有一个“E”的状态

E =更新前文件已存在

如果您手动创建了通过执行更新创建的文件夹,则可能会发生这种情况。

当你无法访问文档(SVNBook)时,输入(Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

或在~/中插入以下函数。Bashrc文件,如下所示:

svncode() {
symbol=$1
[ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
echo "usage: svncode <symbol>"
}

enter image description here

SVN状态列

$ svn status
L index.html

命令的输出被分成六列,但这并不明显,因为有时这些列是空的。也许用破折号来表示空列会更有意义,就像ls -l那样,而不是什么都不做。然后,例如,L index.html看起来像--L--- index.html,这使得我们所拥有的唯一信息是在第三列关于锁定的信息。不管怎样,一旦你知道了,它就变得更有意义了。

SVN状态第一列:A、D、M、R、C、X、I、?、!、~

第一列表示添加、删除或以其他方式更改了项。

   无修改。

 A  Item计划用于添加。

 D  Item计划删除。

 M  Item已被修改。

 R  Item已在工作副本中被替换。这意味着计划删除该文件,然后计划在其位置添加具有相同名称的新文件。

 C 项的内容(相对于属性)与从存储库接收到的更新冲突。

 X  Item与外部定义相关。

 I  Item被忽略(例如使用svn:ignore属性)。

 ?  Item不受版本控制。

 ! 项目丢失(例如,您移动或删除它没有使用svn)。这也表明目录是不完整的(签出或更新被中断)。

 ~  Item被版本化为一种对象(文件、目录、链接),但已被不同类型的对象所取代。

SVN状态第二列:M、C

第二列表示文件或目录属性的状态。

   无修改。

 M 该项的属性已被修改。

 C 该项的属性与从存储库接收的属性更新冲突。

SVN状态第三列:L

只有当工作副本目录被锁定时才会填充第三列(svn清理通常足以清除它)

    Item未锁定。

 L 项目被锁定。

SVN状态第四列:+

仅当项目计划使用-history添加时才填充第四列。

   没有提交计划的历史记录。

 + 提交时计划的历史。

SVN状态第五列:S

只有当项的工作副本相对于其父副本切换时,才会填充第五列

    Item是其父目录的子目录。

 S  Item被切换。

SVN状态第六列:K、O、T、B

第六列填充锁信息。

   当使用-show-updates时,文件不被锁定。如果没有使用-show-updates,这仅仅意味着文件没有被锁定在这个工作副本中。

 K 文件被锁定在这个工作副本中。

 O 文件被其他用户锁定或在另一个工作副本中。这只在使用-show-updates时出现。

 T 文件被锁在这个工作副本中,但锁已被盗且无效。该文件当前锁定在存储库中。只有在使用- show-updates时才会出现

 B 文件被锁在这个工作副本中,但是锁已经被打破并且无效。只有在使用-show-updates时才会出现。

SVN状态第七列:*

过时的信息出现在第七列(仅当您传递-show-updates开关时)。这是初次接触SVN的人所期望的,而没有意识到它只是将文件的当前状态与上次更新时从服务器获取的信息进行比较。

   工作副本中的项是最新的。

 * 服务器上存在该项的更新版本。