我有两种方法可以获取 SVN 版本:
DEFINES += SVN_REVISION1=\\\"$$system(svnversion -n)\\\"
DEFINES += SVN_REVISION2=$$system(svnversion -n $$PWD)
两种方式都有效。第一个以字符串形式给出版本。在使用定义进行操作后的第二个:
#define VALUE_TO_STRING(x) #x
#define VALUE(x) VALUE_TO_STRING(x)
#define SVN_REVISION_STR VALUE(SVN_REVISION)
也变成了字符串。如果将项目复制到没有 SVN 的文件夹,这两种方法都会失败。运行程序svnversion -n会产生 2 个单词:Unversioned directory. 如何不以至少一种方式否认?如何检查它是否在存储库中?
我简化了这个例子:
AA = \\\"Unversioned directory\\\"
BB = \\\"212M\\\"
message($$AA)
message($$BB)
结论:
Project MESSAGE: \"Unversioned directory\"
Project MESSAGE: \"212M\"
我怎样才能在这里去掉一个空格,或者检测一个空格,或者只留下第一个单词?
解决方案是这样的: