是否可以生成一个文件,其中包括对某个文件所做的所有更改的摘要(什么,何时,由谁)?曾经在VSS中有这样的选项(我认为它被称为“历史”),它非常适合返回并跟踪谁做出了一定的改变以及何时发生。
是的,我正在使用tortoisesvn提前谢谢
答案 0 :(得分:15)
右键单击资源管理器中的文件,然后“TortoiseSVN”,“显示日志”。
取消选中“隐藏不相关的已更改路径” 取消选中“停止复制/重命名” 选中“包含合并的修订” 点击“全部显示”
现在,在顶部窗格中显示包含用户名,日期和日志的修订列表。单击您感兴趣的修订版,您可以在第二个窗格中看到完整的日志。第三个窗格显示所选修订中已更改的每个文件。双击此窗格中的文件,您可以看到该文件中所做的更改。
如前所述,Tortoise具有“责备”功能,通常非常有见地,但它只能显示每行源的最新编辑。如果有人删除了行,你根本看不到他们的变化。
修改强>
如果您愿意使用命令行工具和bash,此问题之前已得到解答:How can I view all historical changes to a file in SVN
在Windows PC上,获取bash和命令行SVN的最佳方法是安装Cygwin。
答案 1 :(得分:12)
以下是How can I view all historical changes to a file in 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%
)
请注意,此批处理文件需要命令行SVN客户端(而不是TortoiseSVN)在您的路径中。我个人使用SilkSVN,但有several。
答案 2 :(得分:2)
正如@pajton所提到的,你可以使用svn log <filename>
。 documentation提供了详细信息/限制。
答案 3 :(得分:2)
您可能会发现svn blame <filename>
更有用,因为它会告诉您文件的特定修订版本/ /什么/何时。
答案 4 :(得分:0)
我想补充一点,最近版本的陆龟还包括命令行工具,你只需要在安装时选择它们