可以使用 svn log 命令配合 --author 和 --since/--until(或 --revision {start}:{end})参数直接筛选特定作者在指定时间段内的提交记录,支持本地工作副本或远程 url,无需额外工具;示例:svn log --since 2024-01-01 --until 2024-06-15 --author "zhangsan" -v。

可以使用 svn log 命令配合参数筛选特定作者在指定时间段内的提交记录,无需额外工具或图形界面。
使用基础命令筛选作者和时间范围
SVN 自带的 svn log 支持按作者(--search 或 -l + 手动过滤)和日期(--revision 或 --since/--until)筛选。推荐组合使用以下参数:
-
--revision {2024-01-01}:{2024-06-30}:限定日期范围(注意花括号和英文冒号) -
--author "username":精确匹配提交作者(区分大小写,需与 svn 用户名一致) -
--quiet(可选):只显示提交版本号、作者、日期,适合快速浏览 -
--verbose(可选):显示每次提交修改的文件路径
示例命令:
《SVN视频教程》,SVN:全称Subversion,是代码版本管理软件,管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。许多人会把版本控制系統想像成某种“时光机器”。
处理本地工作副本与远程仓库的区别
如果在本地工作副本目录中执行,可省略 URL;但时间筛选依赖服务端日志,所以必须能访问 SVN 服务器。若本地未更新到最新版本,svn log 可能无法显示近期提交——建议先运行 svn update 确保元数据同步。
- 本地执行时,确保已执行过
svn checkout或svn switch - 若提示“Unable to connect”,检查网络、权限或是否误用了本地文件路径代替 SVN URL
- 对非标准分支(如
/branches/feature-x),请将 URL 明确指向对应路径
批量提取或导出结果
命令行输出可直接重定向保存为文本,便于后续查看或分析:
svn log --revision {2024-01-01}:{2024-12-31} --author "lisi" > lisi_2024_commits.txt- 加
--xml参数可生成结构化 XML,适合脚本解析(注意:部分旧版 SVN 客户端不支持该选项) - 用
grep进一步过滤关键词(如| grep "bugfix")
常见问题提醒
作者名必须与 SVN 服务端记录完全一致,常见坑点:
- 邮箱格式(如
zhangsan@company.com)可能被记录为作者,而非昵称 - 大小写敏感:
"ZhangSan"≠"zhangsan" - 空格或特殊字符需用引号包裹,Windows 下建议用双引号
- 时间范围使用 UTC,若服务器时区不同,可能需前后各延半天测试










