Answers:
有关更多详细信息,请参见SVNBook:“工作副本文件和目录的状态”。
常见状态:
U:工作文件已更新
G:回购中的更改已自动合并到工作副本中
M:工作副本已修改
C:此文件与存储库中的版本冲突
?:此文件不受版本控制
!:此文件受版本控制,但丢失或不完整
答:此文件将添加到版本控制中(提交后)
A +:此文件将被移动(提交后)
D:此文件将被删除(提交后)
S:这表示文件或目录已从其余工作副本的路径(使用svn开关)切换到分支
我:无视
X:外部定义
〜:类型已更改
R:项目已在您的工作副本中替换。这意味着已计划删除该文件,然后已计划将具有相同名称的新文件替换到该位置。
L :项目已锁定
E:通过svn更新,该项目已经存在,并且已经创建。
$ svn status
L index.html
命令的输出分为六列,但这并不明显,因为有时列为空。也许用这种方式ls -l
而不是什么都用破折号指示空列会更有意义。然后,例如,L index.html
看起来像--L--- index.html
,这很明显使我们唯一拥有的信息在第三列中,即关于锁定的信息。无论如何,一旦您知道它开始变得更有意义了。
第一列表示已添加,删除或以其他方式更改了项目。
没有修改。
A
该项目已计划添加。
D
项目已计划删除。
M
项目已被修改。
R
项目已替换为您的工作副本。这意味着已计划删除该文件,然后已计划将具有相同名称的新文件替换到该位置。
C
项目的内容(与属性相反)与从存储库收到的更新冲突。
X
项目与外部定义有关。
I
项目被忽略(例如,使用svn:ignore属性)。
?
该项目不受版本控制。
!
项目丢失(例如,您在不使用svn的情况下将其移动或删除了)。这也表明目录不完整(签出或更新被中断)。
~
项目被版本化为一种对象(文件,目录,链接),但已被另一种对象替代。
第二列说明文件或目录属性的状态。
没有修改。
M
该项目的属性已被修改。
C
该项目的属性与从存储库收到的属性更新冲突。
仅在工作副本目录被锁定的情况下填充第三列(svn清理通常应足以将其清除)
项目未锁定。
L
项目已锁定。
仅当计划将其添加历史记录时,才会填充第四列。
没有预定的提交历史记录。
+
历史记录已提交。
仅当项目的工作副本相对于其父项切换时,才会填充第五列
Item是其父目录的子级。
S
项目已切换。
第六列填充有锁定信息。
使用–show-updates时,文件未锁定。如果未使用–show-updates,则仅表示该文件未锁定在该工作副本中。
K
文件已锁定在此工作副本中。
O
文件被另一个用户或另一个工作副本锁定。仅在使用–show-updates时出现。
T
文件已锁定在此工作副本中,但是该锁已被盗并且无效。该文件当前已锁定在存储库中。仅在使用–show-updates时显示。
B
文件已被锁定在此工作副本中,但是该锁已被打破并且无效。文件不再锁定仅在使用–show-updates时出现。
过时的信息将出现在第七列中(仅当您通过–show-updates开关时)。这是刚接触SVN的人们希望命令执行的任务,而不是意识到它仅将文件的当前状态与上一次更新时从服务器获取的信息进行比较。
工作副本中的项目是最新的。
*
服务器上存在该项目的较新版本。
查看Subversion图书参考:“工作副本文件和目录的状态”
强烈建议使用SVN做几乎所有事情的任何人。
每当您无权访问文档(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>"
}