如何使用SharpSVN获取每个修订版的文件列表

时间:2018-10-02 01:09:14

标签: svn sharpsvn

我想获取使用Sharpsvn在特定版本中修改,添加或删除的文件的列表。我可以使用命令行获取该信息,例如:

C:\svn>svn log --verbose -r 123
------------------------------------------------------------------------
r123 | rmercado | 2018-09-26 01:15:18 -0500 (wed., 26 Set. 2018) | 1 line
Changed paths:
   A /branches/folder/file1.txt
   A /branches/folder/file2.txt
   M /branches/folder/file3.txt
   D /branches/folder/file4.txt

changes made to branch
------------------------------------------------------------------------

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

看看下面的代码。 SvnLogEventArgs 实例中的 ChangedPaths 集合将包含提交中更改的文件的详细信息。在下面的代码“ svnLog.ChangedPaths”中包含详细信息。

从我的一个测试应用程序中提取。

            Collection<SvnLogEventArgs> SvnLogList = new Collection<SvnLogEventArgs>();
            SvnRevisionRange range = new SvnRevisionRange(new SvnRevision(this.dtpFromDate.Value), new SvnRevision(this.dtpToDate.Value));
            new SvnClient().GetLog(new Uri(this.txtRepoPath.Text.Trim()), new SvnLogArgs(range), out SvnLogList);

            foreach (SvnLogEventArgs svnLog in SvnLogList)
            {
                CommitLogList.Add(new CommitLog(
                    svnLog.Author,
                    svnLog.LogMessage,
                    svnLog.Revision,
                    svnLog.Time,
                    svnLog.ChangedPaths.Select(cp => cp.Path).ToList()
                    ));
            }