首页 / 知识

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

2023-04-11 15:55:00

What do the result codes in SVN mean?

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


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

常见状态:

U: Working file was updated

G: Changes on the repo were automatically merged into the working copy

M: Working copy is modified

C: This file conflicts with the version in the repo

?: This file is not under version control

!: This file is under version control but is missing or incomplete

A: This file will be added to version control (after commit)

A+: This file will be moved (after commit)

D: This file will be deleted (after commit)

S: This signifies that the file or directory has been switched from the path of the rest of the working copy (using svn switch) to a
branch

I: Ignored

X: External definition

~: Type changed

R: Item has been replaced in your working copy. This means the file was scheduled for deletion, and then a new file with the same name was scheduled for addition in its place.

L : Item is locked

E: Item existed, as it would have been created, by an svn update.


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

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

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


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

1
svn status --help

我想谈谈" G"状态,

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

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

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

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

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

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

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


还有一个" E"状态

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

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


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

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


看看Subversion图书参考:"工作副本文件和目录的状态"

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


SVN状态栏

1
2
$ 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

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

项是其父目录的子级。

S项目已切换。

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

第六列填充有锁定信息。

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

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

O文件已被另一个用户或另一个工作副本锁定。仅在使用–show-updates时出现。

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

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

SVN状态第七栏:*

过时的信息出现在第七列中(仅当您通过–show-updates开关时)。这是刚接触SVN的人们希望命令执行的任务,而不是意识到它仅将文件的当前状态与上一次更新时从服务器获取的信息进行比较。

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

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


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

1
2
3
svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

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

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

enter image description here


状态副本文件参考

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢