2010-02-26 78 views
0

我有一个存储在SVN存储库中的网站。我被要求彻底改写它,我已经完成了它尚未受版本控制。我应该将全新的项目重写版本导入并合并到现有的SVN存储库中吗?

我应该将新版本合并到网站的现有存储库中吗?

由于它是一个全新的版本,它具有与存储在存储库中的现有站点不同的文件和目录结构。我可以想象这是尝试合并时的一个问题。

我询问合并的唯一原因是因为将项目的所有历史记录保存在存储库中不是一个好习惯吗?

关于评论

人们似乎认为我已经错过了点,但我可以告诉你,我没有。我创建了一个全新的站点,它在代码,目录结构等方面没有什么不同。我决定从一个空目录(干净的画布)开始处理这个项目,然后在项目结束时导入到存储库中。

+0

我强烈建议您查看Michael Feathers的“使用遗留代码有效地工作”。 – 2010-02-26 16:41:52

回答

3

如果您已经在不使用版本控制的情况下重新编写它,我认为您有点错过了这一点。

你可以做到这一点的一种可能方式是分支原始版本,使用该分支递增地提交更改,然后在完成时合并回主干。

现在你已经完成了它,你可能最好把它作为一个不同的版本来维护。

+0

我决定不使用现有的存储库,因为代码是一场灾难。我无法通过修改现有代码来完成我所需的更改。这不仅仅是对现有文件进行更改,它是一个全新的网站。 – Camsoft 2010-02-26 16:31:22

+0

@Camsoft在这种情况下,我将它从现在开始视为一个完全不同的项目。如果原稿处于这样糟糕的状态,那么我无法想象在这种情况下历史会有用。 – Martin 2010-02-26 16:41:11

+7

您仍然错过了这样一个观点:您为什么不在版本控制下进行*开发*,而不是等到完成之后才将其添加到SVN中?即使你是从一个干净的石板开始。 – 2010-02-26 16:41:59

0

你可能已经从重写开始的原始回购工作,这不会是一个问题。

你可以尝试合并,但它可能会非常困难。你也可以为新版本创建一个新的回购。

0

我想这个答案真的取决于SVN如何用于当前网站。如果将SVN用作处理网站更新和部署的方式,并且很难改变环境的配置方式,那么您可能需要尝试合并,或者进行一次提交,即删除当前内容并添加内容。

在我看来,一个更好的方法是将代码导入新的回购库,或者至少在现有回购库中有不同的分支,然后重新定位网站以从新的位置取而不是现有的回收站。

1

创建一个新的存储库。如果重写的应用程序不利用任何原始代码库,则尝试合并它们没有任何好处。创建一个新的回购协议,创建新的构建和部署脚本,并且将旧的回退。把它作为一个经验教训粉碎,并在下一次建立新的版本。

+0

当旧的代码库没有被保存时,我怎样才能从原始版本创建新版本? – Camsoft 2010-02-26 16:38:37

1

正如其他人所说,理想情况下,新工作将在源代码控制下完成。即使是单个开发人员也可以从恢复,分支和排除外部的能力中受益。

继续,我会将旧项目的主干移动到标记中,然后将新项目的当前状态移动到主干中。这将保留原始项目的修订历史记录,并将新项目放入应该的位置。

相关问题