SVN 查看历史信息最全、最实用的命令合集
(2025 年最新,直接复制粘贴就行,覆盖你 99% 的需求)
| 需求 | 推荐命令(直接用) | 说明与输出示例 |
|---|---|---|
| 1. 查看最近 10 次提交(最常用) | svn log -l 10 | 每个人每天必敲的命令 |
| 2. 查看整个项目全部历史(从第1版到最新) | svn log 或 svn log -v(显示改动路径) | 适合小项目 |
| 3. 查看某个文件/目录的历史 | svn log src/utils.cppsvn log src/ | 只看这个文件被谁改过 |
| 4. 查看某段时间内的提交 | svn log -r {2025-01-01}:{2025-11-22}svn log -r 2025-11-01:HEAD | 常用于周报、月报、审计 |
| 5. 查找谁在什么时候改了某一行代码(神技) | svn blame src/utils.cppsvn praise src/utils.cppsvn annotate src/utils.cpp | 每一行前面显示版本号+作者+时间 |
| 6. 查看某一次提交具体改了哪些文件和内容 | svn log -v -r 158svn diff -c 158svn diff -r 157:158 | -c = change,-v = verbose |
| 7. 查找包含某个关键词的提交(比如谁提交了“登录”功能) | svn log | grep -i loginsvn log | grep -E "(feat:.*登录|fix:.*密码)" | 超级好用 |
| 8. 查看当前工作副本是基于哪个版本检出的 | svn info | 显示 URL、Revision、Repository Root 等 |
| 9. 图形化查看历史(最直观) | TortoiseSVN → 右键 → “Show log” 命令行用 svn log --diff(1.14+ 支持) | Windows 用户必备 |
| 10. 一键查看今天我提交了什么 | svn log --search 用户名 -r {$(date +%F)}:HEAD | Linux/macOS 专用 |
超级实用的 8 条“一键命令”(建议收藏)
# 1. 最近 20 条提交(带改动路径)
svn log -l 20 -v
# 2. 今天所有人的提交
svn log -r {$(date +%F)}:HEAD
# 3. 我最近提交的 10 条(替换 zhangsan 为你的用户名)
svn log -l 10 --search zhangsan
# 4. 谁在什么时候改了这段关键代码(神技)
svn blame src/payment.cpp | grep -i "encrypt"
# 5. 查看第 158 次提交具体改了啥(最常用)
svn diff -c 158
# 或者更直观带颜色(需要 diff 支持)
svn diff -c 158 --diff-cmd diff --extensions '--color=always' | less -R
# 6. 查找所有包含“密码”“密钥”“secret”“token”的提交(安全审计必备)
svn log | grep -Ei "(password|secret|token|key|passwd)"
# 7. 查看某个 tag 是从哪个版本打的
svn log -v tags/RELEASE_1.0.0
# 8. 导出整个项目完整历史到文件(给领导、审计用)
svn log -v > svn_full_history_$(date +%F).txt
TortoiseSVN 图形化最快操作(Windows)
- 右键项目文件夹 → TortoiseSVN → Show log
- 立即看到彩色时间线
- 双击任意版本 = 看 diff
- 右键版本 → “Compare with working copy” / “Revert to this revision”
- 上方搜索框直接搜作者、关键词、提交信息
推荐别名(放进 ~/.bashrc 或 ~/.zshrc)
alias sl="svn log -l 10"
alias slv="svn log -l 20 -v"
alias today="svn log -r {$(date +%F)}:HEAD"
alias who="svn blame"
alias what="svn diff -c"
现在你查看 SVN 历史的速度已经超过 99% 的人了!
需要我帮你查什么?直接把需求告诉我,比如:
- “我想看最近 3 天谁动了 payment 目录”
- “帮我找所有包含数据库密码的提交”
- “第 158 版到底改了啥”
我 10 秒给你最精准的一句命令。