如何在仍推/拉的同时将未提交的更改保存在本地商品库中?

| 如果我正在处理一些我不想提交的文件,则只保存它们即可。然后,我还有其他要推送到服务器的文件,但是,如果其他人对存储库进行了更改,然后将它们拉下,它会要求我合并或重新设置基础。我尚未提交的本地更改。 其他人正在做些什么来解决这个问题?我发现有关扩展架扩展的文档很难引起我的注意。 注意:我正在使用Mercurial Eclipse将文件推入/拉出服务器。 任何对此的解释将不胜感激!谢谢! 例: 我正在使用Mercurial Eclipse开发我的网站。我有一个新文件夹和新文件,我现在还不想提交到服务器。我还修改了一些现有文件,但现在还不想更改。 然后,我网站上的某些内容崩溃了,我需要对其进行修复,如果不重新部署或与最新版本的回购技巧合并,就无法修复它,这将使我丢失所有未提交的更改。 如果我不想丢失新的文件夹和文件,该怎么办?重新克隆似乎很乏味。将文件复制到新文件夹似乎也很乏味。我确定Shelving或MQ会做我想要的事情,我只是不知道该怎么做。     
已邀请:
        我确定有人会帮助您找到一个不错的解决方法,但是最好的方法是改变您的目标-只需投入即可。尚未提交的代码尚未编写。如果您肯定不能在历史记录中频繁进行提交,则将Mercurial Queues与队列存储库一起使用并进行提交。然后,您可以弹出变更集,进行推/拉/合并,然后将其推回去,所有有价值的工作都将提交到补丁队列中。     
        参考您的示例情况,这就是我要做的(遵循Ry4an的策略,即只提交您当前正在处理的事情,但不想已经发布): 假设您开始在这样的存储库中工作:
$ hg status -A
C f1
C f2
$ hg glog
@  changeset:   1:7f3c6c86a92f
|  tag:         tip
|  summary:     add f2
|
o  changeset:   0:03ca1e6d5b86
   summary:     initial
那就是2个文件和2个提交/变更集。您做了一些工作,假设添加了一个新功能,然后您的工作副本可能如下所示:
$ hg status
M f2
? f3
? f4
有2个新文件和1个修改文件。现在,您必须修复一个错误,该错误还需要在远程存储库中进行任何新更改。通过提交当前工作并捕获远程更改来对其快照进行快照(顺序无关紧要,默认情况下,提取不会影响工作副本的状态):
$ hg commit -A -m \"snapshot feature work\"
$ hg pull
这可能会导致这样的历史记录:
o  changeset:   3:2284ba62de07            <-- just pulled in
|  tag:         tip
|  parent:      1:7f3c6c86a92f
|  summary:     edit f1
|
| @  changeset:   2:4a19d371a04f          <-- your interrupted work
|/   summary:     snapshot feature work
|
o  changeset:   1:7f3c6c86a92f
|  summary:     add f2
|
o  changeset:   0:03ca1e6d5b86
   summary:     initial
现在,您可以更新/签出修订版3并开始修复错误:
$ hg update 3
.. fix the bug ..
$ hg commit -m \"fix a bug\"
$ hg glog --limit 3
@  changeset:   4:5d3d947fb4af
|  tag:         tip
|  summary:     fix a bug
|
o  changeset:   3:2284ba62de07
|  parent:      1:7f3c6c86a92f
|  summary:     edit f1
|
| o  changeset:   2:4a19d371a04f
|/   summary:     snapshot feature work
:
看起来不错,让我们推送您的修复程序,即使其生效,同时不要发布您的中间工作:
$ hg push -r 4
这会将所有更改推向修订版4,即错误修正,但本地存储库中没有其他分支。您还可以使用“ 6”,它表示工作副本的父修订版,即您刚刚提交的修订版。 最后,您可以返回要素工作并继续工作:
$ hg update 2
.. work, commit, work, commit ..
.. finally merge with the other branch, e.g. revision 4
这些步骤在命令行上,但是我认为要使通用概念适应Eclipse Mercurial插件中的相应单击并不难。 一些额外的注意事项: 您可能需要为快照提交添加书签,因此不需要使用修订ID或编号。 如果您以后想要在一次提交中发布要素作品,请在完成后使用折叠扩展名。     

要回复问题请先登录注册