2013-04-25 7 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

Что вы хотите узнать? Последняя версия на сервере или последняя редакция рабочей копии? Есть ли причина, по которой вы не можете просто обновить, вместо того, чтобы проверять, что что-то изменилось, а затем обновить? –

ответ

1

Вы можете использовать это, чтобы получить последний номер версии для конкретного каталога:

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

где RemotePath является директория папки вы хотите проверить (. Ех https://svn.exmaple.com/local.../somefolder), в отличие от путь репозитория.