qua*_*lar 1 git hash commit keyword-expansion
在阅读了有关此主题的一些帖子之后,我意识到有一些反对使用关键字替换的缺点.不过,我需要一种方法来解决以下问题,并希望有人可能知道如何使用git解决这个问题(无论是否使用关键字替换):
我有一个主要的应用程序,我使用git作为VCS.这个主要应用程序的一部分(一组XML文件)正被实用程序使用,我也使用git(单独的repo).
现在,主应用程序和实用程序具有不同的发布周期,每当我发布新版本的实用程序时,我都会从主应用程序复制最新的XML文件集.在该实用程序中,这组XML文件是git中的非版本化内容,因此它甚至没有签入到repo中.
截至目前,每当我查看此实用程序的不同版本(由git管理并具有标记版本)时,我无法知道包含的XML文件集所指的"版本"(更好:提交哈希) .
所以我在想:如果我可以在这些XML文件中使用最新的提交SHA(作为注释),我总是知道我的实用程序的某个版本所引用的XML文件集.这种方法有什么问题,或者这是要走的路?如果是,我如何将最新的commit-SHA导入我的XML文件?(我读过$ Id:$不会接受commit-SHA,但有些"blob"-SHA?)
两个选择
使用子模块
您可以将主应用程序构建为XML数据的repo +子模块.因为你不能在另一个仓库中使用git-repo的一部分作为子模块,只有完全仓库(Git-boys,FIXME),你重新创建了utility-repo作为"supermodule"并将repo分成两个 - utility + XML-数据
主要的回购也变成了"超级模块",并且1)包括主app和2)app的XML数据
因为Git在所有和任何base changeset-id(Git-boys,FIXME)的主repo和子模块中保持变更集之间的严格关系,所以你只能知道主应用程序的哈希并且与XML数据的这个变更集快照有关.
涂抹清洁过滤器
在将repos维护为完全独立的同时,您可以将跟踪数据添加到XML文件中.将任意关键字添加到Git控制数据的正确方法是Smudge-clean过滤器(请参阅"关键字扩展"部分以及$ Date $关键字扩展的示例)
| 归档时间: |
|
| 查看次数: |
986 次 |
| 最近记录: |