很长一段时间,我们将 SVN 存储库放在 Windows 共享上(效果很好,因为只有一个人在处理一个项目)。
现在,我们正在将开发机器从 Windows 迁移到 Ubuntu,并且我们需要从 Ubuntu 访问这些存储库。
我像这样安装了 svn 存储库共享:
//win_serv/svn /mnt/svn cifs credentials=/home/u/.smbcreds,iocharset=utf8,sec=ntlm 0 0
我设法将存储库 URL 更改为/mnt/svn/some_project
.但是,尝试这样做svn up
会导致错误:
svn: E200033: Another process is blocking the working copy database, or the underlying filesystem does not support file locking; if the working copy is on a network filesystem, make sure file locking has been enabled on the file server
svn: E200033: sqlite[S5]: database is locked
svn: E200033: Additional errors:
svn: E200033: sqlite[S5]: database is locked
我做错了什么吗(除了“Windows 共享上的 svn 存储库”事实)?
甚至可以从 Linux 访问 Windows 共享上的 svn 存储库吗?
答案1
我鼓励你不要这样做。在 Windows 或 Linux 上托管 SVN 服务器并使用 svn+ssh 协议访问服务器。不要尝试开发一些拙劣的方法来访问 SVN 存储库。
您将遇到许多与 SVN 和 SQLite 相关的问题,这些问题需要各种安装选项,例如从 NOBRL 到 CIFS。
我真的鼓励您避免这一切,并预先决定 SVN 存储库驻留在哪里,然后投入时间在该系统上设置实际的 SVN 服务器,而不是沿着您已经尝试过的路径继续进行。
还要投入一些时间研究中的各种设置选项SVN书,它是免费的,并详细说明了您正在做的事情的最佳方法,这样您就不会破坏或面临丢失数据的危险。
答案2
虽然我同意 slm 所说的 - 不要这样做,SVN 的构建目的是让您不必共享文件系统 - 但您可以尝试使用 mount 选项来避免此类问题nobrl
。请参阅Samba 联机帮助页有关安装选项的更多信息。