问题标签 [mercurial-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
731 浏览

mercurial - Mercurial:在没有公共阶段的情况下从远程存储库中提取更改(非发布服务器,“中止:无法重新设置不可变变更集”)

背景

Mercurial 现在有阶段,这是一个很好的机制,可以防止人们改变不应该改变的历史。当一个变更集被推送到远程存储库时,它已经生成public并且不再是rebased. 如果存储库是公开的并且您不希望其他人更改您的变更集,这通常是一件好事。

但是,如果您有自己的临时存储库draft仅与自己共享变更集,则可能会非常烦人。Mercurial 可以选择将其关闭。将此添加到远程存储库.hg/hgrc的文件中。

这将防止推送到远程存储库的变更集从一个draft阶段移动到另一个阶段(本地变更集和刚刚推送到远程存储库的变更集。但是,拉下这个变更集仍然会在阶段public中拉下它。public

问题

draft我希望在该阶段下拉变更集。我只是想将变更集推送到我的个人服务器,然后在家里将其拉下来。在我拉取它之后,我将在rebase我从我们真正的发布服务器拉下的任何提交之上进行临时提交。

任何避免将拉取的变更集自动移动到的public方法都会很棒。这个远程存储库是我自己的完整和完整的草稿服务器。draft在尝试不成功后被迫手动将变更集移回原处,这rebase真的开始让人紧张。

参考

0 投票
3 回答
233 浏览

mercurial - 如果我经常使用 histedit,MercurialMq 会更合适吗?

当我处理某些特定功能时,我经常修复其他几乎不相关但易于修复的东西。我在工作期间做了一些“肮脏”的提交。当该功能完成后,我花了很多时间在 hg histedit 上尝试重新排列我所做的所有更改,以便在我将它们公开之前获得干净的提交。这个过程有点乏味且容易出错,我相信应该有其他的工作方式。

我最近发现了MercurialMq扩展。我是否正确地认为它的设计正是为了促进我描述的过程?

UPD搁置呢?这两者有什么关系?

0 投票
2 回答
3317 浏览

git - 来自 Github 的 hg-git clone 给出“中止:存储库不相关”

我有一个项目,其主要(Mercurial)存储库位于 SourceForge 上,但 Bitbucket(Mercurial)和 Github(Git)上有克隆。

现在我一直在使用hg-git将 Mercurial 存储库推送到 Github,据我了解该过程,一些元数据在此过程中保存在 Mercurial 存储库中。

现在,当重新克隆 Bitbucket 存储库并重新克隆 Github 存储库时,如果我发出 ahg pull ../github-repo我得到:

为什么会这样?我怎样才能让 Mercurial 相信它们确实是相关的?还是我必须依赖我最初推送到 Github 的原始存储库?我仍然拥有它,但假设我丢失了它,除了手动变更集移植之外,我还有哪些选择?


注意:由于拉取请求,Github 存储库已更改(新变更集)。但是 SourceForge 和 Bitbucket 存储库仍然认为彼此是相关的。现在的任务是将变更集从 Github Git repo 拉到本地,并将它们分别推回 SourceForge 和 Bitbucket。

0 投票
2 回答
321 浏览

mercurial - 在 mercurial 中变基后修改本地提交

一开始,我的本地
C1 -> C2 -> My1
仓库看起来像: 远程仓库看起来像:
C1 -> C2 -> R1 -> R2
所以我做了:
$ hg pull
$ hg rebase
现在仓库看起来像:
C1 -> C2 -> R1 -> R2 -> My1

现在我对文件“File1.java”做了一些更改,并希望这些更改成为最后一次提交的一部分My1。当我执行以下操作时:
$ hg commit File1.java --amend
我收到的错误消息是:
abort: cannot amend merge changesets
在谷歌搜索时我发现了这个,据此它看起来像是 mercurial 中的一个问题,但我确信有办法解决它。
请告诉我在上次本地提交中修改新更改的一组步骤。

0 投票
1 回答
47 浏览

mercurial - 在 Mercurial 中标记临时更改

我们与 Mercurial 合作了一年,但今天出现了一个关于如何处理(或更好:识别)临时编辑的文件的问题。

询问我如何操作的用户目前正在从 ClearCase 切换到 Mercurial。在 ClearCase 中,您可以使用“劫持文件”来区分应该提交的更改和应该恢复的更改。

在 Mercurial(使用 TortoiseHg)中,我找不到任何类似的解决方案来实现这一点。

长话短说:您如何区分在开发期间临时编辑的文件和为提交而编辑的文件。

对于这种情况,您的建议/最佳做法是什么?

0 投票
1 回答
277 浏览

mercurial - 如何在 TeamCity 中添加 Mercurial churn 扩展

我想在我的 TeamCity 构建中生成 hg 流失报告,但默认情况下,Hg 中未启用流失扩展。在我的本地机器上,我只是将 churn 添加到 mercurial.ini 的 [extensions] 部分。

我在哪里放置系统范围的 mercurial.ini,以便 teamcity 构建代理可以找到它并查看扩展添加?或者,更好的是,有没有办法在构建步骤或 TeamCity 设置中添加扩展?

0 投票
1 回答
348 浏览

mercurial - Hg:扩展搜索路径

我想使用一个特殊的扩展,但出于某些原因,我想避免修改我的 Mercurial 安装并触摸现有的Mercurial.ini.hg/hgrc文件。通常,我会调用类似的命令

如果我只想写

Mercurial 会在哪里搜索extension.py?有没有办法配置一个环境变量,我可以添加/设置c:\path\to\my路径,所以 Mercurial 会在extensions.py不指定完整路径的情况下找到?

0 投票
1 回答
1493 浏览

mercurial - Mercurial - 如何将当前变更集推送到默认分支

我不确定为什么这很难弄清楚或谷歌,但我正在尝试对私有分支进行更改并将它们推送到默认分支。

换句话说:

  1. 几周前我从默认分支中撤出并进行了重大更改
  2. 从那时起,我完成了我的工作
  3. 然后我合并了原始默认分支中的代码(只是代码,HG仍然设置为“NewBranch”
  4. 现在代码可以工作了,我想提交这些更改并将其推送回默认分支,并从那里继续我的开发。

但我找不到任何关于如何做到这一点的信息。如果我切换分支,我会丢失所有的变更集,因为我仍在 NewBranch 中。我不知道变基或移植做什么,也找不到解释它们可以用于什么场景的指南......所以希望这里有人知道该怎么做!

我专门在 Eclipse 上使用 Mercurial,但如果它更容易,我可以在命令行上执行此操作。

0 投票
0 回答
62 浏览

windows - Mercurial purge 命令仅删除 Windows 中最深的子文件夹?

我在 Windows for Mercurial 中使用 purge 命令(purge 是一个捆绑扩展)从存储库中删除所有未跟踪和忽略的文件。

但是,它显示出奇怪的行为,它只会在您有父文件夹和子文件夹的情况下删除最深的子文件夹,这两个文件夹都被忽略。

因此,在删除所有未跟踪和忽略文件之前,我必须多次运行上述命令(有时连续运行 6-7 次)。

为什么会出现这种情况?

0 投票
1 回答
43 浏览

mercurial - 删除mercurial中的历史合并

我有这样的提交历史:

我如何获得以下故事:

其中 [E] - 是合并提交。