我目前是 SVN 用户,正在考虑将我的项目转移到 git。
我使用一个 SVN 存储库来保存我创建的所有项目。我的结构是这样的:
/
/group1
/subgroup1
/project1
/branches
...
/tags
...
/trunk
...
/project2
...
/subgroup2
/project3
...
/project4
...
/group2
/subgroup3
...
/subgroup4
...
/lib
/lib1
/lib2
/lib3
正如你所看到的,我将我的项目分组并/lib
包含项目之间共享的库。
我选择这种排序结构是因为:
- 我学习使用 SVN 的公司也使用了类似的 repo 结构。
- 让我有一个
svnserve
在我的机器上作为服务/守护进程运行,所有项目都托管在它上面(我不喜欢文件路径方法)。
现在……说到重点了。我想知道:
如果我要迁移到 git,这种工作流程将如何运作?
具体来说:
- 将 repo 树迁移到 git 会很简单吗?
- 假设每个项目都需要单独的存储库*,我如何能够通过以下方式为它们提供服务(理想情况下以类似的方式分组)
svnserve
相当于 git。
*)我读过有关 git 的内容,我知道情况确实如此,但我想与有经验的人仔细检查。
在 Git 中,最好将每个项目放在自己的存储库中,如果需要,将库放在另一个存储库中,并在每个项目中用作子模块(相当于 svn externals)。
这是因为在 Git 中,存储库是一个比 SVN 轻得多的概念,而且更重要的是,无法在存储库中单独克隆单个文件夹(不要与稀疏签出混淆),就像您能够签出和处理 SVN 中的各个文件夹。因此,如果您将所有项目都放在一个存储库中,则必须将它们全部克隆。
使用 smart-http、git 守护进程和 ssh 提供 Git 存储库服务非常简单。还有Gitolite https://github.com/sitaramc/gitolite用于管理多个存储库(包括授权和身份验证)。阅读有关 ProFit 的链接章节,了解如何提供 Git 存储库 -http://progit.org/book/ch4-2.html http://progit.org/book/ch4-2.html
进行分组时,您可以根据分组结构将存储库放入文件夹中,并使用智能 http 方法进行服务,其中存储库 url 将类似于您在 SVN 中使用的 url,所有项目似乎都是在分组等下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)