Mercurial中的Eclipse项目文件

时间:2013-05-15 16:25:08

标签: eclipse mercurial project eclipse-cdt

我需要与Eclipse CDT项目上的多个助理开发人员合作,该项目使用Mercurial进行版本控制。 Eclipse项目设置(例如构建设置)在.cproject文件中定义。

当Mercurial跟踪此文件时,开发人员需要经常注意何时不要覆盖彼此的设置。

当然,首先不添加.cproject文件可以避免这种情况,但这也很不方便:

  1. 我想跟踪项目文件的更改,以便我可以回到之前的版本,以防万一。
  2. 我想与新开发人员分享我的项目文件,以便他们可以查看我的设置,进行必要的修改
  3. 是否有方便的方法来跟踪并同时拥有用户特定版本的项目文件?

2 个答案:

答案 0 :(得分:1)

标准方法是:不要版本.cproject和朋友。添加文件夹templates并在其中放置.cproject的示例副本。新项目成员制作副本并进行自定义。这也允许您作为模板的作者拥有自己不会与所有人共享的自定义项。

限制是,当您定期更改默认配置文件时,更改不会自动传播给每个人:您必须告知其他项目成员应用它们。但无论如何,在这种情况下,自动传播听起来不是一个好主意。

答案 1 :(得分:0)

您可以使用Mercurial Queues管理特定于用户的修补程序。要共享修补程序,MQ支持修补程序存储库。

设置补丁和补丁存储库的基本工作流程如下:

cd repo
hg init --mq

echo a1 > a
hg commit -A -minit

hg qnew changing.a
echo a2 >> a
hg qrefresh

hg annotate a
> 0: a1
> 1: a2

hg -R $(hg root)/.hg/patches commit -m"my patches"

设置克隆:

hg qclone file://$(pwd)/repo clone_repo
cd clone_repo

hg annotate a
> 0: a1

hg qpush -a
hg annotate a
> 0: a1
> 1: a2

您还可以更改基础变更集并重新应用补丁:

hg qpop -a
echo a3 > a
hg commit -m"changing a"
hg qpush -a

hg annotate a
> 1: a3
> 2: a2

更新克隆的最简单方法是拉取并更新并重新应用补丁:

cd clone_repo
hg qpop -a
hg pull -u
hg qpush -a

hg annotate a
> 1: a3
> 2: a2

您可以找到MQ in the Mercurial bookMercurial wiki和正在运行hg help mq的说明以获取最新文档。