2013-11-01 31 views
1

我有一个问题,即我们供应源到必须安装在源文件中客户特定的法律意见报头信息与客户端使用的$ id和$格式(?)中的git的差异被忽略的文本几个不同的版本取决于头部的上源文件它们(即:开发商指定的类别)如何在源代码的分发

所以,我要的是指定像$Id$$SpecialName$一个字符串来定义什么头被插入,这将是一种能力由代码分布版本(使zip或jar文件)扩展为

$SpecialName: lots of customer specific stuff like a big header of copyright, legal, and 
other info 
blah blah blah $ 

然后,如果他们修改或修补的东西在文件中,并将其发送回来我要检查将更改Git和有它忽略了构建之间的一切扩展"$SpecialName:"和下一个“$”的方式$Id$可以进行检查,当工作东西在。

我看到在this question的引用,但没有找到它是什么的引用,以及它是否是我正在寻找或不。

理想的情况下,我可以指定参考库服务器“只读”的字符串,并将它传播到所有用户,当他们拉的变化,但是从实现它至上的功能一个单独的问题。


它看起来像一个方法是使用“滤镜” - 从混帐书:

然而,这一结果存在一定的局限性。如果你使用关键字在CVS或颠覆 替代,可以包括邮戳 - 的 SHA是不是所有的帮助,因为它是相当随机的,你不能 告诉我们,如果一个SHA比另一个旧或新。

事实证明,你可以写自己的过滤器对文件做 换人上提交/结帐。这些是“干净的”和 “污迹”过滤器。在.gitattributes文件,你可以设置一个过滤器 特定的路径,然后设置脚本,将处理文件只是 他们承诺之前(“干净”,见图7.2),只是 之前,他们检查了( “污迹”,见图7.3)。这些过滤器可以设置为 做各种有趣的事情。

此相关的是这将是适当做这个资源库服务器上,而不是在客户端上 - 是“文件”数据的处理预提交和预结算可能在信息服务器上?

+0

在git中,所有机器都有一个存储库,所以任何机器原则上都可以作为存储库服务器。 –

+0

正确 - 但希望有一个新的克隆或从服务器(对等),被认为是“权威”的拉,拥有一切“预配置”,所以没有额外的行动检索对方的一部分是需要有东西的工作如预期的。是的,这是将这个“一键无缝”和安全性之间的冲突,因为你不希望它很容易推动自动执行活动代码,如同伴挂钩或不安全地返回给其他人。所以唯一的办法似乎是建立一套分开维护和分发的脚本。 – peterk

+0

这样做使得“保持同步”过程更加复杂一些,并且使得与使用IDE中的集成git插件不兼容的协议保持一致,而这通常并不是足够可编程的。 – peterk

回答

0

传统的做法是让版本控制系统进行这种扩展。但是这对你来说并不是必须的,因为你只需要它出现在客户端机器上。

您只需在源代码分发构建过程中使用某种模板工具。在大多数情况下,如果发送补丁程序,使其无视头文件是不必要的,因为补丁程序无论如何都应该适用,只需使用一些模糊程序即可,不会妨碍它自动应用。

+0

这更像是如果我将整个文件恢复并只是想在不进行预处理的情况下提交它。想知道是否有任何方法来标记源文件中的块被git忽略$ Id $似乎是,因此可以使用,并想知道是否有一个机制,其中$ ArbiraryWord $或$ PredefinedWord $也是可能的。 当然可以看中并在服务器上放置一个预处理钩子,根据哪个分支被检出可以选择该分支集合,这将使客户能够实时访问存储库等等,但是...... – peterk

+0

如果你得到一个文件,你可以从它生成一个补丁,通过对分布式源做一个简单的'diff'(而不是'git diff')。 –

+0

是的 - 但你不能只是解压缩500个文件到文件夹,然后把它提交给客户的分支,这是通过自动化完成的:)我真正要求的是帮助理解git工具集的处理能力源文件,所以我可以使用它的任何数量的潜在的东西。 – peterk