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

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(使用前将#替换为@)

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

  • git-svn SVN 作者文件的相对路径?

    我已经使用 git svn 从工作中克隆了一个 SVN 存储库 在最初的克隆过程中 我提供了一个 SVN 作者文件 当我进行初始克隆时 git 设置了authorsfile作为绝对路径 但是 我在工作机器和笔记本电脑上保留了这个 git 存
  • 您对版本控制进行到什么程度了? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 是否可以为 Visual Studio 2010 编写一个调试器可视化工具来显示 64 位 .NET 程序?

    是否可以为 Visual Studio 2010 编写一个调试器可视化工具来显示 64 位 NET 程序的数据 我已经为 32 位编程编写了它们 但我无法设法使用或编译它们以用于 64 位应用程序 有什么建议么 我刚刚经历过同样的问题 我使
  • 如何在调试器中显示 TStringList 的内容?

    我想在调试应用程序时显示 TStringList 的全部内容 相反 我只是得到指示 Flist 仅显示地址 如果您使用的是 Delphi 2010 或更高版本 调试器允许使用调试可视化工具 http docwiki embarcadero
  • SVN 提交前撤消删除

    如果您从 SVN 工作副本中删除了一个目录 但尚未提交 则如何将其恢复并不明显 当您输入 svn undo d 时 Google 甚至建议将 svn undo delete before commit 作为常见查询 但搜索结果没有任何帮助
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • Laravel 集成测试:如何断言一个 URL 已被调用但另一个 URL 没有

    我想测试一个向某个 URL 发出请求的控制器 例如 http example com api say hello 但它不会向另一个 URL 发出请求 例如 http example com api say bye bye 我想测试的控制器功
  • 递归删除属性

    Tortoise SVN 可以选择递归地将属性应用于所有子文件夹 子文件 现在我需要删除这个属性 我怎样才能递归地做到这一点 我没有找到如何使用 GUI 递归删除属性 但您可以使用 svn 命令行工具删除属性 svn propdel PRO
  • Intellij - 调试器断点不再工作

    我正在正常工作 调试Java Maven项目与IntelliJ 2018 2 1 然后我单击 Intellij 停止应用程序以对代码进行一些修改 当我在调试模式下再次启动应用程序时 它 调试器 只是停止工作 现在 应用程序需要大约 10 2
  • 调试:在 Android 1.0 中找不到文件

    今天我更新到 Android Studio v 1 0 在尝试编译任何项目时出现以下错误 app build intermediates classes debug 找不到文件 问题是在更新之前我没有任何问题 这是我实际尝试编译的代码 构建
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 使用 Makefile 项目在 Visual Studio 中自定义调试命令

    我在 Visual Studio 2010 中有一个由 Makefile 支持的项目 实际上使用 NAnt 但这不是重点 构建过程的输出是一个 elf 文件 我有一个单独的非 VStudio 调试器 可以在该 elf 文件上运行来调试它 构
  • svn propget svn:忽略。什么也没返回,但 svn 显然忽略了我的文件

    我正在尝试将现有的 iPhone 项目添加到 unfuddle com 上的 subversion 帐户 除了一些被忽略的 a 文件之外 一切看起来都很顺利 我知道它们被忽略 因为除非我使用 no ignore 标志 否则我看不到它们处于
  • 是否有保留用于测试/示例的社会安全号码?

    是否有一个按惯例使用的规范 测试 SSN 因此所有看到它的人都知道它不是真正的 SSN 有多个号码组和一些永远不会被分配的特定号码 数字与任何数字组中的所有零 000 xx 00 xx 0000 http www ssa gov histo
  • SVN 存储库大小莫名其妙地从小差异增加到大文件

    我不明白为什么大文件的微小差异会导致我的颠覆存储库增长如此之多 我有一些测试使用的数据库内容的 zip 文件 我想将每个新版本的测试数据存储在我们的 Subversion 存储库中 我做了一些实验 检查了 data zip 的最后几个版本
  • 如何告诉 subclipse 在提交时忽略修改的文件

    我有一个受版本控制并由我修改的文件 但是我不想提交它 我希望只有我才能拥有我所做的特定更改 而其他人都将拥有该文件的原始版本 我怎样才能做到这一点 我经常遇到同样的问题 我的解决方案是与变更集 如果您使用 Mylyn 每个更改都会添加到活动
  • TortoiseSVN 无法连接到 SlikSVN Subversion 服务器

    我已经在工作组中的一台计算机上创建了 SubVersion 服务器 从我的开发盒中 我可以毫无问题地访问存储库并签入 签出文件 我刚刚安装了 TortoiseSVN 无论我做什么 它都不会连接到服务器上的存储库 我收到臭名昭著的错误 无法建
  • git-svn 如何知道要提交到哪个分支?

    我的存储库是 SVN 我使用 git 进行所有开发 我们有一个标准布局 我用以下命令初始化了我的本地存储库git svn init s
  • 如何调试仅在应用程序关闭时发生的崩溃? (德尔福)

    因此 经过最近的一些更改 我们发现我们最古老的应用程序之一有时会在关闭时崩溃 这会以 运行时错误 216 消息的形式或来自 Windows 错误报告的消息的形式表明应用程序已停止工作 该应用程序已经发出OutputDebugString 每

随机推荐

  • 如何在 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 头文件或其他文件中 然后我可以在代码中获