是否可以将RCS Revision关键字用于库路径?

时间:2011-10-07 15:20:04

标签: perforce

我设法在Perforce中使用$ Revision $ RCS关键字:当我更新文件时 //depot/dev_projects/main/src/include/version.h它会在文件中更新我的定义,很好:

#define VCS_VERSION "$Revision: #4 $"

包括version.h文件的修订版。

我真正需要的是将项目//depot/dev_projects/main/src/的文件夹的修订版嵌入到version.h文件中。因此,如果有人将文件提交到例如//depot/dev_projects/main/doc/readme.txt,我希望在从版本库中获取最新版本后,在version.h中看到#define VCS_REVISION "$Revision: #5 $"

有办法吗?

2 个答案:

答案 0 :(得分:1)

您需要担心两种情况:退出文件和新文件。对于现有文件(我假设您正在讨论c / cpp文件),您只需'p4重新打开'文件类型为'text + k'的文件,然后提交这些文件:

p4 reopen -t text+k //groovy_project/src/....cpp

这将重新打开// groovy_project / src位置中的所有.cpp文件并将它们设为'text + k'(+ k表示RCS关键字扩展,但我想你知道,因为你有关键字扩展工作)

对于新文件,您应该使用'p4 typemap'命令。 'p4 typemap'将在编辑器中显示typemap。此表单包含文件到文件类型的映射,用于添加到库的新文件。这些是新文件将接收的默认文件类型(除非在添加文件时显式添加的新文件使用不同的文件类型)。例如,如果你有

TypeMap:
       text+k //groovy_project/src/....cpp

在你的typemap中,// groovy_project / src文件夹中的所有新.cpp文件都将获得text + k filetype,允许进行关键字扩展。

注意,如果您明确地为新文件提供的类型与typemap中的类型不同,则使用显式指定的类型。假设你有上面的类型图。命令:

p4 add -t text ~/projects/groovy_project/src/newfile.cpp

此文件将作为文本添加到库中,而不是文本+ k。

我希望这些信息有所帮助。

编辑:

阅读原始问题的编辑后,简答为否,您无法为文件夹添加修订。稍微长一点的答案是Perforce并不真正了解文件夹/目录。它只知道文件(因此也知道文件的路径)。目录不是数据库中的单个对象,它们可以使您想要的工作。

答案 1 :(得分:0)

我想你想要$ File $关键字:

http://kb.perforce.com/article/54/using-rcs-keywords