在我们公司中,我们有一个棘手的环境,人们在几个国家工作。出于性能原因(网络访问),我们希望使用以下方案复制SVN存储库。
假设我们有法国人和德国人:
在我的应用程序中,我想:
有什么办法可以使用SVN做到这一点?还有其他想法吗?无法切换到GIT或其他版本控制系统。谢谢!
答案 0 :(得分:2)
那是一个很大的愿望清单。对于第一部分,存在一个产品VisualSVN Server,它仅允许该产品(复制,主从),等等。你应该看看。
https://www.visualsvn.com/server/features/multisite-replication/
对于第二部分,我认为人们应该能够管理这些不同的位置。您可以使用Subversion命令relocate
在不同位置使用相同的签出副本。
答案 1 :(得分:1)
这是我最终实现的目标:
svnsync
命令将任何提交从主存储库传播到从存储库svn relocate
命令在每次将在远程执行某些操作(提交,创建分支,共享等)的操作之前和之后进行操作在应用程序中:
ping
查找最近的服务器。在编写Java代码时,我确实写了自己的方法来查找ping值public static Duration ping(String host) {
Instant startTime = Instant.now();
try {
InetAddress address = InetAddress.getByName(host);
if (address.isReachable(1000)) {
return Duration.between(startTime, Instant.now());
}
} catch (IOException e) {
// host not available, nothing to do here
}
return Duration.ofDays(1);
}
svn relocate
,然后执行另一个{{1} },以恢复到更快的SVN克隆存储库。