强制SVN签出命令覆盖当前文件

我将一个现有的网站添加到SVN。

这些文件已经存在于Web服务器上,并且现在存储库中存在相同的副本( – configuration文件)。

我想将networking服务器目录转换成SVN工作副本,但是当我运行:

svn checkout http://path.to/svn/repo/httpdocs . 

我得到的错误:

svn:无法添加文件“':同名的对象已经存在

如何让SVN重写那些内容相同的文件?

试试--force选项。 svn help checkout提供了详细信息。

svn checkout --force svn://repo website.dir

然后

svn revert -R website.dir

将检查在website.dir现有的文件的顶部,但不覆盖它们。 然后回复将覆盖他们。 这样你就不需要下载网站来完成它。

这可以很容易地完成。 我所做的只是将现有的目录,而不是在版本控制下,移动到一个临时目录。 然后我将SVN版本检出到正确的目录名称,将临时目录中的文件复制到SVN目录下,并将SVN目录中的文件还原。 如果这没有意义,下面是一个例子:

 /usr/local/www mv www temp_www svn co http://www.yourrepo.com/therepo www cp -pR ./temp_www/* ./www svn revert -R ./www/* svn update 

我希望这有帮助,不知道为什么只是一个简单的SVN更新没有改变文件回来?

我没有1.5可用,因为我不是在控制电脑。 导致我一个问题的文件恰好是lib目录中的一个.jar文件。 这是我做了什么来解决这个问题:

 rm -rf lib svn up 

这是build立在奈德的答案上。 那就是:我刚刚删除了导致问题的子目录,而不是整个存储库。

从存储old_crufty到一个新的目录,然后将旧的重命名为old_crufty ,新的重命名为my_real_webserver_directory ,你很好。

如果你的意图是每个文件都在SVN中,那么这是testing你的理论的好方法。 如果你的意图是某些文件不在SVN中,那么就使用Brian的复制/粘贴技术。