热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

svn服务器文档同步,SVN服务器搭建、备份及多服务器同步方案(Windows)

2017年12月16日Git,SVNStandardViews:2,360虽然Git比SVN强大,已经统治了代码管理领域,但Git是具有一定门槛的&#x

2017年12月16日Git, SVN Standard

Views:

2,360

虽然Git比SVN强大,已经统治了代码管理领域,但Git是具有一定门槛的,对非开发者来说并不那么友好。相对来说,SVN虽然功能没那么强悍,但是服务端搭建简单、客户端操作门槛低,文件管理对大多数普通用户来说已经够用,因此还是有一定的生存空间的。

一、安装服务端

首先安装VisualSVN Server,没什么好讲的因为都是无脑下一步,顶多改下仓库根目录和端口号。至于HTTP还是HTTPS,看个人喜好吧。

安装完之后从开始菜单找到VisualSVN Server Manager,里面可以增删仓库、管理用户、用户组及访问权限。

670e530cd2897060f29e1ebe88d1a47b.png

这就算搭建好了,新建一个仓库和一个用户,再在仓库上分配Read/Write权限给该用户即可。

然后就可以通过地址:http://ip/svn/仓库名  访问仓库了。

客户端小乌龟的使用不在本文描述范围,网上都说烂了。

二、备份方案

网上有很多种备份方案,各种脚本、步骤,搞得很复杂。我只推荐以下方案,快速、简单、暴力!

备份:

svnadmin hotcopy E:\SVN\Repositories\xxx E:\backup\xxx

还原(可直接用VisualSvn import):

svnadmin hotcopy E:\backup\xxx E:\SVN\Repositories\xxx

对多个仓库备份可分别执行。

三、多服务器同步方案

本文以一台主服务器一台备份服务器为例。

1、假设你已经在主服务器有了一个仓库A,并且已经运行了很久,想复制到备份服务器。最好两台服务器上都建一个备份用户,给予读写权限,用相同账号密码,方便。

2、使用hotcopy进行备份,并将其拷贝到备份服务器的任意临时文件夹(非必须,只是不拷贝的话第一次直接进行同步的话会非常慢)

3、在备份服务器创建A的同名仓库

4、如有Hotcopy备份,用它覆盖该仓库的所有文件;

5、改Hook -> Pre-revp-change值为以下内容:

echo "Changing revision pp other than svn:log is prohibited" >&2

exit 0

cb51dc44a41025ca061c94d3b52dc3b4.png

6、打开命令行工具,初始化A仓库

//替换为你自己的仓库路径

svnsync init file:///E:\Repositories\A http://主服务器/svn/A --username 账号 --password 密码

//如果你是用hotcopy覆盖的,用下面的这个

svnsync --allow-non-empty init file:///E:\Repositories\A http://主服务器/svn/A --username 账号 --password 密码

71b95fe2fbd6670fe888ca8754c686e1.png

成功后执行以下代码进行同步,到此备份结束,以后要手动同步都只执行它:

svnsync sync file:///E:\Repositories\A

5b6872f375f3290a3291140bd16573ab.png

注意这个命令是一次性的,每次想同步都要执行一次。如有多个仓库直接写个批处理.bat就好。

7、当然,如果备份服务器想实时同步,需要在主服务器上改Hook post-commit:

svnsync sync --non-interactive http://备份仓库地址/svn/备份仓库路径 --username 账号 --password 密码

收工。



推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • d3dx9_26.dll极品飞车9修复工具下载及修复教程
    本文介绍了d3dx9_26.dll文件的修复工具下载和修复教程,解释了该dll文件的作用和安装方法,同时提供了其他dll文件下载安装的方法。文章涵盖了3d、windows、p2p、dll、visual studio等知识点,并由未来可期1212投稿。希望该技术和经验能帮到你解决dll文件相关技术问题。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Carve库在Visual Studio2015中的编译方法及注意事项
    本文介绍了在Visual Studio2015中编译Carve库的方法及注意事项。首先下载Carve库,并使用Visual Studio2015打开,生成后在bin目录下会生成.lib文件。同时,本文还指出了之前在Visual Studio2017中编译的问题,并提醒需要根据对应的平台进行编译,否则会出现报错。详细的步骤和注意事项请参考原文链接。 ... [详细]
  • Python中sys模块的功能及用法详解
    本文详细介绍了Python中sys模块的功能及用法,包括对解释器参数和功能的访问、命令行参数列表、字节顺序指示符、编译模块名称等。同时还介绍了sys模块中的新功能和call_tracing函数的用法。推荐学习《Python教程》以深入了解。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
author-avatar
生活是多么美好888
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有