2011-01-28 136 views
2

我的同事和我一直在为我们的项目使用SVN。过去几周我们一直在同一个分支工作,根据需要提交和合并文件。三天前,我们的SVN服务器死亡,我们丢失了所有的数据。我(愚蠢地)没有定期备份到一台单独的服务器,所以我拥有的最好的备份是200个版本,落后于我们。数据丢失后恢复SVN

有什么办法让我们的签出副本全部正确合并,并返回到SVN?

我不在乎修订历史。我只想确保我拥有的所有代码都与我的同事的代码正确合并。

+1

我不是拖动 - 你应该转移到混帐。这种类型的问题并不存在,您也不需要定期备份,因为在项目上工作的每个人都已经为您备份了该项目。 – xaxxon 2011-01-28 19:56:11

+0

我经常听说,我相信你是对的。我从来没有解决它。这件事可能是最后一根稻草。 – 2011-01-28 20:26:34

回答

2

第一步,我会做的是计算机抱着旧的工作拷贝版本上执行COMAND svn diff。它创建一个包含当前版本关于上次签出的更改的diff文件。

第二次复制检出的新版本的计算机上的签出结构,并将其从崩溃的存储库中断开(删除所有.svn元数据目录)。之后将其检入新的清洁存储库。

现在取先前创建的差异文件,并将其应用于刚刚签入的工作副本。希望你只会得到一些较小的冲突,这些冲突可以由你或你的同事轻易解决。如果解决所有问题,请检查它。

注意:本说明的目标是创建一个全新的存储库。没有考虑过时的备份。

1

这应有助于:

svnadmin recover <svn path> 

OR

svnadmin verify <svn path>