【问题标题】:How to control version number in Perforce?如何在 Perforce 中控制版本号?
【发布时间】:2011-01-09 10:01:25
【问题描述】:

我想在 Perforce 中以“x.x.x”或类似于“git tag”的格式自动生成版本号。有什么想法吗?

【问题讨论】:

    标签: version-control perforce


    【解决方案1】:

    我不知道 git 标签可以自动生成版本号。
    你可以暗示git describe

    RCS 可以是store, and then display the version 的一种方式,而不是生成一个。

    版本号方案are many (p4 uses its own),加上标签需要cleaned up once in a while
    您将需要某种脚本来生成一个(followinf 来自 p4 邮件列表):

    对于坚持“每次更改都需要新版本标记”的 dweeb,我建议如下:[警告:这是以 Perforce 为中心的。]

    1. 您的 makefile 可以通过运行以下脚本生成 version.h 做这样的事情:
    CHANGENUM=`p4  changes  -m1 -s  submitted //depot/main/...#have  |  cut  -f2  -d' '`
    echo "#define VERSION    \"main codeline to change #$CHANGENUM\"  " > $SRC/include/version.h
    

    2 。然后你做一个构建和版本字符串(对于任何 引用 VERSION) 自动正确。
    当然,我会为“官方构建”做这个version.h 技巧和 “通宵构建”并使开发人员使用的默认 version.h 具有硬编码字符串,其效果是“从主代码行构建但不是官方的 - 不要 部署”。


    在 Git 2.27(2020 年第二季度)中,“git p4”在 RCS 方面做得更好。

    请参阅commit 1ec4a0acommit 38ecf75commit cd1e0dc(2020 年 2 月 14 日)和commit 4935c45commit aa8b766commit 9f59ca4commit 6b602a2(2020 年 2 月 11 日)Ben Keene (seraphire)
    (由 Junio C Hamano -- gitster -- 合并于 commit 5f2ec21,2020 年 4 月 22 日)

    git-p4:添加RCS关键字状态消息

    签字人:Ben Keene

    在 p4 提交过程中,git-p4 将尝试为 p4 工作区中找到的文件应用补丁。
    但是,如果 P4 使用 RCS 关键字扩展,这个补丁可能会失败。

    当补丁失败时,用户会收到失败警告,git-p4 将尝试从文件中清除扩展文本并重新应用补丁。
    git-p4 的当前版本移除 RCS 扩展后,不会告诉用户重新应用尝试的结果,这可能会造成混淆

    在清除RCS关键字后,在git补丁成功应用后添加新的打印语句。

    【讨论】:

    • 谢谢,VonC。我正在处理的不是 C/C++ 项目,它只是一堆文档(我会定期用版本号对它们进行 tar)。但我想基本的想法是一样的。我将创建一个 VERSION 文件并使用您的脚本来更新它。我又收到两个问题: 1. 我应该把这个 VERSION 文件放在哪里?如果我更新 VERSION 文件,我猜 CHANGENUM 会再次更改; 2. 这样,我不能保证触发这个脚本自动更新VERSION文件,对吧? (有几个人可以访问并更改此文件夹的内容)
    • @aXqd:对于任何语言,这个想法确实是一样的。此类文件的通常位置是根目录,但您的项目中按约定定义 的任何其他位置都可以。触发器不能保证总是以这种方式运行,因此在这里使用某种更改内容触发器可能会更好。
    • 对不起,英语不是我的母语。我的第一个问题想问的是'在我提交之后,我将触发一个脚本来更新 VERSION 文件,但是我必须再次提交那个新的 VERSION 文件,所以 CHANGENUM 也会再次改变'。这里好像是个循环。
    • @aXqd:通常,这种触发器只能检测到一个文件的提交(VERSION 一个)......并且不会在那个中做任何事情> 案例。
    猜你喜欢
    • 2012-10-12
    • 2010-12-22
    • 2014-10-29
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多