'SVN_REV' 在 git-svn 环境中构建目标时未声明

'SVN_REV' undeclared when build the target in git-svn environment

我使用以下命令从 svn 服务器获取存储库:

git svn clone ...

但是当构建特定目标时,stdout 显示如下:

error: 'SVN_REV' undeclared here (not in a function)
__attribute__((used)) u32 sys_fw_info = SVN_REV;

这是简化的 makefile:

haha: dirs revision
    -$(MAKE) -C ./src

revision:
    -$(SVNVERSION) . version.tmp build/svnrev.h

我试过以下方法:

  1. 如果我从 svn 服务器中的正常结帐存储库复制 .svn 文件夹 [因为我从 git-svn 获得的文件夹只有 .git 文件夹],然后我可以在git-svn环境下搭建haha的target

  2. 如果我手动执行以下命令并且不复制 .svn 文件夹:

    SubWCRev.exe . version.tmp  build/svnrev.h
    

构建过程仍然失败... 有以下两个问题:

  1. 我不知道.svn 文件夹是否与构建过程有一些依赖关系?
  2. 如何在本地优雅地使用 git-svn?

提前致谢!!!

I don't know if the .svn folder has some dependency with building process?

间接地。

必须 使用 subwcrev 预处理您的源代码(以便获得在 svnrev.h 中定义的变量),并且 subwcrev 必须能够访问用于获取基于 svn 的元数据(Git 的工作目录中不存在)的 Subversion 工作副本 (SubWCRev.exe .)

How can I use the git-svn elegantly locally?

您至少必须尝试检查 git svn info 的输出。 This question and answer of @bmv里面主要有帮助