Svn 在Mercurial/Hg中签出文件

Svn 在Mercurial/Hg中签出文件,svn,version-control,mercurial,Svn,Version Control,Mercurial,我通过Subversion学习了版本控制,现在我正在尝试使用Mercurial。在Subversion中,我自己在一个存储库中有一个项目,我可以将它签出到我的VisualStudioProjects文件夹中并在那里处理它。现在,我不仅仅是在我的项目上使用Mercurial回购协议。我有单独的本地副本和中心副本。修改本地副本的标准方法是直接在repo中修改文件,但我不喜欢这样,因为如果需要,我无法重新定位任何内容。有没有办法将我的项目签出到我想去的任何地方?我不喜欢编辑-复制-粘贴-提交方法。您是

我通过Subversion学习了版本控制,现在我正在尝试使用Mercurial。在Subversion中,我自己在一个存储库中有一个项目,我可以将它签出到我的VisualStudioProjects文件夹中并在那里处理它。现在,我不仅仅是在我的项目上使用Mercurial回购协议。我有单独的本地副本和中心副本。修改本地副本的标准方法是直接在repo中修改文件,但我不喜欢这样,因为如果需要,我无法重新定位任何内容。有没有办法将我的项目签出到我想去的任何地方?我不喜欢编辑-复制-粘贴-提交方法。

您是否正在寻找
hg pull-u/path/to/central/repo

您的问题是:


公司所有项目的代码均在本地回购协议中

Mercurial文档中的引用:

许多SVN/CVS用户希望在一个系统中共同主持相关项目 存储库。这真的不是Mercurial的目的,所以你 应该尝试不同的工作方式。特别是,这意味着 您不能只签出存储库的一个目录

如果您确实需要以某种方式主持多个项目 不过,您可以尝试使用子存储库功能 使用Mercurial 1.3或更旧的ForestExtension引入

有关使用Mercurial的实践介绍,请参见教程

-->当您使用Mercurial这样的分布式版本控制系统时,您应该尝试为每个项目创建一个存储库。
如果您这样做,您的问题就会消失,因为如果您需要修改ProjectX,只需将ProjectX的完整存储库克隆到您的机器上,就可以了

来自Subversion,也许您应该阅读一篇解释SVN和HG之间区别的教程,例如:

  • (Stack Overflow的联合创始人乔尔·斯波尔斯基)

我只想从本地repo获取某些文件,而不是全部文件,然后再从文件系统获取。我已经有了本地回购协议。我不明白你对标准方式(直接在回购协议中修改文件)有什么不喜欢的地方。你说“因为我不能在需要的时候重新定位任何东西”是什么意思?公司所有项目的代码都在本地repo中,所以如果我只是在处理一组特定的文件,那么将其全部复制到Visual Studio项目文件夹是没有意义的。默认情况下,VisualStudio会在Projects文件夹中创建一个新项目,我的所有VS项目都在该文件夹中。但现在我不得不将所有版本控制的项目保留在回购协议中。不幸的是,在我出现之前很久,就已经决定将所有内容都放在一个回购协议中,对此我没有太多的发言权。我认为我必须复制/粘贴或者告诉Visual Studio去回购?@kendfrey:很抱歉听到这个消息,但是使用HG而不是SVN的决定以及坚持将所有内容都保存在一个回购中的旧决定不是一个好决定,这表明做出决定的人并不真正了解SVN和HG之间的区别。如果没有办法改变这一切(在这里向他们展示这个答案!!),恐怕你必须使用你提到的一个肮脏的黑客/解决方法。好吧,每个分支的项目和hg克隆-b在当前状态下可以(部分)帮助你。但拆分项目更为正确,definitely@kendfrey-您必须将文件(一次手动)从基于路径的项目移动到至少基于分支的项目。如果你不能在“中央”回购上创建分支机构,恐怕最好不要使用Mercurial,或者从scratchIt souns开始Mercurial课程,这是个好主意。问题是,公司的其他人可能不会听昨天刚学会使用Mercurial的新员工的话。