1

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

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

当然,这可以通过不.cproject首先添加文件来避免,但这也很不方便:

  1. 我想跟踪对项目文件的更改,以便我可以回到以前的版本以防它中断。
  2. 我想与新开发人员共享我的项目文件,以便他们可以看到我的设置,进行必要的修改

是否有一种方便的方法来跟踪并同时拥有用户特定版本的项目文件?

4

2 回答 2

1

标准做法是:不要版本.cproject和朋友。添加一个文件夹templates并在那里放置一个示例副本.cproject。新的项目成员制作副本并根据口味进行定制。作为模板的作者,这还允许您拥有自己的自定义,您不会与所有人共享。

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

于 2013-05-16T10:45:17.827 回答
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

您可以在 Mercurial 书籍Mercurial wiki中找到对 MQ 的描述,并运行hg help mq以获取最新文档。

于 2013-05-16T08:13:48.307 回答