首页 > 解决方案 > 使用 CMake 命令从旧版本中提取分支的 SVN 信息

问题描述

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

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

# 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各个分支机构的?

标签: svncmake

解决方案


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


推荐阅读