Tag: mercurial

将Mercurial项目转换为Git

我需要将一个mercurial项目转换成一个git项目,但我想保持提交历史不变。 我目前的解决scheme是只删除HM相关的文件,然后git init &&手动添加我需要的文件,但这不会保留历史。 有没有解决办法?

如何使用Mercurial保存用户名和密码?

我在一个个人项目中使用了Mercurial,每次我想把一些东西推给服务器时,我一直在input用户名和密码。 我尝试将以下内容添加到我的主目录中的.hgrc文件,但似乎完全忽略了它。 [ui] username = MY_USER_NAME password = MY_PASSWORD 如何以正确的方式做到这一点?

Mercurial – 恢复到旧版本并从那里继续

我在本地使用Mercurial进行项目(这是唯一一个没有任何其他地方推/拉的回购)。 迄今为止,它有一个线性的历史。 然而,目前我正在做的事情,我现在已经意识到是一个可怕的方法,我想回到这个版本之前,我开始实施它不同的方式。 我对Mercurial中的branch / revert / update -C命令有点困惑。 基本上我想恢复到版本38(目前在45),并有我的下一个承诺有38作为父母,从那里进行。 我不在乎修订版39-45是否永远丢失,或者最终落入他们自己的死胡同里。 我需要哪个命令/一组命令?

将Unicode字符打印到PowerShell提示符

我试图设置Mercurial来打印出当前使用PowerShell的存储库的状态。 到目前为止,我有一切工作,但我希望能够打印'☿'到当我在一个存储库的提示。 不幸的是,似乎PowerShell在打印Unicode字符时遇到了一些问题。 在接受的答案是否有一个Windows命令shell将显示Unicode字符? build议Windows 7(我正在使用)附带的PowerShell v2将能够打印Unicode字符,但我似乎无法得到它的工作。 同样,使用chcp 65001的下一个答案也不起作用。 这仍然是PowerShell的一个缺陷,还是我错过了一些明显的东西?

Mercurial Subrepos – 你如何创build它们,它们是如何工作的?

情况 我有两个.NET解决scheme( Foo和Bar )和一个包含ProjectA,ProjectB和ProjectC的公共库。 Foo和Bar引用一个或多个库项目,但库项目不在Foo和Bar Solution文件夹中。 目录结构: — My Documents* — Development — Libraries — ProjectA — ProjectB — ProjectC — Projects — Foo — Solution — .hg — .hgignore — Foo { Project Folder } — FooTests { Project Folder } — Foo.sln { References ProjectA } — Foo.suo — Bar — Solution — […]

hg忘记和hg remove有什么区别?

我希望mercurial从存储库的当前状态中删除几个文件。 不过,我希望这些文件在之前的历史中存在。 如何forget和remove不同,他们可以做我想要的?

借助Mercurial,在推送之前如何“压缩”一系列变更集合?

比方说,我有一个本地和远程Mercurial存储库。 现在,我开始研究一个function。 我工作,当我认为完成时,我提交变更集。 再testing一下,我发现我可以通过在代码中调整一些东西来进一步改进这个function。 我做了改变和承诺。 20分钟后,我发现这个新function存在一个错误,所以我修复了这个错误,并提交了这个错误。 我现在有3个变更集,我真的想推送到远程存储库作为一个变更集,例如消息“实现functionX”。 我怎样才能做到这一点,没有太多的麻烦? 我相信我可以用补丁来做,但是看起来好像很多工作。

将遗留代码从CVS转移到分布式存储库(例如git或mercurial)。 初始库devise需要的build议

介绍和背景 我们正在改变源代码pipe理系统,我们正在评估git和mercurial。 总的代码基础是大约600万行代码,所以不是很大,也不是很小。 首先让我们先简单介绍一下当前版本库devise的外观。 我们有一个完整的代码库的基础文件夹,在这个层次下面有几个不同的上下文中使用的所有sorting模块。 例如,“dllproject1”和“dllproject2”可以看作是完全独立的项目。 我们正在开发的软件是我们所说的configuration器,可以根据不同的客户需求进行无尽的定制。 总的来说,我们可能有50个不同的版本。 但是,他们有一个共同点。 它们都共享一些强制模块(mandatory_module1 ..)。 这些文件夹基本上包含内核/核心代码和通用语言资源等。所有定制可以是其他模块(module1 ..)之间的任意组合。 由于我们目前正在使用CVS,我们在CVSROOT / modules文件中添加了别名。 他们可能看起来像这样: core –a mandatory_module1 mandatory_module2 mandatory_module3 project_x –a module1 module3 module5 core 所以如果有人决定在project_x上工作,他/她可以通过以下方式快速检出所需的模块: base>cvs co project_x 问题 直观地说,将基础文件夹作为单个存储库是错误的。 作为程序员,您应该能够检查出当前正在使用的项目所需的确切代码子集。 你对此有什么想法? 另一方面,将这些模块中的每一个都放在单独的存储库中感觉更为正确。 但是这使程序员难以检查他们需要的模块。 你应该可以通过一个命令来完成这个任务。 所以我的问题是:在git / mercurial中定义别名是否有类似的方法? 任何其他问题,build议,指针,非常欢迎! PS。 我已经search了类似的问题,但并不觉得其中的任何一个100%适用于我的情况。

Visual Studio 2008项目的Mercurial .hgignore

使用Visual Studio 2008时,什么是.hgignore文件的良好设置? 我主要是自己开发,只是偶尔我克隆存储库给其他人来处理它。 我正在考虑obj文件夹,.suo,.sln,.user文件等。他们可以只是被包括或有我不应该包括的文件? 谢谢! PS:目前我做了以下操作:忽略所有.pdb文件和所有obj文件夹。 # regexp syntax. syntax: glob *.pdb syntax: regexp /obj/

为什么Mercurial中的分支和合并比Subversion更容易?

在Subversion或CVS中处理多个合并到分支机构中仅仅是必须经历的事情之一。 在Mercurial(也可能是其他任何分布式系统)中跟踪分支和合并是非常容易的,但我不知道为什么。 其他人知道吗? 我的问题源于这样的事实:使用Mercurial你可以采取类似于Subversions / CVS中央仓库的工作实践,一切都将工作得很好。 你可以在同一个分支上进行多次合并,你不需要用提交数字和标签名称的无尽纸屑。 我知道最新版本的Subversion有能力跟踪分支合并,所以你没有得到相同程度的麻烦,但这是一个巨大而重大的发展,它仍然不会做所有的开发团队喜欢它做。 它们的工作方式必须有根本的区别。