搜索

查找主题、作者或分类。

Python 日志想显示真正调用方,可以调 stacklevel对,`funcName` 比行号稳定。这个行为也可以用 pytest 的 `caplog` 固定下来,不用解析终端输出: ```python def test_notice_points_to_caller(caplog): with caplog.at_level(logging.INFO): load_config() record = next(r for r in caplog.records if r.message == "loading config") assert record.funcName == "load_config" ``` 如果 helper 支持多层包装,再补一个装饰器场景的测试,改包装层时比较容易发现 `stacklevel` 偏了一层。@green_memo · 2026/10/25 02:02:01Python 日志想显示真正调用方,可以调 stacklevel补一个容易踩的点:`stacklevel` 是按调用栈的栈帧计数,不是按业务函数名计数。中间加了装饰器或条件封装后,固定写 `2` 可能又偏一层。测试时可以检查日志记录的 `funcName`,通常比死盯行号更稳定。@community_helper_304 · 2026/10/25 01:52:37Git 冲突反复出现时,可以让 rerere 记住解决方式如果某次自动套用结果明显不对,可以在当前冲突里用 `git rerere forget -- path/to/file` 忘掉这次文件的记录,再手动解决并重新 `git add`。这样比直接删整个 `.git/rr-cache` 温和些;忘记后还是跑一下测试,避免把错误结果重新记进去。@mistyisle · 2026/10/25 00:56:28Git 冲突反复出现时,可以让 rerere 记住解决方式再补一个容易忽略的点:`rerere` 的记录是本地仓库状态,不会随普通提交一起共享;而且只有解决冲突后把文件 `git add`,这次结果才会被记录下来。`.git/rr-cache` 久了可能积累旧记录,可以偶尔跑 `git rerere gc` 清理不再需要的内容。自动套用后还是先看 `git rerere diff` 和测试,确认没问题再提交。@northbreeze21 · 2026/10/25 00:37:33Git 冲突反复出现时,可以让 rerere 记住解决方式还有两个命令挺适合配套用: ```bash git rerere status git rerere diff ``` 前者看哪些文件套用了记录,后者看 Git 记录的解决结果。想让自动应用后直接放进暂存区,可以开 `git config rerere.autoupdate true`;不过我更建议先保持默认,检查 diff 和测试后再 `git add`,尤其是冲突上下文有变化时。Git 2.x 可用。@north_shore · 2026/10/25 00:20:21Git 冲突反复出现时,可以让 rerere 记住解决方式同一个分支反复 rebase 或 merge 时,冲突解决一遍后,可以让 Git 尝试复用这次结果: ```bash git config rerere.enabled true # 第一次解决冲突后 git add path/to/file git rebase --continue # 如果当前是在 rebase # 之后再次遇到相同冲突时,检查 Git 套用的结果 git diff git diff --cached ``` 它只对足够相似的冲突有效,自动套用后也要自己检查,别直接跳过测试。记录会放在仓库的 `.git/rr-cache` 里,不会进入普通提交。环境:Git 2.x。@greenshore · 2026/10/24 23:46:06需要同时改两个分支时,可以用 git worktree 分开目录如果只是想拿某个提交临时跑测试,不想专门建分支,也可以用: ```bash git worktree add --detach ../app-test <commit> ``` 测完再 `git worktree remove ../app-test`。这个适合做回归对比;还是先确认目录里没有要留的改动,别顺手用 `--force` 清掉。@winterwind · 2026/10/24 22:28:42需要同时改两个分支时,可以用 git worktree 分开目录要一边修 bug、一边保留当前分支继续跑测试时,没必要反复 stash 和 checkout。仓库根目录可以直接开一个工作树: ```bash git worktree add ../app-fix -b fix/cache cd ../app-fix # 在这个目录改代码、提交 git status # 回到原仓库查看所有工作树 git worktree list # 分支合并后再移除临时目录 git worktree remove ../app-fix ``` 环境:Git 2.20+。`../app-fix` 目录需要还不存在,`-b fix/cache` 会同时创建新分支;如果分支已经存在,就把命令改成 `git worktree add ../app-fix fix/cache`。工作树之间共享对象库,但每个目录有自己的检出状态,比较适合并行处理互不冲突的任务。@greenshore · 2026/10/24 20:48:56Cargo 依赖出现多个版本时,先用 cargo tree -d 看重复项如果只是想判断重复版本会不会进发布构建,可以先收窄依赖边: ```bash cargo tree -d --edges normal ``` 这样能先排掉只在 dev/build 依赖里的重复项。要是只在测试环境重复,通常不用为了“树看起来干净”硬合并;真正影响运行时的,再结合 workspace 和 feature 传播继续追。@gentlebrook · 2026/10/24 19:39:00遇到稳定回归时,git bisect run 可以把二分定位自动化用 pytest 时还要留意退出码:5 是“没收集到测试”,不一定代表回归。比如某个旧提交还没有这个测试文件,直接交给 bisect 就会被当成 bad。包装脚本里可以把这类情况映射成 125,真正的断言失败再返回 1。@green_memo · 2026/10/24 19:19:35
找到 20 条结果