Subversion中的状态"S"

Mic*_*cki 78 svn status switch-statement

在某些时候,我工作副本中的所有文件都标有"S"符号,如下所示:

$ svn st
M    S   AclController.php
     S   InstallationController.php
     S   CustomerController.php
     S   RedirController.php
     S   IndexController.php
     S   LoginController.php
     S   OrderController.php
     S   ProductController.php
     S   SelfInstallController.php
     S   SelfcareController.php
Run Code Online (Sandbox Code Playgroud)

有趣的是,它只发生在这个特定的工作副本中 - 当我将项目签出到新目录时,它不会显示"S"标记.

如何摆脱这个烦人的"S"符号?它显着降低了WC状态的清晰度.

更新:我使用标准svn switch语法不时切换.直到最近才出现这个"S"符号.用于切换的命令是:

svn switch svn+ssh://xxxxxx/subversion/xxxxxxx/releases/1.0.16 .
Run Code Online (Sandbox Code Playgroud)

有什么办法可以清除"S"旗吗?

And*_*ett 75

这意味着文件来自subversion存储库中的不同位置,而不是包含它们的目录.解决方案是将整个工作副本切换到同一位置.有关如何调用命令的详细信息,请参阅subversion手册中的两个 部分.

  • 我已经看到,当"svn switch"命令被某种类型的冲突中断时,例如您正在切换到具有未提交的本地文件的存储库版本的分支时,也会发生这种情况.跳出svn来修复它会使整个工作副本不完全切换.解决问题然后重新执行switch命令对我有用. (34认同)
  • 我有一个错误 - E210002:网络连接意外关闭.重新执行switch命令似乎解决了问题并且"S"状态消失了. (4认同)
  • Kevin Sadler实际上提供了解决方案,而不只是描述问题.+1 (2认同)

Ber*_*ben 11

如果你在目录本身上调用'svn info'并在其中一个(其中一个)文件中调用两个不同的URL.

如果文件/目录的URL与父项的URL后跟文件名称不匹配,则会获得"S"状态.

你可以发布父节点和其中一个子节点的URL吗?(在适当的地方匿名URL)


sgl*_*ard 8

从trunk(r100)切换到某个分支(r50)时,我处于' S '状态.我收到了错误:

svn: Failed to add file 'web/.htaccess': an unversioned file of the same name already exists
Run Code Online (Sandbox Code Playgroud)

所有web /的子目录都被标记为' S '.

原因:我删除了.htaccess到svn:忽略它(r100),然后又创建了它(无版本并被忽略).分支(r50)在回购中仍然有web/.htaccess.

解决方案 :

mv web/.htaccess ../../
svn switch back to trunk
svn switch to branch again
Run Code Online (Sandbox Code Playgroud)

一切安好.


Eli*_*Eli 6

我在成功提交到SVN的目录中遇到此问题.我的解决方案是在本地擦除然后更新.我看不出任何差异,但.svn文件因任何原因而被修复(不再是S).


小智 5

如果有人迟到寻找答案(上面已正确说明),我相信这种情况的可能原因是父目录上的“svn switch”失败(就像本地未提交文件的情况一样)相同的名称,并且没有 --force 选项),使失败后的所有文件“未切换”。

这就是为什么(假设最初的问题后来得到纠正)同一父目录上的后续“svn switch”确实会将剩余的未切换文件切换到新的存储库路径。


ahn*_*cad 5

这通常是由切换分支时的中断引起的。

切换到不同的分支,然后切换回您真正想要的分支。

svn switch some_other_branch_url

svn switch desired_branch_url