使用Xcode和SVN设置SCCM(Subversion)

时间:2010-01-16 11:16:20

标签: svn xcode version-control

我正在尝试在网络磁盘(已安装)上使用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时遇到了很多问题。任何帮助将不胜感激。

4 个答案:

答案 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。

以下是如何操作:

  1. 获取一个svn tarball,并将其解压缩到合适的位置
  2. ./configure --prefix=/opt/subversion/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --without-berkeley-db --with-apxs=/usr/sbin/apxs

    • - prefix = / opt / subversion /:将subversion置于/opt/subversion,如果你使用svnX,这很方便。
    • - with-apr = / usr / local / apr:使用OS X的apr库。
    • - with-apr-util = / usr / local / apr:使用OS X的apr-util库。
    • - with-apxs = / usr / sbin / apxs:使用OS X的apxs库。
    • - without-berkeley-db:这不是修复的严格部分,但我从未使用过subversion FSFS以外的任何东西,所以我不用berkeley-db构建。
  3. sudo make install

  4. 我已经在OS X 10.5上成功完成了这项操作,使用了subversion 1.6.13。

    svnX也很满意。

答案 3 :(得分:1)

很好,我使用Yafiyogi的提示编译了我自己的颠覆 - 伟大的人工作,没有锁定文件麻烦了!我可以通过AFP resp访问timecapsule磁盘上的subversion存储库。使用svn客户端版本远程WLAN。我的配置:

  • Mac OS X 10.6.6(10J567)(Darwin 10.6.0)
  • apr-1.4.2(使用plain configure / make / make install)
  • apr-util-1.3.10(使用./configure --with-apr=/usr/local/apr/make/make install
  • 颠覆-1.6.16(使用Yafiyogi的上述提示)