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

Translate

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

This question and all comments follow the "Attribution Required."

所有的回答

Translate

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

常见状态:

U:工作文件已更新

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

M:工作副本已修改

C:此文件与存储库中的版本冲突

?:此文件不受版本控制

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

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

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

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

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

I:被忽略

X:外部定义

~:类型已更改

R:项目已被替换为您的工作副本。这意味着计划删除该文件,然后计划替换其位置的同名新文件。

L:项目已锁定

E:项目是通过svn更新存在的,就像它应该创建的一样。

来源
Translate

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

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

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

来源
Translate

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

svn status --help
来源
Translate

我想谈谈“ G”状态,

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

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

U =项目(U)修改为存储库版本

G =项目的本地更改与存储库合并

C =资料库对商品的本地更改(C)

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

A =项目(A)加入工作副本

来源
Translate

还有一个“ E”状态

E =文件在更新之前已存在

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

来源
Translate

我通常通过gui(我的IDE或客户端)使用svn。因此,当我不得不诉诸命令行时,我永远都不会记得这些代码。

我发现此备忘单有很大帮助:颠覆备忘单

来源
Translate

在Subversion图书参考中查看:“工作副本文件和目录的状态”

强烈建议使用SVN做几乎所有事情的任何人。

来源
Translate

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的人们希望命令执行的操作,而不是意识到它仅将文件的当前状态与上一次更新时从服务器获取的信息进行比较。

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

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

来源
Translate

每当您无权访问文档时(SVN书),输入(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 -如何创建分支?