我正試圖找到一種有效的方法來獲取文件的先前版本,以使用SharpSVN進行文本比較。SharpSVN - 如何獲得以前的修訂?
using (SvnClient c = new SvnClient())
{
c.Authentication.DefaultCredentials = new NetworkCredential(
ConfigurationManager.AppSettings.Get("SvnServiceUserName")
, ConfigurationManager.AppSettings.Get("SvnServicePassword")
, ConfigurationManager.AppSettings.Get("SvnServiceDomain")
);
c.Authentication.SslServerTrustHandlers += new EventHandler<SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers);
Collection<SvnFileVersionEventArgs> fileVersionCollection = new Collection<SvnFileVersionEventArgs>();
SvnRevisionRange range = new SvnRevisionRange(0, this.hooks.Revision);
SvnFileVersionsArgs args = new SvnFileVersionsArgs();
args.RetrieveProperties = true;
args.Range = range;
foreach (SvnChangeItem item in log.ChangedPaths)
{
string path = this.repositoryPath + item.Path;
bool gotFileVersions = false;
try
{
if (item.NodeKind == SvnNodeKind.File)
gotFileVersions = c.GetFileVersions(SvnTarget.FromString(path), args, out fileVersionCollection);
上面的代碼是執行我的請求的示例,但它效率極低。我的目標是能夠選擇一個修訂版本,以及之前的修訂版本。例如,如果我的存儲庫在r185,但我想在版本100中查看該文件,並查看同一個文件的先前版本(我不知道這是什麼),那麼這怎麼做呢?
我已經看過c.GetInfo(),但是這似乎只能得到最新的提交修訂。
謝謝!