如何放弃未提交的 hg 合并?

发布于 2024-08-27 22:32:57 字数 431 浏览 3 评论 0原文

我刚开始与 Mercurial 合作。我的情况:

  • 另一位程序员更改了文件的 rev 1,将 4 空格缩进替换为 2 空格缩进。 (即更改了每一行。)调用该版本 2,推送到远程存储库。
  • 我已经对本地工作区中的各种代码进行了实质性更改 rev 1。称之为版本 3。
  • 我已经 hg pulled 和 hg merged 了,但不清楚发生了什么。
  • 冲突多种多样,但并不具有实质性。

所以我真的希望在合并之前将本地存储库更改为 2 个空格缩进;那么合并将是微不足道的(我想)。但我似乎无法备份。我想我需要 hg update -r 3 但它说 abort:未完成的未提交合并

如何撤消合并、更改本地存储库中的间距并重新合并?

I'm new to collaborating with Mercurial. My situation:

  • Another programmer changed rev 1 of a file to replace 4-space indents with 2-space indent. (I.e. changed every line.) Call that rev 2, pushed to the remote repo.
  • I've committed substantive changes rev 1 with various code changes in my local workspace. Call that rev 3.
  • I've hg pulled and hg merged without a clear idea of what was going on.
  • The conflicts are myriad and not really substantive.

So I really wish I'd changed my local repo to 2-space indents before merging; then the merge will be trivial (i'm supposing). But I can't seem to back up. I think I need to hg update -r 3 but it says abort: outstanding uncommitted merges.

How can I undo the merge, changes spacing in my local repo, and remerge?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

也只是曾经 2024-09-03 22:32:57

顺便说一句:如果您只是恢复所做的合并,并且 3 不是您的修订号,您可以执行以下操作:

hg update -C -r .

BTW: if you just revert the merge you did and 3 is not your revision number you can do this:

hg update -C -r .
白鸥掠海 2024-09-03 22:32:57

您可以使用 -C (或 --clean)标志丢弃未提交的更改:

hg update -C -r 3

注意:所有未提交的内容都将消失!

之后,您可能应该使用某种代码格式化工具来完成整个操作,或者至少使用正则表达式进行一些查找和替换。就像用 __ (2 个空格)替换与 ^____ (使用 4 个空格而不是下划线)匹配的内容一样简单,重复几次(除非你有一些疯狂的嵌套代码) )应该可以工作。

You can discard uncommitted changes with the -C (or --clean) flag:

hg update -C -r 3

BEWARE: Everything that was not committed will be gone!

After that you should probably use some kind of code formatter tool to do the entire operation, or at least some find and replace with regular expressions. Something as simple as replacing what matches ^____ (use 4 spaces instead of underscores) with __ (2 spaces), repeated a few times (unless you have insanely some nested code) should work.

谜兔 2024-09-03 22:32:57

要撤消未提交的合并,请使用

hg update --clean

它将签出原始合并父级的干净副本,从而丢失所有更改。

To undo an uncommitted merge, use

hg update --clean

which will check out a clean copy of the original merge parent, losing all changes.

裂开嘴轻声笑有多痛 2024-09-03 22:32:57

我显然只需要 hg update -C -r 3 ,它会根据版本覆盖我的本地文件(这就是我认为 hg update 会做的;但我错了。)谢谢你的帮助!

I apparently just needed to hg update -C -r 3, which overwrites my local files with the rev in mind (which is what I thought hg update would do; but I was wrong.) Thanks for my help!

满身野味 2024-09-03 22:32:57

要撤消未提交的合并,您可以使用

hg update --clean

但所有未提交的内容都将消失!
即使您以前使用 hg shelve 进行的所有备份也会消失,因此请避免
如果您已使用 hg shelve 进行备份,则可以

To undo an uncommitted merge you can use

hg update --clean

but Everything that was not committed will be gone!
Even your all previous backup with hg shelve will also gone so avoid
it if you have taken backup with hg shelve

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文