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

时间:2008-08-05 09:11:55

标签: svn

SVN中的结果代码是什么意思?我需要快速参考。

9 个答案:

答案 0 :(得分:499)

有关其他详细信息,请参阅SVNBook:"Status of working copy files and directories"

常见状态:

  

U :工作文件已更新

     

G :回购的变化会自动合并到工作副本

中      

M :修改了工作副本

     

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

     

:此文件不受版本控制

     

:此文件受版本控制,但缺失或不完整

     

A :此文件将添加到版本控制(提交后)

     

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

     

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

     

S :这表示文件或目录已从其余工作副本的路径(使用svn开关)切换为   分支

     

:忽略

     

X :外部定义

     

:输入已更改

     

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

     

L :项目已锁定

     

E :项目已存在,因为它本来是由svn更新创建的。

答案 1 :(得分:83)

另请注意,第二列中的结果代码是指文件的属性。例如:

U   filename.1
 U  filename.2  
UU  filename.3

filename.1:文件已更新
filename.2:文件中的一个或多个属性(如svn:keywords)已更新
filename.3:文件及其属性都已更新

答案 2 :(得分:34)

您始终可以通过运行获取列表:

svn status --help

答案 3 :(得分:18)

还有'E'状态

E =更新前存在文件

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

答案 4 :(得分:17)

我想谈谈“G”状态,

G:回购的变化自动合并到工作副本

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

U = item(U)pdated to repository version

G =项目的本地更改mer(G)ed with repository

C =项目的本地更改(C)受到存储库的影响

D =从工作副本中选出的项目(D)

A =项目(A)转为工作副本

答案 5 :(得分:12)

我通常通过gui使用svn,无论是我的IDE还是客户端。因此,当我不得不求助于命令行时,我永远不会记住代码。

我发现这张备忘单很有帮助: Subversion Cheat Sheet

答案 6 :(得分:12)

查看Subversion图书参考:"Status of working copy files and directories"

强烈建议任何使用SVN做任何事情的人。

答案 7 :(得分:10)

SVN状态列

$ svn status
L index.html

命令的输出分为六列,但这并不明显,因为有时列是空的。或许更有意义的是用空格来表示空白列,ls -l的方式,而不是什么。然后,例如,L index.html看起来像--L--- index.html,这显然我们在第三列中有关于锁定的唯一信息。无论如何,一旦你知道它开始变得更有意义了。

SVN状态第一栏:A,D,M,R,C,X,I,?,!,〜

第一列表示已添加,删除或以其他方式更改项目。

   无法修改。

 A 项目计划加入。

 D 项目计划删除。

 M 项目已被修改。

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

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

 X 项目与外部定义有关。

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

 ? 项目不受版本控制。

 ! 项目丢失(例如,您在不使用svn的情况下移动或删除了它)。这也表明目录不完整(结帐或更新被中断)。

 ~ 项目被版本化为一种对象(文件,目录,链接),但已被不同类型的对象替换。

SVN状态第二列:M,C

第二列说明文件或目录属性的状态。

   无法修改。

 M 此项目的属性已被修改。

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

SVN状态第三栏:L

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

   项目未锁定。

 L 项目被锁定。

SVN状态第四栏:+

仅当项目计划添加历史记录时,才会填充第四列。

   没有安排提交的历史记录。

 + 使用提交安排的历史记录。

SVN状态第五栏:S

仅当项目的工作副本相对于其父项

切换时,才会填充第五列

    Item是其父目录的子项。

 S 项目已切换。

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

第六列填充了锁定信息。

   使用-show-updates时,文件未锁定。如果未使用-show-updates,则仅表示该文件未锁定在此工作副本中。

 K 文件已锁定在此工作副本中。

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

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

 B 文件被锁定在此工作副本中,但锁已被破坏且无效。该文件不再被锁定仅在使用-show-updates时显示。

SVN状态第七栏:*

过时的信息显示在第七列中(仅当您通过-show-updates开关时)。这是SVN新手所期望的命令,而不是意识到它只是将文件的当前状态与上次更新时从服务器获取的信息进行比较。

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

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

答案 8 :(得分:7)

每当您无权访问文档(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