mercurial:在提交之后、推送之前从删除的存储库中恢复

mercurial:在提交之后、推送之前从删除的存储库中恢复,mercurial,Mercurial,我有一个mercurial存储库我的_项目,托管在bitbucket上。今天,我做了一些更改并将它们提交到本地存储库,但还没有将它们推出 然后,我主要是塞满了东西,并摸了摸rm-rf我的_项目(!!!!!!!) 考虑到我还没有将它们推出,有什么方法可以恢复我今天所做的更改吗?我知道一天的承诺听起来不算多,但确实如此 我拥有的这个项目的所有其他克隆都是最新的推送版本(不包括今天的更改) 干杯。mercurial救不了你。mercurial的数据存储在项目文件夹底部的隐藏目录中。在您的情况下,可能位

我有一个mercurial存储库
我的_项目
,托管在bitbucket上。今天,我做了一些更改并将它们提交到本地存储库,但还没有将它们推出

然后,我主要是塞满了东西,并摸了摸
rm-rf我的_项目
(!!!!!!!)

考虑到我还没有将它们推出,有什么方法可以恢复我今天所做的更改吗?我知道一天的承诺听起来不算多,但确实如此

我拥有的这个项目的所有其他克隆都是最新的推送版本(不包括今天的更改)


干杯。

mercurial救不了你。mercurial的数据存储在项目文件夹底部的隐藏目录中。在您的情况下,可能位于
my_project/.hg
。您的递归删除也会破坏此文件夹


所以也许摩科瑞尔救不了你。mercurial的数据存储在项目文件夹底部的隐藏目录中。在您的情况下,可能位于
my_project/.hg
。您的递归删除也会破坏此文件夹


因此,可能是?

否。在推送之前,更改只存储在本地存储库目录(其中的.hg目录)中。它们从不放在任何其他地方(甚至不包括/tmp)


不过,您有可能从磁盘恢复已删除的文件;搜索相关说明和工具。

否。在推送之前,更改只存储在本地存储库目录(其中的.hg目录)中。它们从不放在任何其他地方(甚至不包括/tmp)


不过,您有可能从磁盘恢复已删除的文件;搜索相关说明和工具。

恐怕提交会与工作副本一起删除,文件恢复工具是恢复丢失的
.hg
文件夹的唯一选项。我看你可以从安装中恢复代码-太棒了

如果你害怕这种情况再次发生,那么你可以安装一个粗糙的钩子,比如

[hooks]
post-commit = R=~/backup-repos/$(basename "$PWD");
              (hg init "$R"; hg push -f "$R") > /dev/null 2>&1 || true
这将强制将所有提交的副本推送到
~/backup repo
下的适当repo。
-f
标志确保即使您使用诸如rebase或mq之类修改历史记录的扩展,也会推送备份。它还允许将不相关的repo中的变更集推送到同一个备份repo中——想象两个名为
foo
的不同repo。因此,备份存储库在一段时间后会有一大堆更改集,您可能希望偶尔删除这些更改集


我简单地测试了这一点,对于日常工作,我认为您不会注意到额外副本的开销,稍后您可能会感谢自己:-)

恐怕提交会与工作副本一起删除,文件恢复工具是恢复丢失的
.hg
文件夹的唯一选项。我看你可以从安装中恢复代码-太棒了

如果你害怕这种情况再次发生,那么你可以安装一个粗糙的钩子,比如

[hooks]
post-commit = R=~/backup-repos/$(basename "$PWD");
              (hg init "$R"; hg push -f "$R") > /dev/null 2>&1 || true
这将强制将所有提交的副本推送到
~/backup repo
下的适当repo。
-f
标志确保即使您使用诸如rebase或mq之类修改历史记录的扩展,也会推送备份。它还允许将不相关的repo中的变更集推送到同一个备份repo中——想象两个名为
foo
的不同repo。因此,备份存储库在一段时间后会有一大堆更改集,您可能希望偶尔删除这些更改集


我对此进行了简短的测试,在日常工作中,我认为您不会注意到额外副本的开销,稍后您可能会感谢自己:-)

我想这可以归结为对已删除文件的文件系统级恢复。这取决于操作系统和文件系统。也许在superuser.com上会问到这个问题?顺便说一句,第二个实现总是比第一个更干净、更好:-)Bw?我从来没见过before@Robert马丁:任何拼写错误和错误都可以(也应该)被非本地评论者原谅;-)第二课:不要键入任何与
rm-rf my_project
:-)仅相差一到两个字符的命令。。。。但说真的,我很高兴你至少能检索到你的代码。我想这可以归结为文件系统级别的删除文件恢复。这取决于操作系统和文件系统。也许在superuser.com上会问到这个问题?顺便说一句,第二个实现总是比第一个更干净、更好:-)Bw?我从来没见过before@Robert马丁:任何拼写错误和错误都可以(也应该)被非本地评论者原谅;-)第二课:不要键入任何与
rm-rf my_project
:-)仅相差一到两个字符的命令。。。。但说真的,我很高兴你至少能检索到你的代码。好的,谢谢你。事实证明,我在测试代码时安装了今天版本的代码,由于它是R代码,我很幸运能够检索每个函数的代码(没有任何注释,但总比没有好!)好,谢谢。事实证明,我在测试代码时安装了今天版本的代码,由于它是R代码,我很幸运能够检索每个函数的代码(没有任何注释,但总比没有好!)好,谢谢。事实证明,我在测试代码时安装了今天版本的代码,由于它是R代码,我很幸运能够检索每个函数的代码(没有任何注释,但总比没有好!)好,谢谢。事实证明,我在测试代码时安装了今天的代码版本,由于它是R代码,我很幸运能够检索每个函数的代码(没有任何注释,但总比没有好!)