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

Pol*_*nby 295 svn

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

Pol*_*nby 511

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

常见状况:

U:工作文件已更新

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

M:修改工作副本

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

:此文件不受版本控制

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

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

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

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

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

:无视了

X:外部定义

:类型已更改

R:项目已在工作副本中替换.这意味着文件已安排删除,然后在其位置安排了一个具有相同名称的新文件.

L :项目被锁定

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

  • "R":此文件已被替换 (12认同)
  • 怎么样'E`?所有[文档](http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.update.html)都说"存在",这没有用. (8认同)
  • +1,但是“ G:回购中的更改已自动合并到工作副本中”(未提供)(没有?) (2认同)

Mat*_*ler 84

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

U   filename.1
 U  filename.2  
UU  filename.3
Run Code Online (Sandbox Code Playgroud)

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


Tar*_*ast 36

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

svn status --help
Run Code Online (Sandbox Code Playgroud)


Eli*_* Xu 19

我想谈谈"G"状态,

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

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

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

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

C =项目的本地更改(C)与存储库有关

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

A =项目(A)等于工作副本


Jon*_*o D 18

还有'E'状态

E =更新前存在文件

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


Ube*_*lex 13

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

我觉得这个备忘单很有帮助: Subversion Cheat Sheet


小智 12

看一下Subversion Book参考:"工作副本文件和目录的状态"

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


Spy*_*yto 11

SVN状态列

$ svn status
L index.html
Run Code Online (Sandbox Code Playgroud)

该命令的输出分为六列,但这并不明显,因为有时列是空的.或许用破折号表示空列更有意义,方式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新手所期望的命令,而不是意识到它只是将文件的当前状态与上次更新时从服务器获取的信息进行比较.

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

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


Ala*_*lan 7

每当您无法访问文档(SVNBook)时,请键入(Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'
Run Code Online (Sandbox Code Playgroud)

或者在〜/ .bashrc文件中插入以下函数,如下所示:

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

在此输入图像描述