我正在使用 Mercurial Shelve 扩展从命令行搁置更改。它工作得很好,除非我想搁置的更改在工作目录中包含新添加的文件(a)。基本上,它会搁置除新添加的文件之外的所有内容。我通过查看 .hg/shelve 存储的更改来检查这一点。
如何搁置新添加的文件(一种状态)?
此响应已过期,但您可以使用以下命令搁置所有文件(跟踪/取消跟踪):
hg shelve -A
或者
hg shelve --addremove
关于这个命令,文档说:
在搁置之前将新/丢失的文件标记为添加/删除
您必须注意使用此功能,因为在取消搁置后,您的旧未跟踪文件会被跟踪。如果在 hg commit 命令中没有指定文件,这些文件已经在最后一次提交中提交。如果您想再次取消跟踪它们,您应该使用 hg forget。
我假设您在谈论当前未跟踪的文件?您需要添加第一个。
因此,只需hg add
为您的新文件执行此操作,然后hg shelve
也将它们搁置。
谢谢你,汤姆。我正在使用Mac,所以它并没有真正起作用。起作用的是另一个反复无常的扩展“hgattic”,您可以在我的博客中阅读更多信息
http://margotskapacs.com/2012/10/shelving-uncommitted-changes-in-mercurial/
(请参阅“错误 - 添加的文件无法搁置”部分)
如果命令行不是绝对必要的:
然后只需键入(在 Linux 上)
thg shelve
这使您可以轻松搁置已添加(但尚未提交)的文件。
作为一个主要使用 Git 的用户,我发现 Atlassian SourceTree是处理我必须使用的奇怪的 Mercurial 存储库的最简单方法。它内置了搁板。价格也合适(免费)。
免责声明:我为 Atlassian 工作