Svn 如果另一个subversion存储库失败,如何自动切换到另一个subversion存储库?

Svn 如果另一个subversion存储库失败,如何自动切换到另一个subversion存储库?,svn,controls,version,Svn,Controls,Version,我在网络共享文件夹上有一个subversion存储库。它不是subversion服务器,只是一个多台计算机可以读写的磁盘 不同的计算机以不同的方式映射网络驱动器。如何使svn在一条路径上找不到文件夹时自动尝试另一条路径 或者更一般地说,如何指定要提交的位置列表?不幸的是,这不是一件容易做到的事情。文件系统不是为此而设置的,大多数应用程序都希望在缺少某些内容时出现硬故障。Subversion的真正设计目的是提供一个单一的主位置 听起来您要么需要运行始终可用的SVN服务器,要么切换到不同的版本控制系

我在网络共享文件夹上有一个subversion存储库。它不是subversion服务器,只是一个多台计算机可以读写的磁盘

不同的计算机以不同的方式映射网络驱动器。如何使svn在一条路径上找不到文件夹时自动尝试另一条路径


或者更一般地说,如何指定要提交的位置列表?

不幸的是,这不是一件容易做到的事情。文件系统不是为此而设置的,大多数应用程序都希望在缺少某些内容时出现硬故障。Subversion的真正设计目的是提供一个单一的主位置

听起来您要么需要运行始终可用的SVN服务器,要么切换到不同的版本控制系统。前者是标准用例,也是大多数subversion工具的设置目的

现在还不清楚您在做什么,但另一种选择可能是设置一个提交后钩子(同样,您需要一个服务器来完成此操作),每当提交发生时,该钩子将更新、导出或签出repo到网络上的各个点

如果您愿意寻找替代方案,Git和Mercurial是两个大型分布式版本控制系统,它们可能更适合您的需要


在Windows SVN上,可以从远程服务器签出文件。假设您的文件服务器是
fileserver
,共享是
files
,路径是
foo\bar\baz
(您可以在cmd窗口中键入
net use
,以显示网络驱动器的服务器/共享映射)。因此,您的存储库是
\\fileserver\files\foo\bar\baz
。然后从服务器路径
file://fileserver/files/foo/bar/baz

如何保持它们的同步?这似乎不合理。如果其中一个存储库脱机,这些存储库如何保持同步?你最好用Git这样的DVCS来做,不是吗?否则,我真的看不出有什么方法可以保存开发历史…制作一个真正的服务器。网络共享文件夹没有锁,因此保留一个存储库是个坏主意——有些东西迟早会坏的。我在两个不同的实验室工作(使用我自己的代码),虽然我在不同的计算机之间提供了网络共享,但我没有办法托管整个subversion服务器。我不担心锁,因为我是唯一编写代码的人。如果你愿意,你可以假装有两台服务器通过一个强连接自动同步,一个用户试图通过一个周期性退出的弱连接提交。这听起来像你应该使用DVCS。Git或Mercurial可能是答案。SVN并不是为此而构建的,任何涉及到它的解决方案充其量都是一种黑客行为。