如何为项目构建git仓库?


9

我正在为Drupal开发内容同步模块。有一个服务器模块,它位于网站上,并通过Web服务公开内容。还有一个客户端模块,它位于不同的站点上,并定期提取和导入内容。

服务器在Drupal 6上创建。客户端在Drupal 7上创建。将需要Druapl 7版本的服务器。明年发布后,客户端和服务器都需要Drupal 8版本。

我对git和源代码控制还很陌生,所以我想知道设置git存储库的最佳方法是什么?如果是每个实例都有一个单独的存储库,即:

Drupal 6 server = 1 repository
Drupal 6 client = 1 repository
Drupal 7 server = 1 repository
Drupal 7 client = 1 repository
etc 

还是有一个服务器存储库和一个客户端存储库,然后为每个Drupal版本创建分支会更有意义?

目前,我有2个存储库-一个用于客户端,另一个用于服务器。

Answers:


7

除非项目真的很大,否则我会选择带有服务器和客户端子目录的单个存储库,并为每个版本创建一个分支。如果您想同时访问多个版本,您仍然可以拥有存储库的多个副本。

通过维护多个存储库,您将使转移更改变得比必要的困难(重新存储基础比应用补丁更容易)。在(不太可能)的情况下,不会对多个版本进行更改,您仍然不会丢失任何信息...

此外,您始终可以切换到多个存储库:只需克隆存储库并删除不需要的分支即可。反之则更困难。

仅当服务器和客户端不共享任何内容或代码非常庞大时,我才会使用多个存储库。


这是我要采用的方式,因为Drupal将不同版本存储为分支。我也想+1,但需要15次!
littledynamo 2012年

4

我已经看到并使用了这种变体。所有内容都放在一个文件夹中,该文件夹带有用于服务器和客户端的子文件夹,或者每个都有一个仓库。对于项目的每个主要部分,我都希望使用单个仓库。

在大版本更改的情况下,我也将只创建新的存储库。绝对没有它们的不同分支。尽管分支对于实现新功能(也许是一个永久性的部署分支)具有强大的功能,但我始终避免让它们太多长时间并行运行。您将始终需要维护它们(在master分支更改时进行重新设置等),因此,使基本结构尽可能简单。(以我的拙见,拥有额外的回购协议比在不同州的分支机构更轻松地痛苦)。尤其是如果客户端和服务器不共享太多代码。

我对Drupal以及版本之间的差异了解不多。因此,我偏爱其他存储库的观点更多是基于我对Rails的经验。在不同版本之间,有时在文件命名方式或文件夹结构(例如资产管道)等方面存在很大差异,这使得创建新存储库更加舒适。Drupal(或任何其他框架)之间的差异可能较小,那么可以在现有仓库中继续进行就可以了。


1
谢谢。这很有趣,因为我刚刚发现Drupal Core模块将单独的版本存储为分支。我认为模仿这种结构对我来说很有意义。我会+1,但需要15次!
littledynamo 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.