使用 CMake 命令从旧版本中提取分支的 SVN 信息

Extracting SVN info of a branch from a older revision using CMake commands

我有一个与 this 有关的问题,但更多与 CMake 命令有关。

我在我的项目中使用查找包来获取有关我需要在我的应用程序中显示的工作副本修订的信息。

# Load built-in SVN module
find_package(Subversion)

if(SUBVERSION_FOUND)
    # WC_INFO will define ${PROJECT_NAME}_WC_REVISION among others
    subversion_wc_info(${PROJECT_SOURCE_DIR} ${PROJECT_NAME})

    set(${PROJECT_NAME}_VERSION_REVISION ${${PROJECT_NAME}_WC_REVISION})
endif()

问题:

我从旧版本 (#300) 创建了一个分支来修复一些错误并将新分支切换到当前工作副本。但是当我在新创建的分支上执行 运行 find_package(Subversion) 命令时,它会给我相同的 WC 副本修订 #363。我期待得到 #355${${PROJECT_NAME}_WC_REVISION} 新分支的工作副本修订应该是 #355。但是我得到了两个分支的 #363

      Main
        |
   #300 |---branch
        |   |
        |   | 
        |   HEAD (committed changes at #355)
        |
        |
       HEAD
       #363

我在这里遗漏了什么吗?我认为 ${${PROJECT_NAME}_WC_REVISION} 应该给我当前请求分支的 HEAD 修订版。我如何获得各个分支的 svn HEAD info

Subversion 存储库中切换分支时,您需要删除 CMakeCache.txt 并重新运行 CMake