2013-04-25 32 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),而不是在存储库的路径。