在同一目录中有一个Git回购和Mercury


11

不好解释我的问题,

我目前正在使用git在内部安装gitorious。我想开始从Fog Creek测试使用汞的FogBugz和窑炉。我希望至少在短时间内继续使用这两种解决方案进行开发。

有谁知道在同一目录中拥有git和一个软件仓库会带来的长期严重影响。还是有一种更好的方式来保持git和Mercural服务器同步。

香港专业教育学院尝试过它与测试回购,我还没有看到任何问题。

谢谢你的帮助。


1
我认为这不会有太大的问题,因为它们与svn的.svn文件一样都是孤立的。
乔什(Josh K)

Answers:


8

我发现hg-git桥在另一个方向上相当有用(在Github上暴露一些最初使用Mercurial进行源代码控制构建的东西)。基本上,您只要准备好推送到git repo并进行推送,就可以“仅仅”使用mercurial,创建一个将“ master”链接到“ default”的书签。从git进行拉取的工作方式与从远程回购中拉取的方式类似。在这种情况下,您最终不会获得.git + .hg文件,除非本地文件上只有大量的文件,除非最终将其完全迁移到git,在这种情况下,您可能会在新的数据库中进行git clone目录。

对于想要从Mercurial存储库中推/拉的git用户,有一个类似的项目,但是我没有直接的经验。参见https://github.com/offbytwo/git-hg

除了可能会意外地从“其他”源代码控制系统中检入一堆隐藏文件夹之外,我在git repo中执行hg init并没有发现任何真正的问题。使用桥接器,并明确选择何时推送到其他dvcs系统,对我来说似乎并不那么笨拙。


我发现使用SSH可能会碰到hg-git并造成一些误解,并且设置起来很有趣。您可以在同一台计算机上运行两个DVCS客户端,没有问题。实际上,如果您使用一种进行源代码控制,而另一种用于生产(Azure,Appharbor等),则可以很好地工作。
CAD bloke

在.hg文件夹下查看。hg-git会在其中创建一个.git文件夹,除非您在.hgrc / ini文件中指定[git] intree = true为汞。
CAD bloke

9

我在同一项目的同一工作目录中使用了mercurial和git。使用这两个DVCS的好处在于,它们的conf和blob以及树和其他东西都只有一个文件夹(.git / .hg)。

只需将.hg放在.gitignore中(并将.git放在.hgignore中),您将感到无比荣幸。

当然,您在提交时必须将工作加倍,但是我发现这很难解决。

我认为这种设置比使用任何桥接解决方案要可靠得多(因为我对git-svn感到恐惧,所以我不喜欢它们)。


您能否提供有关如何实现此目标的更多信息?我在这里有一个问题stackoverflow.com/questions/14486600/…您似乎已经实现了。任何帮助表示赞赏:)
akdsouza
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.