我使用 ikvmc 将 svnkit 编译为 C# (dll) 库,并将其链接为我的项目的引用。

我尝试了概念验证代码来结账:

public void checkOut(Dictionary<string,List<object>> tokens) { 
            string url_str = (string) tokens["checkout"][0]; 
            setupLibrary(); 
            java.io.File path = new java.io.File(Path.Combine (Directory.GetCurrentDirectory (), "check_out_folder")); 
 
            SVNURL url = SVNURL.parseURIEncoded(url_str); 
 
            SVNClientManager cm = SVNClientManager.newInstance(); 
            SVNUpdateClient uc = cm.getUpdateClient(); 
            try { 
                uc.doCheckout(url, path, SVNRevision.UNDEFINED, SVNRevision.HEAD, true);                         
            } 
            catch (SVNException e) { 
                Console.WriteLine(e.getErrorMessage()); 
            } 
        } 

一切都编译得很好,甚至运行得很好。但是,我有这个错误:

$ mono subsync.exe -co http://code.djangoproject.com/svn/django/trunk/ 
svn: Cannot rename file '/home/nubela/Workspace/subsync/subsync/bin/Debug/check_out_folder/.svn/tmp/entries' to '/home/nubela/Workspace/subsync/subsync/bin/Debug/check_out_folder/.svn/entries' 

它创建 checkout_folder,以下是冲突文件:

$ ls -alR check_out_folder/ | grep entries 
-r--r--r-- 1 nubela nubela  204 2010-02-17 13:07 entries 
-r--r--r-- 1 nubela nubela  204 2010-02-17 13:07 entries 

以下是 checkout_folder 的内容:

[nubela@nubela-netbook check_out_folder]$ ls -al 
total 12 
drwxr-xr-x 3 nubela nubela 4096 2010-02-17 13:07 ./ 
drwxrwxr-x 3 nubela nubela 4096 2010-02-17 13:07 ../ 
drwxr-xr-x 6 nubela nubela 4096 2010-02-17 13:07 .svn/ 

知道为什么会发生这种情况以及如何克服这个问题吗?

编辑:它可以在 Windows 下运行(使用 Mono,不能在 .NET 下运行)。可能是因为 Windows 没有烦人的文件权限。

Edit2:我已经 chmod 777 -R checkout_folder 了,并且明确 chmod 777 2 个条目文件。它仍然不起作用。奇怪。

请您参考如下方法:

这是 SVNKit 中的一个错误,导致所有非 Windows 设置抛出异常。

详情:http://svnkit.com/tracker/view.php?id=360

是的,我最终去查看了 SVNKit 的源代码。该死的错误。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!