小编bst*_*r55的帖子

.gitignore是否具有版本控制文件的等效文件?

这个问题以下问题有关:https://stackoverflow.com/search?q = [git] +%2Bassume-unchanged,但是,这些问题所提供的答案似乎都不符合我的需求.

我有一个由python脚本生成的头文件(key_info.h).为了聪明,我使用一行代码控制标题(key_info.h)的占位符版本:

int i = you_need_to_run_the_key_info_gen_python_script_to_generate_this_file();
Run Code Online (Sandbox Code Playgroud)

在运行python脚本之前,编译此代码会产生错误,告诉开发人员确切要做什么; 运行脚本.

当然,开发人员将继续运行python脚本来生成最新版本的key_info.h,代码将成功编译.然后,开发人员将继续进行一系列更改,然后"git commit"他们的代码.

我们遇到的问题是key_info.h现在已被修改.因此,git会将其作为修改来接收并允许它被提交.但是,此标头的生成版本永远不应受版本控制.我们需要占位符版本保持不变,以继续向开发人员提供编译错误提示.

我的第一直觉是使用.gitignore来阻止git在提交中获取key_info.h.然后.gitignore可以在开发人员之间轻松共享,因为.gitignore本身是受版本控制的.不幸的是,.gitignore仅适用于不受版本控制的文件.

我的下一个想法是使用'git update-index --assume-unchanged/path/to/file'.这在本地工作得很好,但我无法对其他开发人员强制执行此规则.在dev意外提交生成的头部之前,这只是时间问题.

所以我的问题是:有没有办法对文件进行版本控制,同时默默地强制执行一个规则,即在提交更改时要忽略该文件?我真正想要的是.gitignore版本控制文件.

git

8
推荐指数
1
解决办法
288
查看次数

我如何反复期待一系列电话?

我正在编写一个测试来验证图像处理线程上的调用顺序.相关的测试代码如下所示:

Sequence s1, s2;
...
EXPECT_CALL(*mMockVideoSource, getFrame()).InSequence(s2).WillRepeatedly(Return(mFakeBuffer));
EXPECT_CALL(*mMockProcessor, processFrame(_,_)).InSequence(s2).WillRepeatedly(Return(0));
EXPECT_CALL(*mMockVideoSource, releaseFrame(_)).Times(AnyNumber()).InSequence(s2);
...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,调用序列非常重要. getFrame(),processFrame()并且releaseFrame()必须按以下顺序进行调用.不幸的是,上面的代码并没有真正实现我想要的.上面的代码允许getFrame()在调用之前重复调用processFrame(),并且对getFrame()after 的调用releaseFrame()被认为是错误,因为它会破坏序列.

有没有办法期望重复进行特定的呼叫序列?我不关心序列执行的次数,只要按顺序调用函数:get,process,release,get,process,release ......

c++ googletest googlemock

6
推荐指数
1
解决办法
5509
查看次数

是否可以获取共享库的版本?

我正在尝试查找软件行中的错误。我有两个发布版本2.0.962和2.0.966。这些版本之间的唯一区别是lib.so文件。为了弄清楚从哪里开始在lib.so的源代码树中查找,我需要知道每个发行版中的版本号。

有用于打印共享对象版本的命令行工具吗?

c++ linux android adb

5
推荐指数
1
解决办法
582
查看次数

标签 统计

c++ ×2

adb ×1

android ×1

git ×1

googlemock ×1

googletest ×1

linux ×1