是否有可能生成一个文件,其中包括某个文件上所有更改的摘要(包括是谁,什么时间做出更改)?VSS中曾经有这样的选项(我想它被称为“历史记录”),对于回溯和跟踪谁何时做出了某个更改非常有用。
顺便说一下,我正在使用tortoisesvn。
提前感谢。
是否有可能生成一个文件,其中包括某个文件上所有更改的摘要(包括是谁,什么时间做出更改)?VSS中曾经有这样的选项(我想它被称为“历史记录”),对于回溯和跟踪谁何时做出了某个更改非常有用。
顺便说一下,我正在使用tortoisesvn。
提前感谢。
在资源管理器中右键单击文件,然后选择"TortoiseSVN","显示日志"。
取消选择"隐藏无关的更改路径", 取消选择"停止复制/重命名" 选中"包括合并的修订版本" 点击"显示所有"
现在,在顶部窗格中您将看到一个包含用户名、日期和日志的修订版本列表。单击您感兴趣的修订版本,您可以在第二个窗格中查看完整的日志。第三个窗格会显示所选修订版本中每个已更改的文件。在此窗格中双击您的文件,您可以查看该文件中进行的更改。
正如以前所提到的,Tortoise具有"责备"功能,这通常非常有见地,但它只能显示源代码中每行最近的编辑。如果有人删除了行,则根本看不到他们的修改。
编辑:
如果您愿意使用命令行工具和bash,此问题以前已经得到解答:如何在SVN中查看文件的所有历史更改
在Windows PC上,获取bash和命令行SVN的最佳方法是安装Cygwin。
这是一个批处理文件版本,翻译自bendin在如何查看SVN中文件的所有历史更改问题中的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%
)
请注意,此批处理文件需要在您的路径中拥有一个命令行SVN客户端(而不是TortoiseSVN)。 我个人使用SilkSVN,但还有其他几种选择。
如 @pajton 提到的,你可以使用 svn log <filename>
命令。具体细节和限制请参考文档。
你可能会发现svn blame <filename>
更有用,因为它可以告诉你文件的特定版本是谁、什么以及何时修改的。
svn
中,它被称为svn log
。尝试使用 Tortoise SVN 的Show log
或类似选项(我不记得确切的选项了)。也应该有一些导出到文件的选项。 - pajton