标签: mercurial

如何正确关闭Mercurial中的功能分支?

我已经完成了一个功能分支feature-x.我想将结果合并回default分支并关闭feature-x,以便在输出中删除它hg branches.

我想出了以下场景,但它有一些问题:

$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch
Run Code Online (Sandbox Code Playgroud)

所以feature-x分支(更改40- 41)已关闭,但有一个新头,即结束分支变更集44,hg heads每次都会列出:

$ hg log ...
o  44 Closed branch feature-x
|
| @  43 merge
|/|
| o  42 Changeset C
| |
o |  41 Changeset 2
| |
o …
Run Code Online (Sandbox Code Playgroud)

merge mercurial branch hg-merge

238
推荐指数
4
解决办法
10万
查看次数

Mercurial for Beginners:The Definitive Practical Guide

灵感来自Git的初学者:最终的实用指南.

这是一个信息使用水银为汇编初学者实际使用.

初学者 - 一个已经触及源代码控制而不太了解它的程序员.

实用 - 涵盖大多数用户经常遇到的情况 - 创建存储库,分支,合并,从/向远程存储库提取/推送等.

备注:

  • 解释如何完成某些事情而不是如何实现某些事情.
  • 每个答案处理一个问题.
  • 尽可能简明扼要地回答.
  • 编辑/扩展现有答案,而不是在同一主题上创建新答案.
  • 请为想要了解更多信息的人提供Mercurial wikiHG Book的链接.

问题:

安装/设置

使用代码

标记,分支,发布,基线

其他

其他Mercurial参考

version-control mercurial

237
推荐指数
5
解决办法
3万
查看次数

使用任何 hg mercurial 命令时出现“错误:root:未找到哈希 md5 的代码”

尝试hg在控制台上使用任何Mercurial 命令时,我不断收到此错误。我使用 Homebrew 安装了 Python,我正在运行 Mac OS Catalina v. 10.15.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 sha1 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, …
Run Code Online (Sandbox Code Playgroud)

python macos mercurial homebrew openssl

227
推荐指数
5
解决办法
11万
查看次数

如何为所有丢失的文件执行Mercurial的'hg remove'?

我用它来从repo中删除一个文件:

hg remove <full file path> 
Run Code Online (Sandbox Code Playgroud)

您可以使用什么命令hg remove对本地删除的所有文件执行操作?

通过本地删除,我的意思是那些出现!在你做的时候hg status.

对于添加,您可以hg add添加所有新文件(前缀为?).

mercurial

223
推荐指数
3
解决办法
8万
查看次数

如何与TortoiseHG分支

我下载了TortoiseHg 1.0进行评估.对于我的生活,我无法弄清楚如何建立一个分支.它似乎理解分支(例如在其存储库浏览器中)但我似乎无法找到制作分支的方法.这似乎是一种基本功能,因为DVC经常被吹捧的好处是轻量级分支.

我用Google搜索并且找不到关于这个主题的讨论(至少对于最近的版本)所以我不得不假设我错过了什么,对吧?

更新:所以我在下面标记了Chad Birch的回答来回答"新分支"问题.正如他正确指出的那样,您执行提交,然后单击分支按钮以显示分支维护对话框,您可以在其中创建新分支.我有点希望他们为我们提供了一个上下文菜单选项.一旦你分支,下一个自然的问题是如何合并,这也不明显.事实证明,选项隐藏在存储库资源管理器中.您需要选择另一个分支的头部,右键单击,然后选择"与...合并".

mercurial tortoisehg

218
推荐指数
4
解决办法
8万
查看次数

Mercurial:如何修改最后一次提交?

我正在寻找git commit --amendMercurial 的反向部分,即修改我的工作副本链接的提交的方法.该修订程序的要求是:

  • 如果可能,它不应该要求任何扩展.它不能要求非默认扩展,即没有官方Mercurial安装附带的扩展.

  • 如果修改提交是我当前分支的一个负责人,则不应创建新的头.如果提交不是头,则可以创建新头.

  • 该程序应该是安全的,如果由于任何原因修改失败,我希望在修改之前恢复相同的工作副本和存储库状态.换句话说,如果修改本身可能失败,则应该有一个故障安全过程来恢复工作副本和存储库状态.我指的是修改程序性质的"失败"(例如冲突),而不是与文件系统相关的问题(如访问限制,无法锁定文件进行写入,......) )

更新(1):

  • 该过程必须是自动化的,因此可以由GUI客户端执行,而无需任何用户交互.

更新(2):

  • 不得触摸工作目录中的文件(某些已修改文件可能存在文件系统锁定).这尤其意味着,可能的方法可能在任何时候都不需要干净的工作目录.

mercurial commit git-amend mercurial-commit

209
推荐指数
5
解决办法
10万
查看次数

Hg:如何像git的rebase那样做一个rebase

在Git我可以这样做:

1. Start working on new feature:
$ git co -b newfeature-123  # (a local feature development branch)
do a few commits (M, N, O)

master A---B---C
                \
newfeature-123   M---N---O

2. Pull new changes from upstream master:
$ git pull
(master updated with ff-commits)

master A---B---C---D---E---F
                \
newfeature-123   M---N---O

3. Rebase off master so that my new feature 
can be developed against the latest upstream changes:
(from newfeature-123)
$ git rebase master

master A---B---C---D---E---F
                            \
newfeature-123               M---N---O


我想知道如何在Mercurial中做同样的事情,我已经在网上搜索了答案,但我能找到的最好的是:git rebase …

git mercurial dvcs rebase

207
推荐指数
4
解决办法
7万
查看次数

Mercurial:我可以重命名一个分支吗?

我们现在有一个"stiging"分支,其中"staging"似乎是一个更好的语义契合.处理这个问题的好策略是什么?

mercurial branch dvcs

203
推荐指数
5
解决办法
6万
查看次数

有没有办法删除Mercurial中的本地提交?

所以我在Mercurial中犯了一个愚蠢的错误.很多时候,我会在没有做"hg pull"和"hg update"的情况下开始工作.当我尝试推送我的更改时,出现错误.

有没有办法删除我的本地提交,所以我可以避免创建多个头,分支等?我只想删除我的本地提交,将我的更改与提示合并,然后重新提交.听起来很简单吧?我似乎无法找到任何方法轻松删除本地提交,所以我可以干净地合并提示.

我再次尝试删除使用"hg ci"进行的本地提交.我不想修改文件,还原等.

mercurial

202
推荐指数
8
解决办法
13万
查看次数

如何从Mercurial中的工作目录中删除所有未跟踪的文件?

是否可以从我的工作目录中删除所有未跟踪的文件?假设我在工作目录中添加了一堆文件,没有通过'hg add'添加它们,现在想完全摆脱这些新文件?

我在Windows上,虽然我使用的是PowerShell,因此这里也可以使用组合解决方案.

mercurial

199
推荐指数
3
解决办法
6万
查看次数