SVN奇怪:它是否可能不是我的错

时间:2009-05-26 22:05:36

标签: ruby-on-rails svn working-directory

(我真的不在乎这是不是我的错,而是为什么事情正在发生,当然......)

我在远程服务器上的SVN中有一个rails站点。在我的本地副本上我做了一个开关(svn switch http://whatever/branch。),然后事情完全奇怪,网站不起作用。我最终跟踪它,结果发现部分构建(特别是app / config目录)指向错误的分支。请注意:

  • 我从不切换使用SVN命令行以外的任何内容
  • 我只切换安装的根目录
  • 我总是以root身份切换(sudo -s),我确信在整个树上正确设置了权限(chmod -R 777)

关于工作目录的哪一部分可能最终指向错误位置的任何想法?在我的记忆中,这不是第一次工作目录的某个子指向错误的地方......为什么会发生这种情况?

2 个答案:

答案 0 :(得分:7)

官方Subversion常见问题解答中有关于switch problems的整个部分。它说:

  

在某些情况下   未经修改(也可能被忽略)的项目   在工作副本中,svn switch可以   得到一个错误。开关停止,   离开工作副本   半切换。

他们的建议是只从干净的工作副本切换。

另一件事是Mixed Revision Working Copies

基本上这意味着工作副本中的文件可以(通常是)来自 不同的修订。

以下SVN Red Book对此有何看法(我强调):

  

例如,假设你有一个   工作副本完全在修订版10。   您编辑文件foo.html然后   执行svn提交,创建   存储库中的第15版。后   提交成功,许多新用户   期待工作副本   完全在修订版15,但那是   不是这样!任意数量的变化   可能发生在存储库中   修订版10和15之间   客户对这些变化一无所知   在存储库中,因为你没有   然后运行svn update和svn commit   不会减少新的变化。如果,开   另一方面,svn提交了   自动下载最新的   变化,那么就有可能   将整个工作副本设置为   修订版15-然后我们会破产   “推”和“推”的基本规则   “拉”剩下的单独行动。   因此唯一安全的事情   Subversion客户端可以做的是标记   一个文件-foo.html-作为修订版   15.其余的工作副本仍保留在修订版10中   运行svn update可以是最新的   更改下载,整体   工作副本应标记为修订版15。

答案 1 :(得分:-1)

如果你知道自己在做什么,请原谅我,但听起来你不是。 (或者问题不明确)。如果您从相关目录中包含 svn status 的结果,我们可能会更进一步。

svn switch

(svn help switch)

用于切换存储库,这不应该是常见工作流的一部分。