我正在考虑从Subversion迁移到Git。我们使用Subversion的一个用途是让系统管理员管理配置文件。为此,我们在每个文件中加入$URL$
,它会扩展成该文件在Subversion树中的位置。这让管理员可以查看某个任意主机上的文件,并找到它来自树的哪个位置。
最接近的类比可能是gitattributes。有filter=
指令,但似乎Git不会将过滤器正在过滤的文件名传递给过滤器,这对于将$URL$
转换为路径是必要的。
还有ident
指令,可以将$Id$
转换为blob哈希值。如果能将其映射回路径名,则此选项可能可用,但我的Git知识不够强。
有什么建议吗?
工作流程如下:
- 管理员提交更改到VCS仓库
- 管理员更新已经检出仓库的中心位置
- 管理员使用cfengine将更改拉到主机上
/etc/apache2/sites-available/trac
,他将看到可以在VCS中找到该文件为https://eng.svn.pdaverticals.com/trunk/net/http/apache2/sites/trac
。否则,他必须进行查找并希望文件名匹配,这可能不会发生,因为有些文件在发送到主机时会更改名称,有些文件由一堆不同的文件片段组成,甚至没有类似于VCS的模拟文件。 - Rudedog