据我所知,这个问题已经在本质上已经被问 ,但这个问题并没有一个明确的答案,所以请多多包涵。
背景:在我的公司,我们使用Perforce公司提交的数字作为我们的版本的一部分。 无论这是否是一个正确的方法还是不行,那就是如此。 目前,许多开发商做代码和文档单独提交:第一代码,然后将文档更新为新的版本号应该是什么样的面向客户的文档。 我想简化这一过程。
我的想法是:创建一个Perforce触发器(运行在服务器端)的扫描提交的文档文件(如.txt
一个独特的术语)(如#####PERFORCE##CHANGELIST##NUMBER###ROFL###LOL###WHATEVER#####
),然后提交时更改列表会是什么值来替换它。 我已经知道如何确定此值。 我想不通,是如何或在哪里更新文件。
我已经确定使用change-content
触发(是否可以或不可以),其
“火[S]变更列表的创建和文件传输,但在提交向数据库提交之前后”,
是要走的路。 此时文件需要在服务器上的某个地方 。 如何确定从内,也就是说,一个Python脚本,这样我可以更新或这些文件的(临时?)位置sed
替换与预期值的占位符值? 对于Perforce公司的在线文档,我迄今发现没上过这是否是可能的,或者如何提交在这个阶段力学会的工作非常明确的。
编辑
基本上我在找的是RCS一样的功能,但没有这些伴随着它的难看的特殊字符序列。 更挖掘后,我所问的是一样的这个问题 。 不过,我相信,这一定是有可能的,因为触发器是在服务器端运行,并将文件已经传输到服务器 。 因此,他们必须是由脚本访问。
例
考虑从发行说明文件下面的代码片段:
[#####PERFORCE##CHANGELIST##NUMBER###ROFL###LOL###WHATEVER#####] Added a cool new feature. Early retirement is in sight.
[52702] Fixed a really annoying bug. Many lives saved.
[52686] Fixed an annoying bug.
这是用户提交了什么。 那么我想触发拦截在提交过程中这个文件(如所提到的,在change-content
的阶段),并改变它,这样什么最终存储内的Perforce看起来是这样的:
[52738] Added a cool new feature. Early retirement is in sight.
[52702] Fixed a really annoying bug. Many lives saved.
[52686] Fixed an annoying bug.
其中52738是用户提交的内容最终更改列表编号。 (如前所述,我已经能够确定这个数,所以请不要在这一点上纠缠。)也就是说,用户看到的Perforce客户端控制台上是什么。
Changelist 52733 renamed 52738.
Submitted change 52738.