mercurial存储库和项目文件夹的不同位置?

时间:2015-09-17 13:02:01

标签: svn mercurial

我对Mercurial很新,之前我曾与SVN合作,但现在我将Mercurial安装为本地版本控制系统。现在我想要实现的是将我的IDE项目文件夹放在C:\Projects\中,将我的Mercurial仓库放在C:\Repo\中。问题是我只想在我的Repo中保留.cpp.h个文件,其余的包括我的项目文件夹中的源文件。有可能有这样的东西吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

  1. 不能在任何其他地方拥有存储库,而不是工作目录中的.hg文件夹
  2. 可以仅添加版本控制部分(即仅需要)树中现有文件

答案 1 :(得分:1)

简答:那是.hgignore文件和hg pull的用途。实际上,将版本控制文件(以及那些文件)轻松分发给其他人是Mercurial的全部观点。

除了工作文件夹之外,你不能将你的存储库放在某个地方,而不需要做一些非常冒险的复制或链接(无论如何,在Windows系统上都很难)。

相反,使用.hgignore文件从存储库和hg pull中排除某些文件以使更新可用。

步骤:

  1. 使用带有正则表达式语法的.hgignore忽略.cpp.h文件以外的所有内容,如下所示:
  2. # regexp syntax.
    syntax: regexp
    \.(?!cpp|h)[^.]+$
    

    正则表达式会忽略.whatever结尾不是.cpp.h的任何内容。

    1. 然后,每当你的同事需要回购时,他就可以hg pull来获得回购中的确切内容,而不是别的。
    2. 即使您出于某种原因无法执行远程 hg pull,也可以执行本地拉动或克隆(即,对您的自己的硬盘),然后压缩新目录并发送给他。它只包含版本控制的文件,而不包括工作目录中的任何其他文件(如.project文件)。但请注意,hg实际上是用于联网环境。