U foo
档案 foo 会被更新 (Update) (自服务器取得更动).
A foo
档案或目录 foo 会被新增 (Add) 到工作目录中.
D foo
档案或目录 foo 会自工作目录删除 (Delete).
R foo
工作复本的档案或目录 foo 被取代 (Replace); 也就是说, foo 被删除, 然后新增同一名称的新项目. 虽然它们的名称是相同的, 但是档案库会认为它们是不同的, 而且有着不同的历史进程.
G foo
档案 foo 自档案库取得新的更动, 但是本地复本的档案含有你的更动. 不过这些更动并没有重叠的部份, 所以 Subversion 可以毫无困难地合并 (merGe) 档案库的更动.
C foo
档案 foo 自服务器收到冲突的 (Conflict) 更动. 从服务器来的更动, 与你对该档案的更动有重叠的部份, 不过不必太惊慌失措. 冲突必须由人类 (也就是你) 来解决; 我们在本章稍后会讨论这个状况.
-----------------------------------------------------------------------------------------------------
svn status 的输出格式:
第一栏表示档案或目录本身, 以及/或是其内容的状态;
第二栏指示的是目录或档案的性质,M表示其性质曾变更过, 不然显示的是空格符;
第三栏只会显示空格符或是L, 表示 Subversion 在 .svn 工作区中有对象的锁定;
第四栏只会显示空格符或是+,表示这个档案或目录已预定要加入档案库, 或是以额外附加的历史纪录修改
第五栏只会显示空白或是 S. 它表示这个档案或目录, 已经自该工作复本里的路径 (利用 svn switch) 切换到一个分支.
对第一栏的注解:
A file_or_dir
目录或档案 file_or_dir 已预定要被新增至档案库.
M file
档案 file 的内容已被修改.
D file_or_dir
目录或档案 file_or_dir 已预定要自档案库删除.
X dir
目前 dir 未纳入版本控制, 但是关联到一个 Subversion 的外部定义. 欲了解更多外部定义, 请参考 the section called “外部定义”.
? file_or_dir
目录或档案你可以藉由 svn status 命令的 --quite (-q) 选项, 或是对父目录设定其 svn:ignore 性质, 就不会显示问号代码. 想知道有哪些档案会被忽略, 请参照 the section called “svn:ignore”.
! file_or_dir
目录或档案 file_or_dir 已纳入版本控制之中, 但是它不是消失, 就是不完整. 如果这个档案或目录被非 Subversion 的命令所删除, 就会被判定为消失. 如果是目录的话, 如果你在取出或是更新时中断, 那么它就会变成不完整. 只要执行 svn update, 就可以从档案库重新取得目录或档案, 或者以 svn revert file_or_dir, 回存消失的档案.
~ file_or_dir
目录或档案 file_or_dir 在档案库里是一种对象, 但是实际在工作复本中又是另一种. 举个例子, Subversion 可能在档案库里有一个档案, 但是你删除了这个档案, 而以原名称建立了一个目录, 但是都没有使用 svn delete 或 svn add 命令来处理.
C file
file_or_dir 处于冲突的状态. 也就是说, 在更新时, 来自服务器的更新与工作复本中的本地更动, 有重叠的部份. 在送交更动回档案库之前, 你必须先解决这个这个冲突.