Version control 如何控制Perforce中的版本号?

Version control 如何控制Perforce中的版本号?,version-control,perforce,Version Control,Perforce,我想要自动生成版本号,格式为“x.x.x”,或者类似于Perforce中的“git标签”。有什么想法吗?我不知道git标签会自动生成一个版本号。 你可以暗指 RCS可以是一种方法,而不是生成一种 版本号方案(p4),加上标签需要是。 您将需要某种脚本来生成一个脚本(下面的INF来自p4邮件列表): 对于坚持“每一次更改都需要新版本戳记”的dweeb,我建议如下:[警告:这是以性能为中心的。] 您的makefile可以通过运行以下脚本生成version.h 是这样做的: 二,。然后进行构建并生成版

我想要自动生成版本号,格式为“x.x.x”,或者类似于Perforce中的“git标签”。有什么想法吗?

我不知道git标签会自动生成一个版本号。
你可以暗指

RCS可以是一种方法,而不是生成一种

版本号方案(p4),加上标签需要是。
您将需要某种脚本来生成一个脚本(下面的INF来自p4邮件列表):

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

  • 您的makefile可以通过运行以下脚本生成version.h 是这样做的:
  • 二,。然后进行构建并生成版本字符串(对于任何 参考
    版本
    )自动正确。
    当然,我会为“官方版本”和 “隔夜构建”并使开发人员使用的默认
    version.h
    具有硬编码字符串,其效果是“从主代码行构建,但不是正式的-不要” 部署”


    对于Git2.27(2020年第二季度),“Gitp4”在RCS方面做得更好

    参见(2020年2月14日)和,(2020年2月11日)作者。
    (于2020年4月22日合并)

    :添加RCS关键字状态消息 签字人:本·基恩

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

    当修补程序失败时,会向用户发出故障警报,
    git-p4
    将尝试从文件中清除扩展文本并重新应用修补程序。
    当前版本的git-p4在删除RCS扩展后没有告诉用户重新应用尝试的结果,这可能会让人困惑

    清除RCS关键字后,在成功应用git修补程序后添加新的print语句


    我不知道git标记可以自动生成版本号。
    你可以暗指

    RCS可以是一种方法,而不是生成一种

    版本号方案(p4),加上标签需要是。
    您将需要某种脚本来生成一个脚本(下面的INF来自p4邮件列表):

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

  • 您的makefile可以通过运行以下脚本生成version.h 是这样做的:
  • 二,。然后进行构建并生成版本字符串(对于任何 参考
    版本
    )自动正确。
    当然,我会为“官方版本”和 “隔夜构建”并使开发人员使用的默认
    version.h
    具有硬编码字符串,其效果是“从主代码行构建,但不是正式的-不要” 部署”


    对于Git2.27(2020年第二季度),“Gitp4”在RCS方面做得更好

    参见(2020年2月14日)和,(2020年2月11日)作者。
    (于2020年4月22日合并)

    :添加RCS关键字状态消息 签字人:本·基恩

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

    当修补程序失败时,会向用户发出故障警报,
    git-p4
    将尝试从文件中清除扩展文本并重新应用修补程序。
    当前版本的git-p4在删除RCS扩展后没有告诉用户重新应用尝试的结果,这可能会让人困惑

    清除RCS关键字后,在成功应用git修补程序后添加新的print语句


    谢谢,沃克。我处理的不是一个C/C++项目,它只是一堆文档(我会定期用版本号对它们进行分类)。但我想基本的想法是一样的。我将创建一个版本文件,并使用您的脚本进行更新。我还有两个问题:1。我应该把这个版本文件放在哪里?如果我更新版本文件,我猜CHANGENUM会再次更改;2.这样,我就不能保证触发这个脚本来自动更新版本文件,对吗?(有几个人可以访问并更改此文件夹的内容)@aXqd:对于任何语言,想法都是一样的。这样一个文件的通常位置是根目录,但在项目中由约定定义的任何其他位置都可以。触发器不能保证总是以这种方式运行,因此某种形式的更改内容触发器在这里可能更好。对不起,英语不是我的母语。我想问的第一个问题是‘在我提交之后,我会触发一个脚本来更新版本文件,但是我必须再次提交新版本文件,所以CHANGENUM也会再次更改’。这里似乎是一个循环。@aXqd:通常,这种触发器只能检测一个文件的提交(版本)。。。在这种情况下我什么都不会做谢谢VonC。我处理的不是一个C/C++项目,它只是一堆文档(我会定期用版本号对它们进行分类)。但我想基本的想法是一样的。我将创建一个版本文件,并使用您的脚本进行更新。我还有两个问题:1。我应该把这个版本文件放在哪里?如果我更新版本文件,我猜CHANGENUM会再次更改;2.这样,我就不能保证触发这个脚本来自动更新版本文件,对吗?(有几个人可以访问并更改此文件夹的内容)@aXqd:对于任何语言,想法都是一样的。这样的文件通常放在根目录下
    CHANGENUM=`p4  changes  -m1 -s  submitted //depot/main/...#have  |  cut  -f2  -d' '`
    echo "#define VERSION    \"main codeline to change #$CHANGENUM\"  " > $SRC/include/version.h