如何处理转换为 Mercurial 的存储库上的 Git 子模块

发布于 2024-10-31 04:38:15 字数 480 浏览 6 评论 0原文

事情是这样的:

$ cat .gitmodules 
[submodule "utils/external/firepython"]
    path = utils/external/firepython
    url = git://github.com/darwin/firepython.git
[submodule "utils/external/textile"]
    path = utils/external/textile
    url = git://github.com/jsamsa/python-textile.git

虽然这仍然是一个 Git 存储库,但我需要运行 git submodule init ,之后一些神奇的事情发生了。由于我现在已将存储库转换为 Mercurial(使用 hgext.git 扩展),我不知道该怎么做。是否有等效的流程(我的 Mercurial 存储库中需要这 2 个 Git 模块)?

Here goes:

$ cat .gitmodules 
[submodule "utils/external/firepython"]
    path = utils/external/firepython
    url = git://github.com/darwin/firepython.git
[submodule "utils/external/textile"]
    path = utils/external/textile
    url = git://github.com/jsamsa/python-textile.git

While this was still a Git repo, I needed to run git submodule init, after which some magic happens. Since I've now converted the repo to Mercurial (using hgext.git extension), I don't know what to do. Is there an equivalent process (I need those 2 Git modules in my Mercurial repo)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哭了丶谁疼 2024-11-07 04:38:15

Mercurial 支持不同类型的子存储库:Mercurial、Subversion 和 Git。因此,您可以使用 和 创建一个 .hgsub 文件

utils/external/firepython = [git]git://github.com/darwin/firepython.git
utils/external/textile    = [git]git://github.com/jsamsa/python-textile.git

,该文件将在克隆 Mercurial 存储库时通知 Mercurial 克隆您的 Git 存储库。您第一次需要自己制作 Git 克隆,或者从磁盘上的其他位置复制它们:

$ git clone git://github.com/darwin/firepython.git utils/external/firepython
$ git clone git://github.com/jsamsa/python-textile.git utils/external/textile
$ hg add .hgsub
$ hg commit -m 'Added Git subrepositories'

然后您会注意到 Mercurial 已将 .hgsubstate 文件添加到您的存储库,其中存储有关Git 子存储库。需要此文件,以便当您创建新的 Mercurial 克隆时,Mercurial 知道要从子存储库中签出哪个版本。

我的一位同事编写了一个子存储库指南,您可能会觉得有用。

Mercurial supports subrepositories of different kinds: Mercurial, Subversion, and Git. So you can create a .hgsub file with

utils/external/firepython = [git]git://github.com/darwin/firepython.git
utils/external/textile    = [git]git://github.com/jsamsa/python-textile.git

and that will inform Mercurial to make a clone of your Git repositories when the Mercurial repository is cloned. You need to make the Git clones yourself the first time, or copy them from somewhere else on your disk:

$ git clone git://github.com/darwin/firepython.git utils/external/firepython
$ git clone git://github.com/jsamsa/python-textile.git utils/external/textile
$ hg add .hgsub
$ hg commit -m 'Added Git subrepositories'

You will then note that Mercurial has added a .hgsubstate file to your repository where it stores information about the Git subrepositories. This file is needed so that Mercurial knows which revision to checkout from your subrepositories when you make a new Mercurial clone.

A colleague of mine has written a subrepository guide that you might find useful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文