python - 在提交之前使用 Perforce 触发器更新文件

标签 python triggers perforce rcs

我知道这个问题本质上已经been asked ,但这个问题没有明确的答案,所以请耐心等待。

背景:在我的公司,我们使用 Perforce 提交编号作为版本控制的一部分。不管这个方法正确与否,事情就是这样。目前,许多开发人员分别提交代码和文档:首先提交代码,然后提交文档,以使用新版本号更新面向客户的文档。我想简化这个过程。

我的想法如下:创建一个 Perforce 触发器(在服务器端运行),它扫描提交的文档文件(例如 .txt)中的唯一术语(例如 #####PERFORCE##CHANGELIST##NUMBER###ROFL###LOL###WHATEVER#####),然后将其替换为提交时更改列表的值。 我已经知道如何确定这个值。我不知道的是如何或在哪里更新文件。

我已经确定使用 change-content 触发器(无论是否可能),这

"fire[s] after changelist creation and file transfer, but prior to committing the submit to the database",

是要走的路。此时,文件需要存在于服务器上的某处。如何从 Python 脚本中确定这些文件的(临时?)位置,以便我可以更新或 sed 将占位符值替换为预期值?到目前为止,我发现的 Perforce 在线文档还没有非常明确地说明这是否可行,或者此阶段的提交机制如何运作。

编辑

基本上我正在寻找的是类似 RCS 的功能,但没有伴随它的难看的特殊字符序列。经过更多挖掘,我要问的与 this question 相同。不过我相信这一定是可能的,因为触发器正在服务器端运行,并且文件已经传输到服务器。因此它们必须可由脚本访问。

示例

考虑发行说明文档中的以下片段:

[#####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.

最佳答案

我想更好地说明您想要完成的任务,以防有其他方法可以完成您想要的任务。

根据您想要执行的操作,您可能需要考虑搁置 ( http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.files.html#d0e5537 )

此外,我可以向现有的 Perforce 增强请求添加您的信息, 关于客户端触发器在提交之前修改客户端上的文件。如果实现,您将收到电子邮件通知。

关于python - 在提交之前使用 Perforce 触发器更新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150792/

相关文章:

python - Django - Stripe 订阅

ios - PWA iOS 启动画面上的触发事件

Perforce 解决方法添加带有 '@' 的文件

perforce - 你能在 Perforce 中强制添加一个被忽略的文件类型吗?

python - 使用部分参数创建 Python 函数

java - 将两个椭圆拟合到 body 轮廓

sql-server - SQL Server "AFTER INSERT"触发器看不到刚刚插入的行

command-line - 从命令行登录 Perforce

python Pandas : apply a function with arguments to a series

sql - 如果满足条件则阻止插入