将颠覆存储库编号放入代码中

2024-01-09

我想实现一种在代码中记录项目版本的方法,以便在测试时使用它并帮助跟踪错误。 看起来最好使用的版本号就是 Subversion 的当前修订版号。有没有一种简单的方法可以将这个数字挂接到(在我的例子中是C++)头文件或其他文件中,然后我可以在代码中获取它?我想这是一个提交后钩子什么的?

有谁有实现此功能的经验(请分享代码?),或者可以建议更好的替代方案吗? 谢谢。


两种方式:

Embed $Id$ or $修订$在代码内。然后设置svn:keywords="修订 ID"文件上的属性。这将为您提供该源文件的最后修改版本。适合较小的项目和脚本。

或者,使用 Makefile 驱动的进程和命令行工具 svnversion。 (特定于语言 - 这应该适用于 C/C++)

echo -n "#define VERSION 1.0.1-" > version.h
svnversion -n . >> version.h

或者一些使用 sed 和 version.h.in 的更复杂的构建脚本。然后就#include 版本.h

这将为您提供存储库版本号,该版本号将随着每次提交/更新而变化,并且对于大多数项目来说可能是更合适的版本号。

注意:我还使用了手动更新的人类可读版本字符串。该示例给出:版本:1.0.1-r13445

~J

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将颠覆存储库编号放入代码中 的相关文章

  • 颠覆和混合修订:破坏构建的秘诀?

    在使用 TFS 一段时间后 我刚刚回到 subversion 一般来说我已经很退出了 有一件事情我记得不一样 我不记得能够从过时的工作副本中提交 或者也许我的记忆力让我无法理解 过时 的定义 我认为 过时 意味着自从我上次更新工作副本以来
  • 触发“对等方重置连接”

    我想测试当发生 对等方重置连接 错误时我们的应用程序 嵌入式 ftp 服务器 中发生的日志记录 这个帖子 https stackoverflow com questions 1434451 connection reset by peer很
  • 两个程序对象运行时比较的方法

    我正在进行一种特定类型的代码测试 该测试相当麻烦并且可以自动化 但我不确定最佳实践 在描述问题之前 我想澄清一下 我正在寻找合适的术语和概念 以便我可以阅读有关如何实现它的更多信息 当然 欢迎就最佳实践提出建议 但我的目标很具体 这种方法叫
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • 如何在 Django Rest 框架中编写“删除”操作的测试

    我正在为 Django Rest Framework API 编写测试 我一直在测试 删除 我对 创建 的测试工作正常 这是我的测试代码 import json from django urls import reverse from re
  • 无法获取本地或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉

    Visual Studio 2010 会删除 没有其他词 不安全块中函数参数之一中的数据 什么可能导致此错误 调试器显示以下消息 Cannot obtain value of local or argument as it is not a
  • gdb 在 docker 上立即退出“进程已完成,退出代码 1”或 lldb“数据包返回错误 8”。另外:如何在 docker 中允许进行 C++ 调试

    这花了我一整天的时间才找到 所以我将其发布以供将来参考 我正在 docker 镜像上开发 C 我正在使用克利翁 我的代码是在调试模式下编译的 并且在运行模式下运行良好 但是当尝试调试时 进程会立即退出 并显示非常丰富的信息 Process
  • Maven 中不同配置文件的不同 SCM

    在我的项目中 我们必须使用 maben build number 插件来构造 jar 的最终名称 为此我们使用 SCN 的修订版 因此我们需要 SCM 但是我们在无法直接访问的受控环境和本地测试环境上有两个 SVN 因此对于我们的 poup
  • 使用 jasmine 在 angularJS 中注入服务来测试控制器

    我想了解如何使用 jasmine 和 angularJS 测试我的代码 我编写了一个带有控制器和注入服务的测试项目 现在我想测试控制器并尝试模拟注入的服务 但我没有找到一种方法来测试我的控制器的 到达 功能 这是我的jsfiddle htt
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • Xcode 调试器 - 如何在 CPU 指令级别单步执行

    这绝对是令人着迷的 但我对编译器如何巧妙地将 C 代码转换为机器指令感到着迷 由于我对某些指令有点模糊 因此如果我能够在单个机器指令级别 低于 C 语句级别 可能会生成多个 CPU 指令 观察已编译程序的操作 将会很有帮助 换句话说 我可以
  • 在 Spring Boot 测试期间替换 @Configuration 中的 @Value 属性

    Scenario 我有一个 Spring Boot 应用程序 Configuration带注释的 Spring 配置类 其中包含一些 Value带注释的字段 为了进行测试 我想用自定义测试值替换这些字段值 不幸的是 这些测试值不能使用简单的
  • 如何在不删除 Subversion 中文件的情况下将文件从版本控制中删除?

    我不小心用 add 命令向 SVN 添加了一个二进制文件 现在我想将其从版本控制中删除 但不删除该文件 我该怎么做呢 svn rm 保持本地
  • Django:测试客户端的上下文在 shell 中为空

    我无法访问context的属性HttpResponse来自 ipython 的对象 但单元测试访问context 这是单元测试 测试运行正常通过 from django test import Client TestCase from dj
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • IntelliJ IDEA 中多个 SVN 分支的工作流程

    我想使用 IntelliJ IDEA 在 SVN 主干和一个或几个功能分支之间轻松切换 最好能够同时在多个分支上工作 我有一些 本地 配置 例如用于集成测试的数据库设置和启用的调试日志记录 我想继续使用而不是提交到 SVN 各种选择的优缺点
  • Nodejs 调试生产中的错误

    我有一个在生产环境中运行的 Nodejs 脚本 我不太可能 千分之一 遇到这样的错误 TypeError value is out of bounds at checkInt buffer js 1009 11 at Buffer writ
  • 在 Mac 上使用 Eclipse 进行 C++ 调试器

    当我最终设置我的 mac 来使用 eclipse 后 我无法调试 我尝试通过谷歌寻求帮助 但没有一个答案对我有用 所以 我需要有人帮助我在 eclipse 上安装和使用 c c 调试器 我安装了 Xcode 5 0 感谢您的帮助 Roy 您
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • MS Source Server - 使用 srctool 查看时源流显然不存在

    我一直在尝试安装 MS 调试工具中的 MS Source Server 内容 目前 我正在通过 Subversion 索引命令运行我的代码 pdbs 该命令现在按预期运行 它为给定的 pdb 文件创建流并将其写入 pdb 文件 但是 当我在

随机推荐

  • 如何在 XCode 4.3 中为仅限 iPhone 的应用程序指定 iPad Retina 图标?

    我的 iPhone 应用程序图标在 iPhone Retina 和 iPad 中显示良好 但在 iPad 视网膜 模拟器和设备 上 我得到一个图标 显然包含应用程序的开始屏幕 鉴于我的应用程序仅针对 iPhone 设计 而非 通用 因此 X
  • 当我的网站打开多个选项卡时,为什么 setTimeout 会加速?

    我有一个每秒倒计时的计时器 它工作得很好 直到用户打开我的网站的 3 或 4 个选项卡 此时最新选项卡的计时器速度变为两倍或三倍 我目前只能在 IE8 中重现该错误 我之前使用的是 setInterval 并且也可以在 Firefox 中重
  • 使用itextsharp将字体嵌入到pdf中

    我尝试使用 itextsharp 5 2 1 0 嵌入字体 但出现错误 字体是 KozGoPro Light otf 经过一番研究后发现它是日语字体 我已经尝试过以下 Dim tblx1 As PdfPTable New PdfPTable
  • HTTP 标头中的“Content-Length”字段是什么?

    这是什么意思 使用标头中指定的编码的编码内容字符串的字节数 内容字符串的字符数 特别是在以下情况Content Type application x www form urlencoded 它是请求或响应正文中数据的字节数 正文是标题下方空
  • 如何将文件句柄传递给函数?

    当我运行下面的代码时我得到 Can t use string F as a symbol ref while strict refs in use at T pl line 21 其中第 21 行是 flock fh LOCK EX 我究竟
  • glDrawElements 使用了错误的 VBO?

    我正在尝试在屏幕上渲染两个不同的对象 据我所知 问题是OpenGL使用了错误的顶点缓冲区 但使用了正确的索引缓冲区 但我不太确定我目前正在做的任何事情 因为我几乎已经开始再次学习OpenGL 这是当前显示的内容 http puu sh ek
  • Python itertools 产品,但有条件吗?

    我有一个函数 fun 需要几个参数 p0 p1 对于每个参数 我给出一个可能值的列表 p0 list a b c p1 list 5 100 我现在可以为 p0 p1 的每个组合调用我的函数 for i in itertools produ
  • en_US 或 en-US,您应该使用哪一个? [复制]

    这个问题在这里已经有答案了 假设您想在数据库中存储用户首选项的区域设置 您将使用哪个值 en US 或 en US 它们是两个标准 但是您更喜欢使用哪一个作为您自己的应用程序的一部分 Updated 似乎许多网站都使用破折号而不是下划线 例
  • 以纱线集群模式在 YARN 上运行 Spark:控制台输出去了哪里?

    我按照此页面在 YARN 上以纱线集群模式运行 SparkPi 示例应用程序 http spark apache org docs latest running on yarn html http spark apache org docs
  • http-equiv="refresh" 是否保留引用信息和元数据?

    如果我设置一个这样的页面 执行重定向时浏览器是否会发送引用者信息和其他元数据 此处测试时 Firefox 和 IEdo not但铬does发送引荐来源网址 尽管这也不一致 无论它是否发送到同一域 因为我找不到任何说明什么的规范should是
  • MVC 的缓存层 - 模型还是控制器?

    我正在重新考虑在哪里实现缓存部分 您认为最合适的实施地点在哪里 在每个模型中 还是在控制器中 方法 1 伪代码 mycontroller php MyController extends Controller class function
  • 从 ActivityGroup 开始ActivityForResult?

    尝试从活动组启动活动时 我似乎无法得到任何结果 我已将 onactivityresult 放入活动和活动组中 具体来说 我试图让用户从 Intent ACTION GET CONTENT 中选择照片 视频 但我从来没有得到任何回报 我究竟做
  • 对于给定的有限代表字符串列表,正则表达式的语法推理?

    我正在分析一个大型公共数据集 其中包含许多详细的人类可读字符串 这些字符串显然是由某些常规 在形式语言理论意义上 语法生成的 逐一查看这些字符串组以了解其中的模式并不太难 不幸的是 大约有 24 000 个独特的字符串被分为 33 个类别和
  • 在 Jersey JAX-RS 服务器中返回大对象时如何设置 Content-Length

    我有时想返回一个大的 几个 MB 二进制对象作为 JAX RS 资源方法的响应 我知道对象的大小 并且希望在响应上设置 Content Length 标头 并且不希望使用分块传输编码 在 Jersey 1 x 中 我使用自定义 Messag
  • Serde 反序列化为多个结构之一?

    有没有一种好的方法可以暂时将 JSON 反序列化为不同的结构 在文档中找不到任何内容 不幸的是 结构有 标签 来区分 如下所示如何有条件地将 JSON 反序列化为枚举的两个不同变体 https stackoverflow com quest
  • pandas 中 header 和 Skiprow 的区别不清楚

    任何人都可以用一个很好的例子来详细说明 header 和skiprows 在语法中的区别 pd read excel 名称 标题 数字 skiprows 数字 您可以关注本文 https towardsdatascience com imp
  • 更新状态 - 为什么在调用 setState 时创建新的状态副本?

    反应文档 永不变异this state直接调用setState 然后 可能会取代你所做的突变 对待this state就好像它是 不可变的 很清楚 class App extends React Component state data 以
  • Django 管理命令在 cron 中不起作用

    我在安排时间时遇到问题manage py celery call myapp tasks mytask对于我的用户 crontab 当 cron 尝试运行该作业时 它会在 stderr 中获取此信息 它会邮寄给我 如 var mail ka
  • Android 对话框中的 EditText

    我已经在对话框中进行了编辑文本 但无法更改高度 AlertDialog Builder editalert new AlertDialog Builder this editalert setTitle messagetitle edita
  • 将颠覆存储库编号放入代码中

    我想实现一种在代码中记录项目版本的方法 以便在测试时使用它并帮助跟踪错误 看起来最好使用的版本号就是 Subversion 的当前修订版号 有没有一种简单的方法可以将这个数字挂接到 在我的例子中是C 头文件或其他文件中 然后我可以在代码中获