我正在尝试在网络磁盘(已安装)上使用Subversion(SVN)设置Xcode SCM。我能够在我的机器上本地设置SVN存储库,一切顺利,没有任何麻烦。 Reference Article: Version Control is Your Friend by Jeff LaMarche
我的问题是我无法在网络驱动器(已安装)上设置SVN。
cd [mounted_drive]/Users/Shared
mkdir subversion
cd subversion
mkdir HelloWorld
svnadmin create HelloWorld
chmod -R 777 HelloWorld
以上命令工作正常,并且已成功创建主要的subversion存储库。问题是它不允许我在主SVN存储库中创建子文件夹(主干,分支和标记)。
svn mkdir
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/trunk
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/branch
file:///[mounted_drive]/Users/Shared/Subversion/HelloWorld/tag
当我尝试运行上面的svn mkdir命令时,我收到以下svn错误:
“svn:无法获取文件的独占锁定 '[mounted_drive] / [subversion_repository_directory] / db / write-lock':不支持操作“
如果我控制远程计算机,并以原生方式运行上述命令,则可以正常运行,并创建trunk,branch和tag目录。
将Xcode的SCM设置为远程存储库后,如果我尝试将代码“导入”到此存储库(远程),Xcode将返回以下错误:
“svn:无法获取文件的独占锁定 '[mounted_drive] / [subversion_repository_directory] /db/transactions/3-1.txvn/rev-lock':不支持操作“
整个故事的症结:我在网络驱动器上设置SVN时遇到了很多问题。任何帮助将不胜感激。
答案 0 :(得分:3)
转到read the book。我会等。严重。
将设置为共享存储库,方法是将其放在网络驱动器上,然后通过file:///
与之通信。 file:///
访问存储库仅适用于本地磁盘,因为(除其他外)网络文件系统的锁定语义。
相反,选择要保存存储库的计算机。我们在该系统上将其称为Hezikiah Run svnserve
,以使网络上的存储库可用。以svn:// hezikia / REPO_NAME访问您的存储库。
The book在那里是一个很好的帮助。
答案 1 :(得分:1)
网络文件系统(取决于使用的协议和配置)可能不支持本地文件系统的所有功能。 Subversion试图获得网络文件系统的独占锁,但不能。您可以通过调整Subversion目录的权限或使用其他协议来更改服务器的配置。但是,首先使用网络卷是错误的方法。
您真正想要做的是在联网服务器上设置Subversion服务器,并在处理项目时签出存储库的本地副本。
答案 2 :(得分:1)
可以构建一个没有此问题的subversion版本。 似乎问题是apr和apr-util库(参见Subversion, Mac OS X, and SMB)。
我使用的工作是使用OS X的版本apr,apr-util& amp来编译subversion。 apxs libraries。
以下是如何操作:
./configure --prefix=/opt/subversion/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --without-berkeley-db --with-apxs=/usr/sbin/apxs
/opt/subversion
,如果你使用svnX,这很方便。 sudo make install
我已经在OS X 10.5上成功完成了这项操作,使用了subversion 1.6.13。
svnX也很满意。
答案 3 :(得分:1)
很好,我使用Yafiyogi的提示编译了我自己的颠覆 - 伟大的人工作,没有锁定文件麻烦了!我可以通过AFP resp访问timecapsule磁盘上的subversion存储库。使用svn客户端版本远程WLAN。我的配置:
./configure --with-apr=/usr/local/apr/make/make install
)