颠覆“过时”的问题

时间:2009-12-03 23:15:20

标签: svn unix

我正在使用subversion,因此我可以有两个签出,一个用于测试以确保一切正常,另一个用于公共实时站点。我在测试网站上做了一些更改,但也对wordpress安装进行了一些更新。现在我无法在我的实时网站上提交更改。

[phil@sessions public_html]$ svn commit -m "this time, it's personal"
svn: Commit failed (details follow):
svn: Working copy
'/usr/local/apache/sites/nextadvisor_admin/blog/wp-content/plugins' is
missing or not locked

所以我......

[phil@sessions public_html]$svn rm blog/wp-content/plugins --force
[phil@sessions public_html]$svn rm blog/wp-content/plugins --force
[phil@sessions public_html]$svn add blog/wp-content/plugins --force

并重新添加了所有文件,然后我

[phil@sessions public_html]$ svn commit -m "this time really"
Sending        blog/.htaccess
Replacing      blog/wp-content
svn: Commit failed (details follow):
svn: Out of date: '/trunk/blog/wp-content/plugins' in transaction '186-1'

好的,所以当我在网上看到它告诉我做svn更新但我曾尝试过一次,它只是删除了我所有的本地更改,因为我的测试结帐中不存在“blog /”文件夹。

我的问题是,如何在不丢失本地修改的情况下使此提交工作?

更新

当我运行svnupdate时,它会告诉我:

svn:存储库中不存在工作副本路径'blog / wp-content / plugins'

2 个答案:

答案 0 :(得分:4)

  • 将本地修改的文件保存为副本。

  • 执行svn update

  • 将更改的文件复制回“svn update d”版本

  • 执行提交。

答案 1 :(得分:1)

如果事情已经过时,您首先必须先执行svn update才能提交。 svn update不会覆盖任何本地更改的文件。虽然你声称是这种情况,但事实并非如此,因为颠覆不会这样做。

但是,您的工作流程总是会导致问题,因为您总是会反对颠覆设计的方式。每当你发现自己在正常的事件过程中使用--force标志时,这表明你没有使用该工具,而是在与工具作斗争。

对于你想要做的事情,你最好创建一个分支并在分支上做你的开发工作。然后,当您准备好上线时,将dev分支合并到主干上并更新您的实时结账。

此外,您永远不应该在实际网站上进行更改。这就是您的测试网站的用途。实时网站应被视为只读结帐。