Subversion在多个工作副本之间合并?

时间:2009-01-20 19:15:13

标签: svn backup recovery

我们已完全丢失了我们的存储库,我们有8位开发人员未经更改。假设无法从备份恢复。

如果一个人可以访问所有工作副本(文件副本或远程共享),是否可以将我们的工作副本中的更改合并到一个工作副本?然后可以将最终工作副本导入新的仓库。

简而言之,您可以在没有服务器的情况下合并两个不同的工作副本吗?

编辑:请不要因为没有备份而poo meo;那部分是我无法控制的。据推测,他们每晚都会得到备份。

跟进:这就是我们所做的:

  1. 从最新的开始 所有开发人员的工作副本。
  2. 将其导入新的仓库。
  3. 使用从最新的工作副本修订版到最旧的版本,只复制已提交更改的文件。
  4. 洗涤 - 漂洗 - 重复6次。 (2个开发者没有未经修改的变更)。
  5. 导出所有旧的工作副本,将其压缩并存储起来,以便在需要时妥善保管。
  6. 将发布管理数据库中的修订更新为现在非常年轻的回购。

7 个答案:

答案 0 :(得分:4)

由于您丢失了存储库(对不起),您也失去了整个历史记录。

你现在所能做的只是从零开始。

  1. 创建新存储库
  2. 创建文件夹结构
  3. 将第一个用户的工作副本导出到新文件夹
  4. 将导出的文件夹导入存储库
  5. 现在所有其他用户都会查看新的工作副本
  6. 所有其他用户现在将其原始工作副本“导出”到新的工作副本
  7. by'export',我的意思是创建工作副本的副本,但不包含隐藏的.svn文件夹。

答案 1 :(得分:1)

这个问题很棘手。 但这就是我要做的。

  1. 创建新存储库。
  2. 创建8个分支和1个主干
  3. 导入开发人员在分支机构上工作。
    • 分支机构1上的开发人员1
    • 分支机构2上的开发人员2
    • 等等
  4. 然后开始从分支1合并到主干。 当你的后备箱里的情况稳定时, 你继续分支2等
  5. 当你完成这项可怕的工作时, 尽早教授开发人员关于签入的信息...... 以及如何使用分支......

    /约翰

答案 2 :(得分:0)

你的问题不在于你丢失了服务器而是你的回购本身。除了重新创建一个新的仓库并仔细分类各种工作副本以进行导入外,我看不到你能做什么。祝你好运。

PS:你没有备份......

PPS:这是一种问题DVCS通过在每个开发人员的沙箱中为大多数人提供完整的回购副本而自然解决。

答案 3 :(得分:0)

最简单的方法是创建自己的服务器,创建测试存储库,在其中添加一个(最稳定的)构建,并一次合并一个工作副本。但是,是的,你失去了所有的历史,因为你丢失了旧的回购。

然后,您可以从该测试中创建主回购。

答案 4 :(得分:0)

我会尝试选择一个工作副本来对新的仓库进行导入,然后使用svn开关重新分配剩余的7个工作副本,可能使用重定位,以使他们相信它是相同的仓库但是重新安置了。只是尝试为丢失的存储库中没有(或尽可能少)结构更改的初始导入选择一个工作副本:例如只是文件编辑。

当然,如果以上操作不起作用,请对工作副本进行大量备份:)

答案 5 :(得分:0)

Subversion将文件的原始版本保留在本地工作副本中。创建一个新的存储库,制作最早的工作副本的副本,还原工作副本的COPY上的更改,然后将该工作副本导入新的存储库。

svn import:http://svnbook.red-bean.com/en/1.0/re12.html

导入后,可以使用svn switch --relocate将其他工作副本重新分配到新存储库,并提交更改。

svn switch --relocate:http://svnbook.red-bean.com/en/1.1/ch04s05.html

答案 6 :(得分:0)

在与最原始工作副本相同的位置创建一个新存储库(这样可以在新存储库中捕获更多历史记录)。

如果它不起作用,请从新存储库的结帐中输入.svn目录。 (例如checkout,并删除除.svn目录之外的所有内容)