SVN st:这些状态意味着什么?

时间:2013-02-22 20:43:31

标签: svn

在我将一个主干合并到我的分支中以获得最新的更改后,我将我的分支合并到主干中。然后做了一个snv st,这是输出的一部分让我感到困惑:

R  +    path/to/dirA
M      path/to/dirB

我也了解了我添加的目录的“A”状态。但只有上面的状态,我不明白,特别是没有对这些目录进行任何更改。当我在其中一个目录上执行svn diff时,我得到了Property changes on: path/to/dirA

1 个答案:

答案 0 :(得分:12)

svn help status实际上非常好。

我会粘贴相关的部分:

First column: Says if item was added, deleted, or otherwise changed
  ' ' no modifications
  'A' Added
  'C' Conflicted
  'D' Deleted
  'I' Ignored
  'M' Modified
  'R' Replaced
  'X' an unversioned directory created by an externals definition
  '?' item is not under version control
  '!' item is missing (removed by non-svn command) or incomplete
  '~' versioned item obstructed by some item of a different kind

Second column: Modifications of a file's or directory's properties
  ' ' no modifications
  'C' Conflicted
  'M' Modified

Fourth column: Scheduled commit will contain addition-with-history
  ' ' no history scheduled with commit
  '+' history scheduled with commit

Seventh column: Whether the item is the victim of a tree conflict
  ' ' normal
  'C' tree-Conflicted

所以第一个目录被替换为副本(或移动)。 E.G。

svn rm path/to/dirA
svn cp path/to/someOtherDir path/to/dirA

第二个可能是属性修改,因为它是一个目录,并且目录在第一列中不能有M,因为这意味着对文本的修改。看起来在开头有一个缺少的列,可能是一个空格。

svn diff不是很擅长显示树更改,因为它默认输出unidiff,但没有提供指定树更改的方法。但是svn diff --git做得更好,因为git格式确实提供了指定树的更改。

在合并后给出你的问题,我猜你在想这些是否是成功的合并。使用合并查找的内容是冲突,它们将在第一列,第二列或第七列中显示为C.第一列是文本冲突,第二列是属性冲突,第七列是树冲突。

SVN 1.8发布后,还会在树状态修改状态下显示注释状态,说明节点来自哪里或者如果它是移动的一部分。