0

我正在使用 TortoiseSVN 来管理 C# 应用程序的版本控制。突然我的svn服务器宕机了。我有两个不同版本的代码。如何合并它们?

4

2 回答 2

2

等到服务器恢复。

如果你真的需要这样做,那么:1

svn diff working_copy_1 > diff.diff
cd working_copy_2
patch -p0 < diff.diff

但是,这有问题:

  • 当您最终将其提交回 SVN 时,它将被视为一次提交(将无法分离出两个变更集)。
  • 如果两个工作副本具有不同的基本修订版,那么上述合并将导致严重的冲突,或者会错过某些更改。


1. 这假设您在 Linux 或类似系统上工作(我猜您不是,因为您使用的是 TortoiseSVN!)我不知道 Windows 等价物patch是什么,我会让您自己弄清楚.

于 2012-06-17T15:07:04.290 回答
0

我假设您已经得到了答案,并且可能对您没有用,但发布此信息只是为了提供信息,以防其他人需要查看...

如果我们在一个大型团队中工作,许多人每天都使用 SVN 服务器进行提交,更新他们将在团队中使用的更改,突然有一天我们发现我们的 SVN 服务器已关闭。

它只是给我们带来了很多困难,因为我们需要合并每一个变化,这是一种混乱的情况。

我们被卡住的原因:- 因为 SVN 是一种集中形式的版本控制系统在此处输入图像描述

每台机器都连接到中央服务器。现在,如果我们的中央服务器出现故障,那么一切都会陷入困境。在此处输入图像描述

相同的解决方案: -

使用分布式版本控制系统,如 GIT、Mercurial、Bazaar 等。

有用的原因:-

与每台机器只连接到中央服务器的集中式系统不同,在分布式版本控制系统中,每台机器也可以相互连接。它基本上是一种本地存储库,它本身是在个人机器上形成的。

在此处输入图像描述

我们在这里的优势:-

如果我们的中央服务器出现故障,则 Client1 所做的更改可以由 Client2 通过连接到 Client1 等来更新。

在此处输入图像描述

所以现在我们不必等待我们的中央服务器可用。我们可以继续我们的正常工作,一旦我们的服务器可用,就可以将代码提交到它上面。

于 2012-06-18T14:22:49.217 回答