我需要与Eclipse CDT项目上的多个助理开发人员合作,该项目使用Mercurial进行版本控制。 Eclipse项目设置(例如构建设置)在.cproject
文件中定义。
当Mercurial跟踪此文件时,开发人员需要经常注意何时不要覆盖彼此的设置。
当然,首先不添加.cproject
文件可以避免这种情况,但这也很不方便:
是否有方便的方法来跟踪并同时拥有用户特定版本的项目文件?
答案 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 book,Mercurial wiki和正在运行hg help mq
的说明以获取最新文档。