2016-07-07 108 views
1

目前我有一个代码库,没有很好的文档,在远程服务器中称为''A''。
我有一个本地克隆它,叫''B''。Doxygen本地回购

我要陪以下两件事情:

  1. 添加的Doxygen风格的注释为“” B'生成的文件。
  2. 在“B”中没有这些注释的情况下将更改集推送到“A”。

什么是最好的方式来设置回购/分支机构实现这一目标?

+0

我看到git和svn标签是在编辑中添加的。如果你特别要求如何在mercurial中实现这一点,我建议你在你的问题中指定并删除svn和git标记 –

回答

1

你可以设置一个第二支在B其中:

  • 可用于合并的B其中增加的Doxygen的风格注释主枝(这样:从主分支合并到第二分公司)
  • ,但有一个配置激活smudge content filter driver,与smudge是一个脚本,删除所有的Doxygen注释(也就是说,如果这些意见很容易分析和检测)

smudge (图片来自 “Customizing Git - Git Attributes”,从 “Pro Git book”)

,涉及.gitattributes文件(目前仅在第二分支)

*.cpp filter=removeDoxygen 

(由右扩展为您的项目替换cpp源)

这涉及到一个本地配置:

git config filter.removeDoxygen.smudge 'removeDoxygen' 

随着removeDoxygen是您的$PATH中任何地方的shell脚本。
(它可以是一个shell脚本,即使是在Windows,因为它会通过msysgit shell执行)

这合并将导致自动修改(由smudge脚本)的文件,他们将需要添加和在第二个分支承诺。

然后将第二个分支推回去回购A

+0

对我的用户案例更具体:''A'由mercurial维护,一些代码' 'A''已经有doxygen风格的评论。这里最好的动作是什么? – user103500

+0

@ user103500我假设是由git管理的。回购没有任何变化B:评论将在第二个分支中删除。当推回到A(http://hg-git.github.io/)时,这些评论应该保持不变。 – VonC

+0

@ user103500如果B没有直接从A克隆,我会建议推送到A中的新分支,然后在mercurial repo A中进行mercurial merge。 – VonC