2017-06-29 82 views
1

嗨,你聰明的人!如何從Svn修訂號獲取應用程序和分支名稱?

鑑於我的Subversion版本庫的任何應用程序的版本號,我怎麼能(使用SharpSvn):

  1. 確定哪些應用程序名稱版本號標識?
  2. 確定是否是中繼分支修訂?
  3. 確定分支名稱(如果它是分支版本)?

我的倉庫被組織這樣:

Application1 
    Trunk 
     <Application files> 
    Branches 
     BranchName1 
      <Application files> 
     BranchName2 
      <Application files> 
     ... 
Application2 
    Trunk 
     <Application files> 
    Branches 
     BranchName1 
      <Application files> 
     BranchName2 
      <Application files> 
     ... 

我想我應該以某種方式檢索用的具體版本號改變了一組文件,然後看看SVN文件路徑?

完全可以做到嗎?

回答

1

在SVN修訂號碼是全局的整個存儲庫,所以沒有「中繼修訂」。但是你可以做些什麼來確定哪些路徑受到修訂的影響,運行如svn log -r<REV> --verbose

在SharpSvn有方法SvnClient.LogMethod(Uri, SvnLogArgs, EventHandler<SvnLogEventArgs>)它可以讓你指定你可以用它來計算出受影響的路徑和SvnClient.GetLog(Uri, SvnLogArgs, out Collection<SvnLogEventArgs>)這給你,你可以用它來計算出受影響的路徑的日誌信息的集合的事件處理程序。

http://docs.sharpsvn.net/current/html/M_SharpSvn_SvnClient_Log_4.htm

小例子(與GetLog()):

using (var client = new SvnClient()) 
      { 
       SvnLogArgs logArgs = new SvnLogArgs(); 
       Collection<SvnLogEventArgs> logResults; 
       if (client.GetLog(new Uri("RepositoryUri"), logArgs, out logResults)) 
       { 
        foreach (var logResult in logResults) 
        { 
         if (logResult.ChangedPaths.Contains("searchedPath")) 
         { 
          // do something with the information 
         } 
        } 
       }      
       return; 
      } 
+2

您可以通過添加對OP和未來的用戶一個簡單的例子,改善你的答案。你的答案應該是獨立的,所以如果你指出的鏈接消失了,你的答案仍然有用。 – ray

相關問題