Eclipse 使用未提交的更改进行更新的Mercurial工作流?

Eclipse 使用未提交的更改进行更新的Mercurial工作流?,eclipse,mercurial,merge,push,Eclipse,Mercurial,Merge,Push,因此,我已经为我的网站从CVS切换到mercurial 我遇到的最大问题是,如果我正在处理一些我不想提交的文件,我只保存它们。。然后,我还有其他文件要推送到服务器上,但是如果其他人对存储库进行了更改,我会将它们拉下来。。它要求我合并或重新设置基址。。这两个选项中的任何一个都会导致我丢失尚未提交的本地更改 我已经读到,我应该在本地主机上克隆每个项目的存储库,并在准备好的时候将其合并到live中。这不仅看起来很乏味,而且需要很长时间,因为它是一个大型存储库 有更好的解决方案吗 我希望Mercuria

因此,我已经为我的网站从CVS切换到mercurial

我遇到的最大问题是,如果我正在处理一些我不想提交的文件,我只保存它们。。然后,我还有其他文件要推送到服务器上,但是如果其他人对存储库进行了更改,我会将它们拉下来。。它要求我合并或重新设置基址。。这两个选项中的任何一个都会导致我丢失尚未提交的本地更改

我已经读到,我应该在本地主机上克隆每个项目的存储库,并在准备好的时候将其合并到live中。这不仅看起来很乏味,而且需要很长时间,因为它是一个大型存储库

有更好的解决方案吗

我希望Mercurial看到我没有提交我的更改(即使我已经更改了服务器上的文件),所以它只是忽略了文件

如果您对此有任何意见,我们将不胜感激。谢谢大家!


此外,我正在使用hg eclipse插件处理我的文件,并从服务器上推/拉。

hg shelve
我想是您的朋友

这来自于(可能-见下文)

从概述中可以看出:

搁置扩展提供了 shelve命令可供您选择 a中的哪些部分发生了变化 要设置的工作目录 暂时放在一边,在粒度上 一个大块头。您可以稍后恢复 使用 取消搁置命令

架子的扩展部分已经调整过了 来自Mercurial的RecordExtension

或者是因为

本模块涉及一组 文件夹.hg/attic中的补丁程序。在 任何时候你都可以搁置当前的 工作副本更改或取消搁置 文件夹中的修补程序


它似乎与shelve扩展有相同的语法,所以我不确定使用了哪一个

I second@Sam的答案。但是,如果您更喜欢使用标准Mercurial,可以使用一个简单的工作流

  • 将工作目录更改保存到临时文件中
  • 将工作目录与特定版本同步,然后
  • 推、拉、合并。。无论你想做什么,需要一份干净的工作副本,以及
  • 将更改从临时文件返回到工作目录
  • 例如:

    $ hg diff > snapshot.patch # save your uncommited changes
    $ hg up -C                 # get a clean working copy
    $ hg pull                  # do things ..
    $ hg merge                 # .. you need a clean ..
    $ hg commit -m "merge"     # .. working copy for
    $ hg import snapshot.patch # get back your uncommited work
    

    首先,你是从命令行工作,还是使用类似于乌龟的东西

    如果您是从命令行工作的,并且您已经完成了拉式操作,mercurial不会要求您做任何事情,因为它只会更新您的本地存储库

    如果您随后执行hg更新并进行了本地更改,那么它应该执行您习惯于从CVS执行的操作。它将更新到当前分支的顶端,并尝试合并中未完成的更改。这里有一些注意事项,所以请参考官方文件


    另外,对于临时存储更改,我建议MQ优先于搁置。Shelve只提供一个存储区域,而MQ提供您所需的存储区域。MQ需要一些时间来适应,但值得投资。

    我实际上是在使用eclipse插件从我的存储库中推拉。我看到有一个名为MQUE的扩展,它允许我导入Qinit Qnew Qrefresh Qdelete,但我不确定它们都做了什么。MQ=Mqueue吗?Mqueue应该是相同的,因为所有这些命令名都是相同的。这似乎比在CVS中完成的要麻烦得多。我必须把它卖给从事我的项目的开发人员,我真的很想继续使用mercurial。是的,也许这不是告诉mercurial初学者的事情,但一旦你真正掌握了DVCS的原理,像这样的工作步骤似乎很自然,而不是繁琐——这至少是我个人的经验。无论如何,对于合并,您肯定必须放弃更改,因为合并本身是在工作副本中完成的,这允许您在提交之前检查并可能调整它。不管你怎么做,我都不会把零钱收回来,谢谢你的回复。现在,我们正在研究这两个问题。我知道,有没有在HGEclipse插件中使用这些扩展的经验?Shelve可以从Ortoisehg中使用。似乎找不到MercurialClipse支持的扩展名列表。如果右键单击Mercurial Eclipse中的文件夹/文件,可以转到Team>extensions>MQUE,但我不确定下面的所有命令是什么意思。这不是重复了您的问题吗?正如在重复问题的评论中已经提到的,您应该编辑问题,而不是发布新问题。请要求结束此问题或其他问题。可能的副本