如何通过Tortoise SVN或SQLite查询指定时间段的新增文件?
查询指定时间段代码库新增文件的方法
一、使用TortoiseSVN实现
图形界面操作
- 右键目标工作副本,选择「TortoiseSVN」→「显示日志」
- 在日志窗口顶部的日期筛选栏,输入起始日期
2022-01-01和结束日期2022-10-10,点击应用筛选 - 点击日志窗口的「导出」按钮,选择CSV格式导出日志。打开导出文件后,筛选
Action列为A(代表新增)的条目,即可得到新增文件列表,统计行数就是文件数量 - 也可以在日志窗口的「显示」菜单中勾选「仅显示添加的文件」,直接在界面查看所有新增文件,右键可复制列表
命令行方式(TortoiseSVN自带svn命令工具)
打开命令提示符,进入工作副本目录,执行以下命令:
# 列出指定时间段内的新增文件 svn log -v -r {2022-01-01}:{2022-10-10} | findstr "^A" # Windows环境 svn log -v -r {2022-01-01}:{2022-10-10} | grep "^A" # Linux/macOS环境 # 统计新增文件数量 svn log -v -r {2022-01-01}:{2022-10-10} | findstr "^A" | find /c /v "" # Windows svn log -v -r {2022-01-01}:{2022-10-10} | grep "^A" | wc -l # Linux/macOS
二、使用SQLite查询(基于TortoiseSVN本地缓存)
TortoiseSVN的工作副本目录下的.svn/wc.db是SQLite格式的缓存数据库,可直接查询:
- 用SQLite命令行工具或支持SQLite的编辑器打开
.svn/wc.db - 执行查询语句获取新增文件列表:
SELECT n.local_relpath AS 新增文件路径, datetime(r.date/1000000, 'unixepoch') AS 提交时间 FROM NODES n JOIN REVISIONS r ON n.created_rev = r.revision WHERE r.date BETWEEN strftime('%s', '2022-01-01') * 1000000 AND strftime('%s', '2022-10-11') * 1000000 AND n.kind = 'file';
- 执行统计语句获取文件数量:
SELECT COUNT(*) AS 新增文件总数 FROM NODES n JOIN REVISIONS r ON n.created_rev = r.revision WHERE r.date BETWEEN strftime('%s', '2022-01-01') * 1000000 AND strftime('%s', '2022-10-11') * 1000000 AND n.kind = 'file';
注:
r.date存储的是微秒级时间戳,所以需要用strftime转换日期为秒级后乘以1000000匹配格式
内容的提问来源于stack exchange,提问作者Joao
相关产品推荐
相关产品推荐

