当我创建分支时,我想要一个钩子脚本,它将更改文本文件的第一行,以记录修订号。我想这样做的原因是因为这个文本文件与其他脚本接口,然后从存储库中提取其他文件的正确版本。
我觉得必须有一种编写预提交钩子脚本的方法,该脚本说明如果你提交到某个路径,它会更改一行文本,然后提交。
Set "SVNHEAD=SVN HEAD"
set REPOS=%1%
Set "SVNREV=%REVISION%" (get the revision number somehow from SVN)
gsar -s%PARTSDIR:I:\=I::\% -r%SVNHEAD% -i -f %SVNREV%
可执行文件gsar替换ascii文件中的文本行,如果这是一个简单的方法来执行.bat文件,虽然我真的很感激听到它。有没有人知道这是否可行/怎么做?
非常感谢 克里斯
答案 0 :(得分:1)
$ Revision $ keyword将被转换为字符串,其中包含(在其他数据中)此文件的last-commit的修订版,即在您的情况下 - 创建分支的修订版并将包含此数据,除非您修改分支内的文件
svn log -q BRANCH-URL
返回创建分支的最后一个数据字符串修订svn propset somepropertry somevalue BRANCH-URL
稍后使用propget | proplist读取它(somevalue =分支修订版,因为它已经存在)在你的情况下我更喜欢使用特殊的(未用于其他任务)文件,这些文件必须在分支之前立即创建,并且仅在分支修订中提交一次(不优雅,但是最简单的方法)