Questions tagged «mercurial»

Mercurial是一种快速的开源DVCS(分布式版本控制系统)。


12
rsync根据.gitignore和.hgignore&svn排除:--ignore像--filter =:C
Rsync包含一个漂亮的选项--cvs-exclude,“以与CVS相同的方式忽略文件”,但是CVS已经过时了多年。有什么办法可以使其也排除现代版本控制系统(Git,Mercurial,Subversion)会忽略的文件? 例如,我有很多从GitHub签出的Maven项目。通常,它们.gitignore至少包含一个列表target,即默认的Maven构建目录(可以在顶层或子模块中显示)。由于这些目录的内容完全是一次性的,并且它们可能比源代码大得多,因此在使用rsync进行备份时,我想排除它们。 当然,我可以明确地这样做,--exclude=target/但是这会意外地抑制那些恰好被命名target但不应该被忽略的无关目录。 而且我可以提供磁盘上任何.gitignore,.hgignore或svn:ignore属性中提到的所有文件名和模式的绝对路径的完整列表,但这将是一个庞大的列表,必须通过某种脚本来生成。 由于rsync除了CVS外没有对VCS检出的内置支持,因此是否有将其馈送为其忽略模式的好技巧?还是某种回调系统,可以询问用户脚本是否应包含给定的文件/目录? 更新:--filter=':- .gitignore'LordJavac的建议对于Git --filter=:C似乎和对CVS一样有效,至少在我发现的示例中,尽管尚不清楚语法是否完全匹配。--filter=':- .hgignore'对于Mercurial来说效果不佳;例如,.hgignore包含诸如这样的行^target$(与Git的Mercurial等效/target/)被rsync识别为正则表达式。对于Subversion似乎没有任何作用,您必须为它解析.svn/dir-prop-base1.6或更早版本的工作副本,而对1.7或更高版本的工作副本感到沮丧。
113 git  svn  mercurial  rsync 


8
我可以在Mercurial中压击犯规吗?
我有一对提交,实际上应该只是一个。如果我使用的是git,则可以使用: git rebase -i <some-commit-before> 然后压扁它们。 我可以做一下吗?如果是这样,怎么办?
109 mercurial 


4
如何查看Mercurial文件的修订历史记录?
对于Mercurial存储库中的给定文件,您如何查看修订历史记录? 以及如何区分文件的两个修订版? 理想情况下,使用可视化工具来完成所有这些工作(我们使用ExamDiff进行其他一些比较)。 我会说这是基本的源代码控制功能,但我似乎无法弄清楚如何使用Mercurial做到这一点。
106 mercurial  diff  revision 

5
TortoiseHg申请补丁
TortoiseHg允许您将所做更改的补丁文件通过电子邮件发送给某人,但是它是否支持应用补丁程序? 如果是这样,如何使用TortoiseHg应用补丁? 解决方案 感谢@Will Bickford的帮助。我刚刚在TortoiseHg网站上发现此功能列为TODO。

9
如何将git储存库转换为mercurial?
我一直在开发使用git作为源代码存储库的Java应用程序。我想与其他Java开发人员共享该项目,而hg似乎是他们使用最多的。 我的问题是如何将git存储库转换为hg? 如果我尝试谷歌搜索“将git转换为hg”,并且每次搜索命中都是关于从hg转换为git的。我也在使用TortoiseHg。

2
关闭汞分行
当使用hg branch FeatureBranchName它并将其发布到开发人员之间共享的中央存储库时,是否有一种方法可以最终关闭FeatureBranchName当其开发已与默认分支正式合并时? 如果FeatureBranchName在执行hg branches命令时看不到,这也将很有帮助。
103 mercurial 

5
使用任何hg mercurial命令时,“找不到哈希md5的ERROR:root:code”
尝试hg在控制台上使用任何Mercurial命令时,我一直收到此错误。我使用Homebrew安装了Python,并且正在运行Mac OS Catalina v.1.5.1。 任何参考将不胜感激。这是我得到的错误: hg commit --amend ERROR:root:code for hash md5 was not found. Traceback (most recent call last): File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module> globals()[__func_name] = __get_hash(__func_name) File "/usr/local/Cellar/python@2/2.7.15_3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor raise ValueError('unsupported hash type ' + name) ValueError: unsupported hash type md5 ERROR:root:code for hash …

3
如何将修订历史记录从水银或git导出到cvs?
我将与其他人一起研究使用cvs的项目中的代码。我们想使用分布式的vcs来完成工作,或者当我们完成时或者有时不时地一次,我们想将我们的代码和所有修订历史提交给cvs。我们没有对该项目的cvs存储库的写访问权,因此我们不能非常频繁地提交。我们可以使用什么工具将修订历史记录导出到CVS?当前,我们正在考虑使用git或mercurial,但如果可以简化导出,则可以使用其他分布式vcs。
100 git  mercurial  export  cvs  git-cvs 

9
如何在Mercurial中恢复已删除的文件(如果有的话)?
偶然地,通过使用GUI而不是CLI,我删除了Mercurial项目中的每个文件。 我通过“还原正常”恢复了工作,失去了一些工作,因为有了时间机器,我可以轻松地找回工作。但是,是否有一种方法可以取消/取消删除此类文件?遍历手册和谷歌搜索,但看不到任何东西。有插件吗? 我可能在这里回答我自己的问题,但是文件已从目录中删除,并且不在回收站中,因此我假设Remove是不可撤消的吗? ps我知道hg forget或hg remove -Af将删除而不删除目录,但我的问题与我犯的错误有关,而不是冷静地思考操作。
100 mercurial 

4
如何在Mercurial中添加远程存储库?
我正在通过以下方式使用Git存储库: 我在不同的生产机器上有主存储库和几个远程服务器。 我将生产代码推送到远程并重新启动服务以使更改生效。 我将要从Git转到Mercurial,我想提前知道如何实现这样的目标。

2
在Mercurial中使用嫁接的后果
最近在维护Mercurial中的发行分支时,有一些关于跳过更改的问题。例如: Mercurial:虚拟合并后,分支特定的更改会继续出现 为什么一个分支机构中的Mercurial退出影响其他分支机构? 自从2.0版引入以来,我一直想知道如何使用它graft来避免此问题。给定这样的修订树: A---B---C---D---E---F---G---H---I---J 假设我们需要创建一个跳过Evil更改的发行分支E。 hg update -r D hg graft "F::J" 给我们: A---B---C---D---E---F---G---H---I---J \ --F'--G'--H'--I'--J' 问题1:这里发生了什么?我可以理解,这transplant会从中生成补丁F::J,然后将其应用到D,但graft据说使用的是3向合并,而不是补丁。所以.......这是怎么工作的?为什么会更好? 可以说我现在修复了E,并将其合并到我的发布分支中。 --E2----------------- / \ A---B---C---D---E---F---G---H---I---J---M1 \ \ --F'--G'--H'--I'--J'---------M2-- M1是直接合并;那里没什么特别的。M2是合并分支,这些分支具有“相同”(或至少等效)的更改。 Q2:这是合并只是使用普通的3路合并D,J'以及M1? 问题3:Mercurial是否存储/使用了有关嫁接操作的额外信息以帮助合并? 最后... 问题4:这样的流程有哪些潜在问题?

4
在做其他事情时,我如何搁置一堆未提交的更改
如果我有一堆未提交的更改,并且想在进行其他操作时将其搁置一旁,然后稍后(几天后上网)回到它并继续工作。最简单的工作流程是什么?(到目前为止,我只对Mercurial的基本功能有经验)。我通常的方法是使用克隆创建一个新分支,但是可能会有更好的方法。
98 mercurial 

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.