2010-12-03 52 views
3

我是一个相当大的组织的一部分,开发人员分布在各个地区,使用Windows,OSX和Linux开发环境。GIT - 跨平台涂抹/清洁过滤器?

我问过先前的问题,导致我想使用清洁/黑灰过滤器: Mark a file in the GIT repo as temporarily ignored

但是......什么是做跨平台脚本过滤器的最佳方式?我不希望开发人员安装额外的脚本环境。有没有关于此的最佳实践?任何方式使过滤器运行在服务器端(我们使用github)?

回答

1

这取决于默认安装的内容。

在我们的Solaris/Linux/Windows环境中,我们使用perl脚本,但不是每个操作系统都有一个脚本:只有一个脚本能够识别在其中执行的操作系统并根据平台运行相应的代码。

这允许在处理Os专用子例程中的路径和其他特定命令时,在脚本的平台无关部分中分离通用函数,所有这些都在同一个脚本中,版本只有一次。一些信息(Os)与版本化数据无关(在“测试”或“修复”分支中),因此可能会导致一些“元数据泄露”或......)将在特殊分支中共存。
这是不实际的:什么是分支修复你需要这些脚本的特殊版本?
然后你会为他们制作一个“fix-Windows”和“fix-Unix”分支吗,还是只是简单地修改“修复”分支中的脚本,提交它并完成它?

+0

换句话说,没有一个好方法? :) – 2010-12-03 20:36:38

+0

@Marc:我已经扩展了我的回答,并提供了关于如何管理这些脚本的一些评论。 – VonC 2010-12-04 00:04:02

0

如果您需要在服务器上运行涂抹/干净脚本,则存在问题。只有在有工作文件夹的地方才能使用涂抹/清洁。根据您所在的平台,您可以拥有不同的版本。

做到这一点的最佳方式是最多只能为每个平台创建1个脚本版本。有些可以重用 - 比如说你有msysgit。然后,如果使用相同版本的bash,则可以使用与Linux上相同的脚本。