2013-02-09 35 views
2

我正在与一个有多个版本的软件组的团队合作。从无版本控制转换

该软件具有许多展开时 - 我们的每一次客户端抛出一个新的“事件”,我们部署了他们一个新的Rails应用程序有它自己的数据库,我们的服务器上进行。

到现在为止,我们刚刚保持了各个版本的“大师”,和符号链接每个安装使用的软件版本到主版本。

这使我们能够对主服务器进行更改,并从该主服务器更新(如果它是全局所需的错误修复程序或修补程序)中部署5次安装,同时还允许我们偶尔抛出每个安装功能这可能只是在某个事件安装中需要或期望的。

什么是管理和维护这样的系统中的一些有效的方法?

如何使用新版本将所有这些旧版本的软件加载到存储库中?

我在想,我可以这样做: 创建一个名为“V1.0” 删除所有文件 文件从应用程序的版本,我想标记 提交这些更改移动新的分支 ??一些git命令,允许我将该分支转换为master上的标签。

这是纯粹的猜想,我会测试这个,以及我从那些更有经验的git获得的想法。

最后,如果有你有这种类型的转换的任何一般提示,请分享。

+0

从一个部署到另一个部署有什么不同?次要功能?巨大的定制?只有不同的数据库? – ctcherry 2013-02-09 02:18:33

+0

只有小功能,没什么大的。错误修复通常针对每次安装(每个版本都安装多次) – Squadrons 2013-02-09 03:11:28

回答

2

根据我的经验,管理多个分支树的痛苦是相当高的。相反,我会强烈考虑将不同部署的不同特性构建到单一源代码树中,并且拥有一个非常好的配置/功能标记系统,以根据每个实例中的需求定制安装。你甚至可以把整个事情变成一个单一的应用程序,而不是有多个部署,每个部署都变成了一个“账户”,也就是多租户应用程序。

+0

Upvoted让我看看多租户。虽然这不会在我的组织中发挥作用,因为它可能会做太多的工作和改变。只是让人们相信版本管理是一个优秀的东西一直非常困难。 – Squadrons 2013-02-09 16:20:25

+1

我感觉对你来说,获得那些不太“明白”的组织所实施的那些变革是一个非常艰难的过程。继续打好战斗! – ctcherry 2013-02-09 21:12:36

1

如果每个安装功能,可以不配置,使每个安装分公司和重订其需要升级时,要掌握。请参阅http://git-scm.com/book/en/Git-Branching-Rebasing(从开头阅读该书)。

要导入历史记录:我希望你的每个版本都在它自己的目录中。然后在第一个目录中初始化Git存储库,然后从每个版本目录创建符号链接到这个新的first/.git。现在在每个版本目录中输入git add . && git commit -a。之后,您将创建所有提交,因此删除符号链接并将.git目录移动到新(空)目录并键入git reset --hard(它会将该空目录的维度恢复到最新版本)。

您将要修改的日期和作者姓名,而这样做git commit。请参阅手册(git commit --help)。