SVN工作副本存在各种数据库等问题

SVN工作副本存在各种数据库等问题,svn,tortoisesvn,Svn,Tortoisesvn,我们在办公室的开发服务器上有三个网站的SVN工作副本。服务器是Linux,工作副本在Windows机器上工作,并使用TortoiseSVN进行更新/提交等。我在开始之前会说,我知道网络共享上的工作副本不受严格支持,但这样做是为了在将它们放在实时服务器上之前,我们可以在本地开发人员URL上测试对站点的脱机代码更改 这是绝对出色的工作。一点问题也没有——直到我们的Linux服务器出现问题并不得不更换。我们已经用Mac取代了它,这是第二次在内部使用Mac进行浏览器测试 自从把所有东西都转移到Mac上以

我们在办公室的开发服务器上有三个网站的SVN工作副本。服务器是Linux,工作副本在Windows机器上工作,并使用TortoiseSVN进行更新/提交等。我在开始之前会说,我知道网络共享上的工作副本不受严格支持,但这样做是为了在将它们放在实时服务器上之前,我们可以在本地开发人员URL上测试对站点的脱机代码更改

这是绝对出色的工作。一点问题也没有——直到我们的Linux服务器出现问题并不得不更换。我们已经用Mac取代了它,这是第二次在内部使用Mac进行浏览器测试

自从把所有东西都转移到Mac上以来,SVN一直是个大问题。提交/更新通常会因“数据库已锁定”错误而失败,大多数情况下我无法进行清理,因为它通常会因此错误而失败:

清理无法处理以下路径: 网络上WC的路径 数据库已锁定,正在执行语句“提交事务;”

执行的语句不同,有时与发布有关

我们正在进行的代码更改必须在我们的开发服务器上进行测试,然后才能提交到在线实时站点。目前,我已经在自己的硬盘上签出了一份工作副本。我必须提交我的更改,在开发服务器上进行更新(祈祷它能工作——无论哪种方式都需要时间)并对它们进行测试,然后再更新实时服务器,如果它们能工作的话

我也无法在网络共享上签出新的工作副本-同样,它通常会因磁盘I/O错误或数据库被锁定而失败。我们已经禁用了Mac的所有省电功能,以防导致睡眠或硬盘降速-不走运


如果可能的话,我更愿意将工作副本保存在网络共享上。正如我已经说过的,我意识到这不是做SVN最合适的方式,但它一直在为我们工作。我能做些什么来解决这个问题?我怀疑它与Windows->Mac网络有关,实际上还有另一个问题有待解决,那就是从我的机器到Mac网络共享的网络访问速度较慢。

最有可能的是,在更换服务器软件时,您访问这些“网络共享”的方式已经改变。因此,很可能您现在面临不同(更多)的问题,这与以下事实有关:通过网络共享访问svn签出无法可靠工作


但是,为什么一个人要在共享结账上工作呢?对所有开发系统进行单独的签出并分别提交更改更为合理…

类似的问题已经得到了回答-

这可能不是理想的方法,但是它将帮助您解决锁的问题


考虑每次签出到新目录,然后用新目录替换旧目录

因为SVN 1.7,SQLite被用作工作副本的数据库。如中所述:

SQLite使用POSIX建议锁在Unix上实现锁定。在…上 Windows它使用LockFile()、LockFileEx()和UnlockFile()系统 电话。SQLite假定这些系统调用的所有工作都是公布的。 如果不是这样,则可能导致数据库损坏。一个 应该注意的是,POSIX建议锁定被认为是错误的,甚至是错误的 在许多NFS实现(包括最新版本)上未实现 Mac OS X版)并且有报告称 Windows下的网络文件系统。你最好的防御就是不要使用 用于网络文件系统上的文件的SQLite

看来这是你的问题。您应该使用本地工作副本以避免出现问题。在开发过程中,您可能会获得额外的性能增益,因为文件I/O可能会减少


关于部署服务器,您可以考虑使用集成服务器(如OR),一旦配置正确,就可以在开发服务器上自动部署您的更改(例如,在每个提交上)。

我是本办公室中唯一使用代码的开发人员。伦敦的另一家办公室也从live server上进行了检查,但他们没有可测试的开发服务器——他们倾向于进行小规模的调整,而我则负责所有的大型工作。因此,办公室中没有其他人共享我的工作副本-它仅在网络上用于现场测试。然后,以另一种方式进行:签出到本地工作站(svn access在这里工作,因为它是本机文件系统),然后将签出导出到测试服务器。用于测试目的的访问通过网络共享访问签出没有问题,因为它不是svn访问(我假设…)。我必须承认我以前没有查看过导出选项。这是否只是将文件复制到网络驱动器上,以便在提交之前对其进行测试?听起来好像可以。我试试看,不,不!对不起,这是误解。“导出”指的是文件系统导出。因此,您将开发工作站设为文件系统服务器(SMB或NFS或其他),并将导出的共享装载到用于测试的MAC服务器上。很高兴能提供帮助。这是我不喜欢这个论坛的原因之一:太多的用户给出了一个简单的答案来获得分数(为什么?!?),就是这样。我会尝试一下,谢谢。我怀疑在创建新的工作副本时仍然会遇到锁/I/O问题,但我们会看看会发生什么。这听起来与问题完全一样。应该继续使用Linux吗!:)