【问题标题】:Settingup SCM using Xcode and SVN (Subversion)使用 Xcode 和 SVN (Subversion) 设置 SCCM
【发布时间】:2010-01-16 11:16:19
【问题描述】:

我正在尝试在网络磁盘(已安装)上使用 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': 不支持操作"

如果我控制远程机器,并在本机运行上述命令,它会工作并创建主干、分支和标签目录。

将 Xcode 的 SCM 设置到远程存储库后,如果我尝试将代码“导入”到此存储库(远程),Xcode 会返回以下错误:

"svn: 无法获得文件的排他锁 '[mounted_drive]/[subversion_repository_directory]/db/transactions/3-1.txvn/rev-lock': 不支持操作"

整个故事的关键:在网络驱动器上设置 SVN 时,我遇到了很多问题。任何帮助将不胜感激。

【问题讨论】:

  • 我认为 subversion 曾经写成 Subversion 只是一个错字?

标签: svn xcode version-control


【解决方案1】:

read the book。我会等。认真的。

不要通过将共享存储库扔到网络驱动器上然后通过file:/// 与其交谈来设置共享存储库。 file:/// 对存储库的访问仅适用于本地磁盘,因为(除其他外)网络文件系统的锁定语义

相反,请选择您将在其中保留存储库的计算机。让我们在该系统上将其称为 Hezikiah Run svnserve,以使存储库在网络上可用。以 svn://hezikia/REPO_NAME 访问您的存储库。

The book 是一个很大的帮助。

【讨论】:

  • 感谢您的回复。我实际上让它与 Mac OSX 10.5.x 一起工作,但我坚持在 Mac OS 10.4.x 上设置它:) 我认为访问远程存储库的最佳方法是使用 svn+ssh:// 而不是文件:///。但现在我一直坚持在 Mac OSX 10.4 上实际设置 svn,以便我可以使用 svn+ssh:// 访问它。我在这里发布了一个新问题:stackoverflow.com/questions/2077567/…
  • Mac OS X 10.5 让这一切变得如此简单。如何在 Mac OS 10.4 上运行 svnserve?而且,这足以通过 svn+ssh:// URL 访问存储库吗?
【解决方案2】:

根据使用的协议和配置,网络文件系统可能不支持本地文件系统的所有功能。 Subversion 试图获得网络文件系统的排他锁,但不能。您可以更改服务器的配置,可能通过调整 Subversion 目录的权限或使用不同的协议。但是,首先使用网络卷是错误的方法。

您真正想做的是在联网服务器上设置 Subversion 服务器,并在处理项目时检查存储库的本地副本。

【讨论】:

    【解决方案3】:

    可以构建一个没有这个问题的 subversion 版本。 似乎问题出在 apr 和 apr-util 库上(请参阅Subversion, Mac OS X, and SMB)。

    我使用的解决方法是使用 OS X 的版本 apr、apr-util 和 apxs 库编译 subversion。

    这是怎么做的:

    1. 获取一个 svn 压缩包,然后在合适的地方解压缩它
    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

    我已在 OS X 10.5 上成功完成此操作,使用 subversion 1.6.13。

    svnX 对此也很满意。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 2023-03-13
        相关资源
        最近更新 更多