2013-04-25 55 views
1

我想檢查某個svn子目錄是否已更新,如果是,請更新我的整個工作目錄。在svn c檢查特定目錄中的更新#

這裏是我做的:

SvnClient svnClient = new SvnClient(); 
SvnWorkingCopyClient workingCopyClient = new SvnWorkingCopyClient(); 

SvnInfoEventArgs svnInfo; 
SvnWorkingCopyVersion workingCopyVersion; 

Uri svnRepository = new Uri(m_svnAddress + /local/trunk/somefolder"); 

svnClient.GetInfo(svnRepository, out svnInfo); 
workingCopyClient.GetVersion("C:\\Workspace\\somefolder", out workingCopyVersion); 


int recentSvnRevision = unchecked((int)svnInfo.Revision); 
int currentVersion = unchecked((int)workingCopyVersion.End); 

if (recentSvnRevision != currentVersion) 
    // Do stuff 

的問題是,recentSvnRevision被設置爲在SVN整個目錄的最新版本號,而不是/local/trunk/somefolder目錄的修訂工作。

任何想法?

+1

你想知道什麼?服務器上的最新版本,還是工作副本的最新版本?是否有一個原因,你不能只是更新,而不是檢查是否有更改,然後更新? – 2013-05-14 18:16:22

回答

1

您可以使用它來獲取特定目錄中的最新版本號:

SvnInfoEventArgs info; 
client.GetInfo(RemotePath, out info); 
return info.LastChangeRevision; 

其中RemotePath是要檢查文件夾的目錄(前https://svn.exmaple.com/local.../somefolder),而不是在存儲庫的路徑。