SVN错误时commiting访问被拒绝:'foobar的'MKACTIVITY MYREPO: [英] SVN Error when commiting Access denied: 'foobar' MKACTIVITY MYREPO:

查看:207
本文介绍了SVN错误时commiting访问被拒绝:'foobar的'MKACTIVITY MYREPO:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在与Apache和SVN与ActiveDirectory的认证工作。用户正在使用TortoiseSVN客户端。

I'm currently working with Apache and SVN with ActiveDirectory Authentication. The user is using TortoiseSVN client.

我要指出,我有2个回购协议具有相同名称和不同的映射,但重定向到相同的用户URL,因为权限是为回购协议是相同的。

I should point out that I have 2 repos with same name and different mapping but redirected to the same "user url" since the permissions are the same for both repos.

例如'的http:// mysrvr / SVN /富/酒吧/ corge和http:// mysrvr / SVN /富/ corge

eg 'http://mysrvr/svn/foo/bar/corge' and 'http://mysrvr/svn/foo/corge'

或HTTP:// mysrvr / SVN /富/酒吧/ corge和的http:// mysrvr / SVN /富/ grault / corge

or 'http://mysrvr/svn/foo/bar/corge and' 'http://mysrvr/svn/foo/grault/corge'

这2件事回购复制8回购对,其余7正在努力就好了。

This 2 repos thing is replicated with 8 "repo pairs" and the remaining 7 are working just fine.

下面是我的错误:

提交失败(细节如下):

Commit failed(details follow):

访问
  / SVN / MYDIR / MYREPO /!SVN / ACT / 65bf494c-a66a-4f45-870e-d988f691a45d
  禁止

access to '/svn/myDir/MYREPO/!svn/act/65bf494c-a66a-4f45-870e-d988f691a45d' forbidden

完成!

这不是权限,因为用户的 foobar的的具有RW访问,他已成功签出的存储库。发生在犯这个错误。

It's not permissions, since the user foobar has rw access and he has successfully checked out the repository. This error happens on commit.

东西,这将有助于定向到precise解决:

Things that would help to orientate to a precise solve:


  • 其他回购对都做得很好。和权限是一样的。

  • 我的svn管理员用户可以在同一个本地PC作为犯困扰用户做的。

  • 大/小写的网址是没有问题的,我检查

  • NTLM和Active Directory是没有问题的,因为无论他访问其他回购具有相同权限的文件。

  • 同一回购其他用户正在试验同样的问题。虽然我仍然可以做的承诺在当地的电脑。 (就好像他们没有写权限)

下面是Apache日志:

Here are the Apache logs:

Apache的error.log中

Apache error.log

[年月12时38分02秒2011] [错误] [客户端
  10.x.x.x]访问被拒绝:'foobar的'MKACTIVITY MYREPO:

[dd mm 12:38:02 2011] [error] [client 10.x.x.x] Access denied: 'foobar' MKACTIVITY MYREPO:

[年月12时39分40秒2011] [错误] [客户端
  10.x.x.x]访问被拒绝:'foobar的'MKACTIVITY MYREPO:

[dd mm 12:39:40 2011] [error] [client 10.x.x.x] Access denied: 'foobar' MKACTIVITY MYREPO:

[年月12点39分54秒2011] [错误] [客户端
  10.x.x.x]访问被拒绝:'foobar的'MKACTIVITY MYREPO:

[dd mm 12:39:54 2011] [error] [client 10.x.x.x] Access denied: 'foobar' MKACTIVITY MYREPO:

阿帕奇access.log的

Apache access.log

10.x.x.x - foobar的[日/月/日:12:38:02 GMT]选项/ SVN / MYDIR / MYREPO
  HTTP / 1.1200 198

10.x.x.x - foobar [dd/mmm/yy:12:38:02 GMT] "OPTIONS /svn/myDir/MYREPO HTTP/1.1" 200 198

10.x.x.x - foobar的[日/月/日:12:38:02 GMT]PROPFIND / SVN / MYDIR / MYREPO
  HTTP / 1.1207 667

10.x.x.x - foobar [dd/mmm/yy:12:38:02 GMT] "PROPFIND /svn/myDir/MYREPO HTTP/1.1" 207 667

10.x.x.x - foobar的[日/月/日:12:38:02 GMT]MKACTIVITY
  / SVN / MYDIR / MYREPO /!SVN / ACT / 65bf494c-a66a-4f45-870e-d988f691a45d
  HTTP / 1.1403 266

10.x.x.x - foobar [dd/mmm/yy:12:38:02 GMT] "MKACTIVITY /svn/myDir/MYREPO/!svn/act/65bf494c-a66a-4f45-870e-d988f691a45d HTTP/1.1" 403 266

svn_activity.log

svn_activity.log

[日/月/日:12:34:20 -0300]沃尔多
  提交R2

[dd/mmm/yy:12:34:20 -0300] waldo commit r2

[日/月/日:12:39:07 -0300]弗雷德状态
  / src目录/主干r1447

[dd/mmm/yy:12:39:07 -0300] fred status /src/trunk r1447

从svn_activity.log我可以推断出阿帕奇渔获物和反弹的访问,因为有一个在时限没有foobar的访问暴露previously。

From the svn_activity.log I can deduce Apache catches and bounces the access, given that there is no foobar access at time-frame exposed previously.

所以,希望我已经收集的数据是有用的解决这个...任何想法?

So, hoping that the data i've collected is useful to solve this... any ideas?

推荐答案

我找到了!

确定这里就是答案:

我的用户目录中的签出回购/ SVN / MYDIR / MYREPO

My users check out a Repo in the directory /svn/myDir/MYREPO

Apache的人都知道他有MYREPO转换为小写的目录,所以当你签出或做任何的读操作,这是工作得很好。

Apache knows that he has to translate MYREPO to a lowercase directory so when you check out or do any read operation this was working just fine.

但是,当用户曾尝试做提交操作的Apache变化
不知何故的他要做履行用户请求所以操作的顺序,首先接受的写操作,并尝试写,然后更改为小写。

But when the users did try to do the commit operation Apache changes somehow the order of the operations he has to do to fulfill the users request so, first accepts the write operation and tries to write, and then changes to lowercase.

再次它试图写入/ SVN / MYDIR / MYREPO 后,出现的问题是:

Again, it tries to write to the /svn/myDir/MYREPO, the issue is that:


  • 权限回购,其中设置为 myrepo 的而不是 MYREPO

  • 实际回购的myrepo而不是MYREPO

所以... MYREPO不存在! myrepo一样。这就是为什么它抛出这个错误:

So... MYREPO does not exist! myrepo does. That's why it throws that error:


  • 访问被拒绝,因为没有为MYREPO书面许可。

  • ,它并认识到在读的方式回购因为Apache明白你问什么和翻译。

但对于其写入第一工作,之后需要一段时间将的了解的是什么,他做的事情。和异常自带previous到的了解的那么Apache决不会得到的出现。

But for writing first works with it and after that takes a moment to understand what is he doing. And the exception comes previous to the understanding so Apache never get's there.

这是最简单的事:


  • 转至签出回购

  • 请从
  • Go to the checked out Repo
  • Do a Relocate from
http://YourServer/svn/myDir/MYREPO

http://YourServer/svn/myDir/myrepo


我对SVN-管理员和用户从现在开始的建议,就是做

My recommendation for svn-administrators and users from now on, is do

EVERITHING小写 ...很抱歉,我纠正自己:

EVERITHING LOWERCASE... sorry, I correct myself:

一切小写!

这篇关于SVN错误时commiting访问被拒绝:'foobar的'MKACTIVITY MYREPO:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆