首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取根目录

无法读取根目录
EN

Stack Overflow用户
提问于 2013-02-02 02:48:14
回答 3查看 462关注 0票数 5

所以我使用SharpSVN(SharpSvn.1.7-x86 1.7008.2243),但我总是遇到问题。每次我尝试在位于驱动器根目录的存储库上使用SvnWorkingCopyClient时(例如,我有一个D:\驱动器,它本身就是一个存储库),它就会向我抛出一个svn_dirent_is_absolute错误。

事实上,我能找到的唯一不关心的命令是SvnClient.GetUriFromWorkingCopy(string)

关于如何解决这个问题(除了移动我的工作副本,或者链接到文件系统之外),你有什么想法吗?我希望在代码中找到一种方法,或者找到一种替代方法来解决这个限制(因为看起来SVN 1.7不再有这个限制)。

这里有一些代码?

代码语言:javascript
复制
private void fakeFunction(){
    var RootPath="d:\";
    using (var client = new SharpSvn.SvnClient())
    using(var workingClient = new SvnWorkingCopyClient())
    {
        SvnWorkingCopyVersion workingVersion = null;
        // Exception happens here
        if (workingClient.GetVersion(this.RootPath, out workingVersion))
        {
            CurrentRevision = workingVersion.End;
                // This will resolve just fine
            var targetUri = client.GetUriFromWorkingCopy(RootPath);
            var target = SvnTarget.FromUri(targetUri);
            SvnInfoEventArgs info = null;
            if (client.GetInfo(target, out info))
            {
                if (workingVersion.End != info.Revision)
                {
                    System.Collections.ObjectModel.Collection<SvnLogEventArgs> logEventArgs = null;
                    if (client.GetLog(targetUri, out logEventArgs))
                    {
                        var oldBack = Console.BackgroundColor;
                        var oldFor = Console.ForegroundColor;
                        Console.BackgroundColor = ConsoleColor.DarkMagenta;
                        Console.ForegroundColor = ConsoleColor.White;
                        foreach (var l in logEventArgs)
                        {
                            Console.WriteLine("[{0}-{1}]-{2}", l.Revision, l.Author, l.LogMessage);
                        }
                        Console.BackgroundColor = oldBack;
                        Console.ForegroundColor = oldFor;
                    }

                    System.Console.WriteLine("Repo not up to date.");
                }
            }
        }
    }
}

我还偶然发现了这个http://subversion.tigris.org/issues/show_bug.cgi?id=3535http://subversion.tigris.org/ds/viewMessage.do?dsForumId=463&viewType=browseAll&dsMessageId=2456472

那么,既然这发生在很久以前,这不应该再是一个问题了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-04 18:42:49

SharSVN的根路径有问题,因为我们可以在邮件归档中读取。然而,我们可以为您的场合做一些小技巧:

  1. 下载完整的软件包sharpsvn http://sharpsvn.open.collab.net/files/documents/180/5569/SSvnEx-1.7002.1998.zip
  2. Copy svnversion.exe到您的bin目录
  3. 然后我们需要一个hack方法来获取验证

公共静态布尔流程( string appPath,string targetPath,out long version) { //新进程的路径//目标路径//结果版本进程p= svnversion.exe ();p.StartInfo.UseShellExecute = false;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.FileName = appPath;p.StartInfo.Arguments = targetPath +“-n";p.Start();//读取svnversion.exe结果串输出= p.StandardOutput.ReadToEnd();p.WaitForExit();输出= output.Replace("M","");输出= output.Replace("S","");输出= output.Replace("P","");//有效结果//4123:4168混合修订工作副本//4168M修改的工作副本//4123S切换工作副本//4123P部分工作副本,来自稀疏签出//4123:4168MS混合修订,修改,切换的工作副本返回long.TryParse(输出,输出版本);}

  • 并修改您的伪造方法full source code

当然,这是一个肮脏的工作,但它可以是有帮助的。请注意 svnversion.exe results GetVersionHack GetVersionHack不理想。

票数 1
EN

Stack Overflow用户

发布于 2013-02-09 03:49:01

杂乱无章的意思是"..“从当前目录一直到根目录:

代码语言:javascript
复制
[pwd = C:\USERS\franklin\absrel]
root = ..\..\..
票数 2
EN

Stack Overflow用户

发布于 2013-02-08 06:11:53

如果它抱怨绝对路径,那么尝试定义unc路径。共享您的D:\驱动器,它是您的svn存储库。然后使用以下命令访问它

代码语言:javascript
复制
    var RootPath="\\<servername>\D$";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14653041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档