问题标签 [git-bisect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 执行 Git bisect 时如何忽略目录?
我有一个生产构建目录,它在合并分支时经常发生冲突。那是一个单独的问题。我需要使用 Git bisect 在提交历史记录中查找问题,但出现以下错误:
二等分:必须测试合并基础
错误:未跟踪的工作树文件 'problem_directory/filename.ext' 将被合并覆盖。
我可以problem_directory
在对分过程中忽略吗?
git - 如何获得 git bisect 的当前“状态”?
我正在对 oh-my-git 进行一些个人修改(在终端上显示 git 状态),我想显示当前 bisect 的“状态”。具体来说,我想获取最后一个 bisect 命令导致的剩余提交次数和大致步骤数,例如:
Bisecting: 9 revisions left to test after this (roughly 3 steps)
似乎获取此信息的唯一方法是实际执行git bisect good
or git bisect bad
。但是,我不想通过运行这些命令中的任何一个来更改 repo 的状态 - 我只想获得当前的 bisect 状态。
git - Git平分一个文件夹
我想git bisect
用来调试我正在开发的 Django 网络应用程序。但是,恢复到旧的提交会破坏整个站点,因为数据库架构更改如此频繁。我希望能够运行git bisect
,以便它只检出一个文件夹。在这种情况下,该文件夹将是static/
,因为我要调试的问题是在前端。
我已经尝试过git bisect start -- static/
,但这个命令只检查触及指定文件夹的提交(这与我想要的略有不同)。
简而言之,我希望能够运行类似的东西git bisect start --only-checkout=static/
,它只会检查我正在调试的特定文件夹。
谢谢!
git - git bisect 可以忽略文件夹,例如测试文件夹吗?
假设我之前为遗留系统设置了一个超级嗖嗖的测试框架。那就是特征 A 早在对特征 A 的测试之前就已经存在。特征 B、C 和 D 出现了,而我们没有意识到,在某个时候打破了对特征 A 的测试。
我们想找出是哪些功能做到了这一点。
现在我想运行:
问题是测试功能 A 的代码文件介于<bad>
和<good>
. 我试过手动提取代码,然后是各种配置和测试数据中断的路径(脆弱的代码?)。
有没有办法告诉git bisect
忽略文件夹?我可以想象有时会出现可怕的错误,但我猜这可能比其他方法更容易。
此处未解决如何在进行 Git bisect 时忽略目录?因为这涵盖了构建文件夹,解决方案是将它们从存储库中删除,但我想保持我的测试提交!
这个带有功能分支的 git bisect / 需要稍后提交来构建也有点不同,因为我没有使用补丁或功能分支(我应该吗?)而且解决方案似乎只是用于手动运行它,而不是git bisect run
它!
git - 如何测试提交是否在集合中?
在 git bisect 期间,如果被二等分的提交是一组感兴趣的提交的成员,我想采取特定的行动。具体来说,考虑这种情况:
B 和 C 都可以从 A 到达,但不能从彼此到达。在 bisect 期间,我想对 B 可以访问的提交应用一个补丁,因为 B 引入了一个不相关的错误,我想过滤掉那个噪音。检查 C 时不应应用补丁。
一般来说,测试提交 C 是否在从提交 A 开始可以访问 B 的提交集中的最佳方法是什么?理想情况下,这将是我可以传递给 git rev-list 的表达式,但我怀疑它需要的不止于此。
git - git bisect 不响应命令
我在一个名为的单独分支上redesign-test-fixes
,我运行git bisect start
. 之后,我测试我的错误并运行git bisect bad
. 终端不打印输出。然后我运行git bisect good
。同样的事情,终端上没有输出。好像 bisect 一开始就没有运行。通常我希望终端输出有关剩余步数的信息。出了什么问题,我该如何解决?我是否处于某种不允许我运行 bisect 的 git 状态。
git 状态响应:
但是,如果我运行git bisect start
git status 响应:
python - git-bisect,但对于 N 个 repos
我们的软件是模块化的,我在一个项目中有大约 20 个 git repos。
如果测试失败,有时很难找到匹配的提交,因为有几个开发人员在这 20 个存储库上工作。
我知道测试昨天有效,今天失败了。
有时我使用 git-bisec,但这仅适用于一个 git repo。
两个 git repos 中的更改通常会导致测试失败。
我可以自己编写一个循环遍历我的 N git repos 的脏脚本,但在这样做之前,我想知道专家将如何解决这个问题。
我使用 Python、Django 和 pytest,但 AFAIK 这对这个问题无关紧要。
python - 用二等分法查找 f(x) 在列表中的变化(在 Python 中)
推理:我试图在 Python 中实现类似于 的东西git bisect
,但基本上是一个目录列表。
我有一个(长)版本号列表,如下所示:
['1.0', '1.14', '2.3', '3.1', '4']
我有一个函数works()
,它接受一个版本号,并返回一个值。
[works(x) for x in my_list]
看起来像:
['foo', 'foo', 'foo', 'bar', 'bar']
......但跑步works()
非常昂贵。
我想做某种平分来找到变化的边界。
git - 将 gitflow 样式的 git 存储库与中断的中间提交一分为二
在 gitflow 模型的分支中存在无法编译或以其他方式破坏的中间提交是正常的。feature
唯一的问题是在合并到develop
应用审查和自动测试的分支时保持稳定。
git 可以在develop
分支上一分为二而不会从功能分支中遇到损坏的中间提交吗?
我不喜欢调整我的 bisect 测试脚本来跳过/解决功能开发中损坏的提交......
我考虑解决问题的一种方法是告诉 Git 以某种方式只遍历合并变更集......
git - git bisect 与 CRLF/LF 结合使用
我正在尝试git bisect
在公共回购中进行一些不良行为。
回购有:
- CRLF 的一些提交(我在 MacOS 上,所以期待 LF)
- 根目录中的
.gitattributes
文件,规范化 .c、.h 和 .java 文件
据我了解,现在.git/config
或~/.gitconfig
不应该像.gitattributes
优先级那样重要。
我的问题与此有关:当我使用 CRLF 检查提交时,本地文件会使用 LF 进行修改。这些文件显示为已修改git status
。然后,如果我尝试检查另一个提交,git 会拒绝以保护我的本地更改。美好的。
在这种checkout
情况下,我可以用 强制它-f
,然后继续。
问题是我似乎无法强迫git bisect skip
。如果我尝试,git
告诉我存储更改。我无法获得干净的工作文件(无论如何,存储都会给我留下修改过的换行符),而且我不能跳过。
我尝试复制临时文件.gitattributes
以使bisect
换行符保持不变,但随后它抱怨.gitattributes
未保存的更改。
有没有办法强制bisect
?