文件我有了SVN钩来从提交的文件
trunk/file1.txt
trunk/file2.txt
trunk/fileR.txt
在服务器上的SVN仓库,我有用户www-data
拥有干线(/var/www/trunk
)的工作副本结账。
fileR.txt
仅适用于除用户www-data
(访问受authz
或svnlook author
限制的访问)以外的所有人。 fileR.txt
应concatentating file1.txt
和file2.txt
产生:cat file1.txt file2.txt > fileR.txt
我想的是,每次在任一台trunk/file1.txt
或trunk/file2.txt
提交,脚本应该运行在服务器上更新工作拷贝,串接的文件和将新的fileR.txt
提交到存储库。
我脑子里想的是什么是一个post-commit钩子做所有上述情况,但我不知道是否和如何SVN可以处理一个新的提交,直到前提交已经完成。
示例:因此,commit1以及file1.txt
的更改进入,预提交挂接运行(如果有),事务将提交到数据库,然后运行post-commit挂接。 post-commit挂钩实际上创建了一个commit2,它需要在commit1的post-commit挂钩实际完成之前完成。
SVN能够做到这一点吗?如果没有,您建议使用哪些其他工具/工作流程?
感谢
通常,如果文件可以从存储库中的其他文件派生,则根本不会将该文件提交到存储库。任何需要这些/这些文件的人都可以根据需要派生出来。为什么需要将fileR文件存储在存储库中,何时可以简单地连接其他两个来获取它? –
一个问题:为什么fileR需要存在?用户不能单独使用file1和file2吗?我认为需要更多的背景来弄清楚为什么你要这样做 - 对我来说这似乎很奇怪。 –
由于遗留原因,fileR'需要存在。在我们的研究小组中,我们使用BibTeX来生成我们论文中的所有参考文献(这是fileR)。最近,我们意识到保留'fileR'与我们发布的论文和其他人发表的论文不是一个好主意,并且切换到两个单独的文件(一个用于我们,一个用于世界其他地方)。不幸的是,我们使用一些脚本为研究组中的个人自动生成出版物列表(我不想改变)。但我们仍然想保留传统文件。 – cdavid