在svn中生成文件更改的历史记录

Jac*_*son 10 svn tortoisesvn

是否可以生成一个文件,其中包括对某个文件所做的所有更改的摘要(什么,何时,由谁)?曾经在VSS中有这样的选项(我认为它被称为"历史"),它很适合回去跟踪谁做出了一定的改变以及何时做出改变.

顺便说一句,我正在使用tortoisesvn

先感谢您

pap*_*jam 15

右键单击资源管理器中的文件,然后"TortoiseSVN","显示日志".

取消选中"隐藏不相关的已更改路径"取消选中"复制/重命名时停止"选中"包括合并的修订"单击"全部显示"

现在,在顶部窗格中显示包含用户名,日期和日志的修订列表.单击您感兴趣的修订版,您可以在第二个窗格中看到完整的日志.第三个窗格显示所选修订中已更改的每个文件.双击此窗格中的文件,您可以看到该文件中所做的更改.

如前所述,Tortoise具有"责备"功能,通常非常有见地,但它只能显示每行源的最新编辑.如果有人删除了行,你根本看不到他们的变化.

编辑:

如果您愿意使用命令行工具和bash,之前已经回答过这个问题: 如何在SVN中查看文件的所有历史更改

在Windows PC上,获取bash和命令行SVN的最佳方法是安装Cygwin.


lad*_*dge 13

这是在我的如何查看SVN中文件的所有历史更改中的bendin的bash脚本的批处理文件转换:

@echo off

set file=%1

if [%file%] == [] (
  echo Usage: "%0 <file>"
  exit /b
)

rem first revision as full text
for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
  svn log -r %%R %file%
  svn cat -r %%R %file%
  goto :diffs
)

:diffs

rem remaining revisions as differences to previous revision
for /F "skip=2 tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
  echo.
  svn log -r %%R %file%
  svn diff -c %%R %file%
)
Run Code Online (Sandbox Code Playgroud)

请注意,此批处理文件需要命令行SVN客户端(而不是TortoiseSVN)在您的路径中.我个人使用SilkSVN,但有几个.


Mus*_*hir 2

正如@pajton 提到的,你可以使用svn log <filename>. 该文档提供了详细信息/限制。