1

似乎ShelveExtension只会搁置您修改过的文件,而不会被跟踪或删除。

我是 Mercurial 的新手,来自 git,所以对我来说这不是预期的。

更大的问题是我无法解决我hg unshelve认为的错误消息。

见下文:

搁置更改“主要”

临时提交挂起的更改(使用 'hg unshelve --abort' 恢复)

重新定位搁置的更改

中止:未提交的更改

这是预期的行为,我只是错过了一些东西吗?

我如何在不恢复/提交/等的情况下取消搁置我修改过的文件?

是否有一个行为完全一样的扩展git stash

重现步骤:

在此处输入图像描述

环境:

操作系统:Windows 8

Mercurial:Mercurial 分布式 SCM(版本 3.0.1)。安装为 cygwin /usr/bin/hg (未安装 Tortoisehg,安装了 Windows hg 但未使用)

扩展:ShelveExtension

4

1 回答 1

3

这是预期的行为,我只是错过了一些东西吗?

是的,这是正常行为。如果您希望 Mercurial 跟踪文件的创建和删除,则需要执行hg addremove(或手动hg add和单个文件)。hg rm重命名应该使用hg mv. 这有点类似于git add,除了您不需要对修改的文件执行此操作。

当您取消搁置时,您的工作目录应该是干净的。至少,它不应该有任何丢失的文件(以!in为前缀hg st)或任何修改的文件(以 为前缀M)。您可以随时进行临时提交,hg strip然后再提交。

我如何在不恢复/提交/等的情况下取消搁置我修改过的文件?

在一般情况下,没有理智的方法可以做到这一点。如果架子包含对不再存在的文件的更改怎么办?如果文件删除已经提交,您可能会产生补丁冲突,这就是 Mercurial 所做的。但是,如果不承诺与之发生冲突,则对这种情况没有明显的反应。

是否有一个行为完全一样的扩展git stash

据我所知,但这超出了 StackOverflow 的范围。

于 2015-01-22T18:31:02.630 回答