svn:无法创建目录'/subversion/main/db/transactions/0-1.txn':权限被拒绝。

13

我创建了一个本地的Subversion目录,但是遇到了问题。我尝试使用以下命令将我的第一个文件检入:

svn ci TestCommenterParseFilter.java 

我得到了以下错误信息。
svn: Commit failed (details follow):
svn: Can't create directory '/export/svn/db/transactions/1-1.txn': Permission denied
svn: Your commit message was left in a temporary file:
svn:    '/export/speedplane/nutch-0.9/src/plugin/commenter/src/test/org/commenter/nutch/svn-commit.tmp'

有什么建议吗?
5个回答

7

我有同样的问题,但是如果我创建了"transactions"和"txn-protorevs"目录,它就可以正常工作而不会出现错误提示。


这对我很有用。我正在从由Python备份脚本(hot-backup.py)创建的备份中进行恢复,而这两个文件夹在备份的db文件夹下没有被包括。一旦我在SVN服务器上的还原存储库中创建了它们,那么从我的远程开发PC正确提交了所有内容。谢谢!(注意:在我的情况下,这都是Windows - 2008 RC2运行SVN和XP在我的开发PC上)。 - Carvell Fenton
太好了!在从hotbackup.py还原后手动创建.../db/transactions和.../db/txn-protorevs就解决了问题! - mothmonsterman

5
“权限被拒绝”错误以及您所使用的路径表明,您的用户帐户没有对/export/svn目录树进行写入文件的权限。有至少两种解决方法:
1.更改/export/svn上的文件权限(可能使用组+ w位),以便您可以编写文件。这很麻烦,并且不总是有效。
2.将svnserve设置为服务器进程,您可以使用svn://协议与其通信。在这种情况下,只有服务器进程需要对存储库目录具有写入(或读取)访问权限。

如果svn服务器设置为通过ssh使用,则存储库通常作为已登录的ssh用户访问。因此,所有svn用户都应该在同一个用户组中,并且该用户组应该对存储库具有组写访问权限。使用chmod -R g+w <repository_folder>为组添加写入访问权限。 - not2savvy

2

请确保您以root身份启动svnserve -d


1
不要使用-d选项,因为svn在通过ssh使用时不可行。其次,不要以root身份运行svn,而应使用svn用户(通常是_svn)来运行。 - not2savvy

0

没有一个答案能真正帮助我。我只是不得不给那个文件夹完全权限:

enter image description here


1
  1. 不应将权限设置为“用户”组。这是一个安全问题 - 您正在向所有用户公开存储库内容。
  2. 您需要为运行您的Subversion服务器的服务帐户设置权限。
  3. 如果您使用VisualSVN Server,请阅读https://www.visualsvn.com/support/topic/00037/。
- bahrep
1
一般来说,我同意你的观点,但在我的情况下不是这样的,因为只有我使用我的电脑(GFIPT0479)。这是我们的政策。 - Luis Gouveia

0

我认为这不会解决问题(通常会出现不同的错误信息)——但仍然值得尝试...

确保您包含提交消息(-m-F选项):

$ svn ci TestCommenterParseFilter.java -m "Commit message."

$ svn ci TestCommenterParseFilter.java -F commit_message.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接