如何检查svn上的文件是否与本地文件C#(sharpsvn)相同
我正在使用SharpSvn库。我想检查本地拥有的文件是否与subversion服务器上的文件相同。有人知道我是怎么做到的吗? 目前我正试图这样做,但它说“无法连接到URL处的存储库”如何检查svn上的文件是否与本地文件C#(sharpsvn)相同,c#,sharpsvn,C#,Sharpsvn,我正在使用SharpSvn库。我想检查本地拥有的文件是否与subversion服务器上的文件相同。有人知道我是怎么做到的吗? 目前我正试图这样做,但它说“无法连接到URL处的存储库” 根据您的问题,我假设本地文件是版本控制的,在这种情况下,您可以使用GetInfo()获取存储库中文件的最新版本号,并将其与本地文件的最新版本号进行比较 将使用GetUriFromWorkingCopy()。我个人没有亲自测试过,但值得一试 无论如何,你应该使用扩散作为最后的手段,因为这可能是一个昂贵的电话。但是,如
根据您的问题,我假设本地文件是版本控制的,在这种情况下,您可以使用GetInfo()获取存储库中文件的最新版本号,并将其与本地文件的最新版本号进行比较 将使用GetUriFromWorkingCopy()。我个人没有亲自测试过,但值得一试
无论如何,你应该使用扩散作为最后的手段,因为这可能是一个昂贵的电话。但是,如果文件不受版本控制,这可能是您的唯一选择。我从您的问题中假设本地文件受版本控制,在这种情况下,您可以使用GetInfo()获取存储库中文件的最新版本号,并将其与本地文件的最新版本号进行比较 将使用GetUriFromWorkingCopy()。我个人没有亲自测试过,但值得一试
无论如何,你应该使用扩散作为最后的手段,因为这可能是一个昂贵的电话。但是,如果文件不受版本控制,这可能是您唯一的选择。您可以比较校验和。您可以比较校验和。提交一个文件以检查其是否已更改并不是一个真正有用的解决方案。是的,我删除了一半答案,因为正如您所说,用户不希望自己提交更改。提交一个文件以检查是否已更改并不是一个真正有用的解决方案。是的,我删除了一半答案,因为正如您所说,用户不希望自己提交更改。
public bool IsDirectoryTheSame(string folderpath)
{
var IsSameDirectory = false;
var installfolderlocal = GetInstallationFolder(folderpath);
using (SvnClient svnClient = new SvnClient())
{
SvnUriTarget target1 =
new SvnUriTarget(
new Uri(string.Format("{0}{1}", svnclientpath, folderpath)));
SvnUriTarget target2 =
new SvnUriTarget(
new Uri(installfolderlocal));
using(var stream = new MemoryStream())
{
IsSameDirectory = svnClient.Diff(target1,target2,stream);
}
}
return IsSameDirectory;
}