【问题标题】:How to get a list of all recent SVN commit messages?如何获取所有最近的 SVN 提交消息的列表?
【发布时间】:2012-03-21 03:27:15
【问题描述】:

有时我想重新审视我不久前提交给 SVN 的更改,但不记得涉及的具体文件或修订号。所以我想查看最近提交消息的列表,最好包括每个提交中包含的文件。

我想转到我的工作副本的根目录并输入类似以下内容以查看与最近 5 次提交相关的消息和文件:

svn log -l5 -v *

很遗憾,此命令需要一个目标,并且不接受“*”。我知道 SVN 有我想要的信息。有没有简单的找回方法?

【问题讨论】:

    标签: svn history


    【解决方案1】:

    您可以使用svn log -l5 -v <URL of your repository>svn info 可用于获取您的工作副本连接到的存储库的根 URL。

    【讨论】:

    • 美丽 - 谢谢!存储库 URL 是我想要的 *。
    • 那么你在工作副本中。这意味着svn log的输出被过滤到wc连接的子路径。
    【解决方案2】:

    svn log -q -v --limit N inside working copy(你有 WC,不是吗?!)将显示 short list 最近 N 次提交 with commit-message (mea culpa, -q supress commit-message output) 和文件

    日志输出示例 - repo

    >svn log -q -v http://mayorat.ursinecorner.ru:8088/svn/Hello/ -l 5
    ------------------------------------------------------------------------
    r33 | lazybadger | 2012-02-28 16:10:41 +0600 (Вт, 28 фев 2012)
    Changed paths:
       M /trunk/Hello.en.txt
    ------------------------------------------------------------------------
    r32 | lazybadger | 2011-12-27 17:37:31 +0600 (Вт, 27 дек 2011)
    Changed paths:
       M /trunk/Hello.de.txt
       M /trunk/Hello.en.txt
    ------------------------------------------------------------------------
    r31 | lazybadger | 2011-12-27 17:29:00 +0600 (Вт, 27 дек 2011)
    Changed paths:
       M /trunk/Hello.de.txt
       M /trunk/Hello.en.txt
       M /trunk/Hello.fr.txt
    ------------------------------------------------------------------------
    r30 | lazybadger | 2011-10-19 16:23:52 +0600 (Ср, 19 окт 2011)
    Changed paths:
       M /trunk
    ------------------------------------------------------------------------
    r29 | lazybadger | 2011-10-19 16:18:43 +0600 (Ср, 19 окт 2011)
    Changed paths:
       M /trunk
    ------------------------------------------------------------------------
    

    提交消息的Secong日志(删除-q -v)

    >svn log http://mayorat.ursinecorner.ru:8088/svn/Hello/ -l 5
    ------------------------------------------------------------------------
    r33 | lazybadger | 2012-02-28 16:10:41 +0600 (Вт, 28 фев 2012) | 1 line
    
    One more change
    ------------------------------------------------------------------------
    r32 | lazybadger | 2011-12-27 17:37:31 +0600 (Вт, 27 дек 2011) | 1 line
    
    Cleanups
    ------------------------------------------------------------------------
    r31 | lazybadger | 2011-12-27 17:29:00 +0600 (Вт, 27 дек 2011) | 1 line
    
    Purification
    ------------------------------------------------------------------------
    r30 | lazybadger | 2011-10-19 16:23:52 +0600 (Ср, 19 окт 2011) | 1 line
    
    Try fix FS #2
    ------------------------------------------------------------------------
    r29 | lazybadger | 2011-10-19 16:18:43 +0600 (Ср, 19 окт 2011) | 1 line
    

    如果我从 root 签出 repo 并 svn 登录 WC-rot,结果根本不会不同

    Hello>svn log -q -v -l 5
    ------------------------------------------------------------------------
    r33 | lazybadger | 2012-02-28 16:10:41 +0600 (Вт, 28 фев 2012)
    Changed paths:
       M /trunk/Hello.en.txt
    ------------------------------------------------------------------------
    r32 | lazybadger | 2011-12-27 17:37:31 +0600 (Вт, 27 дек 2011)
    Changed paths:
       M /trunk/Hello.de.txt
       M /trunk/Hello.en.txt
    ------------------------------------------------------------------------
    r31 | lazybadger | 2011-12-27 17:29:00 +0600 (Вт, 27 дек 2011)
    Changed paths:
       M /trunk/Hello.de.txt
       M /trunk/Hello.en.txt
       M /trunk/Hello.fr.txt
    ------------------------------------------------------------------------
    r30 | lazybadger | 2011-10-19 16:23:52 +0600 (Ср, 19 окт 2011)
    Changed paths:
       M /trunk
    ------------------------------------------------------------------------
    r29 | lazybadger | 2011-10-19 16:18:43 +0600 (Ср, 19 окт 2011)
    Changed paths:
       M /trunk
    

    【讨论】:

    • 我已经尝试过这个(没有'-q​​'),它似乎只报告了影响当前目录中文件的提交,甚至没有报告对当前目录中文件的最新更改。 (顺便说一句,谢谢。现在更正了。)
    • 好的。使用 URL 作为目标作为在 repo root 中结束它。我看到 repo 中的文件更改,查看我编辑的带有日志的答案
    【解决方案3】:

    对于 TortoiseSVN 用户:

    1. 浏览到存储库文件夹并右键单击。
    2. 选择TortoiseSVN > Show log

    出现日志窗口。

    1. 选择第一个日志并按住Shift,然后选择您感兴趣的最后一个日志(Ctrl + A 全选。或者您可以使用Ctrl 选择方法)。
    2. 在选中的条目上右击并选择Copy to clipboard > Messages

    提交消息的日志被复制到您的剪贴板。

    1. 打开记事本或记事本++并粘贴日志 (Ctrl + v)。根据需要保存文件。

    【讨论】:

      【解决方案4】:
      1. svn log -l5 -v http://99.9.9.999/repos/reposName
        
        // This will show you only last 5 commit records
        
      2. svn log -q -v http://99.9.9.999/repos/reposName
        
        // This will show you all the commit records
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-01
        • 1970-01-01
        • 2011-02-13
        • 2014-09-20
        • 2016-09-08
        • 2013-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多