【问题标题】:How to check if files on svn are the same with the local files C#(sharpsvn)如何检查 svn 上的文件是否与本地文件 C#(sharpsvn) 相同
【发布时间】:2013-04-11 02:25:54
【问题描述】:

我正在使用 SharpSvn 库。我想检查我在本地拥有的文件是否与颠覆服务器上的文件相同。有谁知道我是怎么做到的? 目前这是我正在尝试做的,但它说“无法连接到 URL 上的存储库”

    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;
    }

【问题讨论】:

  • 你可以比较校验和。

标签: c# sharpsvn


【解决方案1】:

我从您的问题中假设本地文件受版本控制,在这种情况下,您可以使用 GetInfo() 获取存储库中文件的最新修订号,并将其与本地文件的最新修订号进行比较文件。

Another suggestion 将使用 GetUriFromWorkingCopy()。我个人没有亲自测试过,但值得一试。

无论如何,您应该将差异化作为最后的手段,因为这可能是一个昂贵的调用。但是,如果文件不受版本控制,那可能是您唯一的选择。

【讨论】:

  • 提交文件以检查它是否被更改并不是一个真正有用的解决方案。
  • 是的,我删除了答案的一半,因为正如您所说,用户不希望自己提交更改。
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 2023-04-02
  • 2011-12-14
  • 1970-01-01
相关资源
最近更新 更多