我已经使用快速导出将Mercurial存储库转换为Git。但是Git存储库非常庞大:Git为18GB,而Mercurial为3.4GB。我的所有清理步骤都没有帮助。我的Mercurial存储库由一个每天更新的65MB文件(SQLite格式的Anki闪存卡)控制。它的历史已经增长到2.9GB,在.hg/store/data下。我希望Git能够更好地压缩历史记录,但我一直无法将存储库缩小到18GB以下!我已经尝试过gitprune、gitgc和其他方法,但都无济于事。我什至尝试压缩.git文件夹,结果仍然正好是18GB。我错过了什么吗?更新:我尝试了Bazaar(bzr),它将我的存储库压
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion在ubuntu下有没有等同于gitguiformercurial的工具?
许多关于dvcs系统的文章声称卓越的分支和merge支持是从svn迁移到dvcs系统的一个原因。这些系统究竟如何以不同的方式进行分支和merge以使其变得更好? 最佳答案 从历史上看,git和svn中merge跟踪的区别是:git有merge跟踪,而在1.5版本之前,svn没有。完全没有。如果您想进行merge,则必须始终准确指定要merge的更改,并且如果您将一个分支多次merge到另一个分支,则必须手动跟踪哪些修订已merge,哪些未merge,并仅手动选择尚未merge的更改,以避免冲突。如果您挑选了任何更改,祝您好运。从1.
Mercurial有一种特定于领域的语言,称为revsets允许用户指定修订集。例如,您可能想要列出尚未merge到分支default中的补丁:hglog-r"all()-ancestors('default')"作为一个更复杂的例子,上面的链接给出了在标记为1.3的修订版和标记为1.5的修订版之间列出变更集的示例,其中提到“错误”并影响目录hgext中的文件:hglog-r"1.3::1.5andkeyword(bug)andfile('hgext/*')"revset语言非常丰富,允许根据日期、用户名、提交消息、提交是否存在于特定远程位置等来选择变更集。git是否有等效的机制来查询
这是一个非常深奥的问题,所以从一开始就在这里澄清一下:我不是在谈论从svn到git、git到mercurial或mercurial到git的转换。我说的是一种复杂的情况,这种情况是由利用“跨系统”插件引起的,这些插件允许Mercurial在某种程度上与git和SVN进行互操作。一段时间以来,我一直使用Mercurial的hg-subversion插件来“跟踪”code.google.com上的上游SVN存储库。多亏了这个插件,Mercurial认为存储库是“相关的”,并且能够只提取自从我上次从存储库中提取以来发生的更改。这允许我维护我自己的私有(private)Mercurial存储库
是否存在任何性能基准?我希望创建一个存储库并提交/推送运行数个深度的遗留代码。是不是更快/占地面积等?如果这太含糊,我深表歉意...... 最佳答案 您不会因为性能而在git和mercurial之间做出选择。他们都很好。只做您会做的事情并进行衡量。您可能会在第一次导入时获得最大的性能变化——这无关紧要。继续挖掘。就空间而言,git肯定会胜出的一个地方是,如果您在其生命周期中的许多不同路径中拥有相同的内容。也就是说,如果您移动了数GB的文件。git的模型比hg的支持更好。这对您来说可能无关紧要。在这两种情况下,您都应该考虑您的几千兆存
首先声明一下,我不是一个专业的程序员,而是一个有需求并且必须学习的工程师。我总是一个人工作,所以只有我和我的七个split人格……我们作为一个团队工作得很好:)我的大部分工作都是用C/Fortran/Matlab完成的,到目前为止我一直在学习git来管理这一切。然而,虽然我没有遇到无法解决的问题,但我从来没有对它感到“那么”高兴……对于我做不到的一切,我必须查阅一本书。而且,一段时间以来,我一直听到很多关于Mercurial的好消息。现在,我的一位同事将不得不和我一起完成一个项目(我几乎为他感到难过),他开始学习Mercurial(说他更喜欢它),而我自己也在考虑转换。我们几乎完全在W
我正在寻找MacOSX上引人注目的Git和Mercurial客户端。到目前为止,我发现的大多数客户端都不如我预期的那样引人注目。一些客户端甚至使用Ruby或Tcl/Tk进行编程,IMO在操作系统集成方面不是优秀的OSX公民。我有类似于Versions.app或Cornetstone的客户端,它们是仅限Subversion的客户端。也许有人为我提供了内幕消息。 最佳答案 对于Mercurial,你应该看看MacHg.它是免费和开源的。它使用适用于Mac的nativeGUI工具包,并附带了自己的捆绑版本的Mercurial。它非常精致:
我一直在想,对于.NET开发人员来说,什么是更好的DVCS?通过阅读各种信息,听起来Mercurial在Windows上运行得更好,但其他信息声称Git在提供高质量的Windows和VisualStudio工具方面已经catch并超过了Mercurial。有没有人知道在.NET开发环境中尝试这两种方法的最新信息或经验? 最佳答案 我使用Mercurial进行.NET开发已经一年多了,效果很好。我承认我不使用任何花哨的工具(资源管理器附加组件和VisualStudio工具),但它们是可用的(例如TortoiseHg)。我发现使用命令行
我通常使用TortoiseSVN,但我一直在研究Mercurial,因为它是一个分布式版本控制系统。在这两个系统中,我正在寻找的是一种工具,可以让我只选择文件的一部分并提交它们。如果我现在想这样做,我必须将文件复制到一个临时版本,并只保留我想在当前版本中提交的更改,然后在提交后再次将临时版本复制到当前版本。这真是太麻烦了,程序应该能够为我做这件事。我听说Git支持这个,请告诉我这是否正确。 最佳答案 Mercurial可以用record做到这一点扩展名。它会提示您输入每个文件和每个diffhunk。例如:%hgrecorddiff-