SVN 安装与使用

article/2025/9/15 16:19:01

目录

​宝塔安装 SVN 服务并自动更新到 web 站点

1、宝塔根目录创建svn文件夹

2、用Xshell在根目录运行命令安装svn:

3、创建版本库:

4、进去cscrm下的conf目录编辑配置文件

5、配置钩子:让代码同步自动更新带 WEB 项目目录

6、去到项目目录上一层,一般是 www/wwwroot 下,运行首次更新命令:

7、本地计算机检出仓库项目

8、检出后,在提交更新,如果提交后,服务器没有自动更新,就再执行一次第6步

windows搭建SVN服务 与 自动更新站点

1、安装 VisualSVN Server

2、创建版本库

 3、关联项目

自动更新到站点

​编辑

问题:如遇到客户端推送报错

设置忽略文件

提交指定文件


​宝塔安装 SVN 服务并自动更新到 web 站点

1、宝塔根目录创建svn文件夹

2、用Xshell在根目录运行命令安装svn:

①、查看命令:

rpm -aq subversion

②、安装命令:

yum -y install subversion

③、卸载命令:

yum remove subversion

④、停止命令:

killall svnserve

⑤、启动命令:

svnserve -d -r /svn

3、创建版本库:

svnadmin create /svn/cscrm

①、会自动创建cscrm目录,并有一些配置文件

4、进去cscrm下的conf目录编辑配置文件

①、配置访问账号:authz文件

括号中是指哪个仓库,在此处指的是cscrm仓库,/代表当前仓库下的所有文件

格式:账户 = 权限,等号两边留一个空格,r:读,w:写

例:testuser = rw    

②、配置访问密码:passwd文件

在 [users] 块中添加用户和密码

格式:帐号 = 密码 (等号两边留一个空格)

例:testuser = 123456

③、配置仓库配置文件:svnserve.conf

找到以下代码,直接去掉前面的 ##(代码顶行)

anon-access = readauth-access = writepassword-db = passwdauthz-db = authzrealm = 版本仓库所在目录

5、配置钩子:让代码同步自动更新带 WEB 项目目录

进去cscrm下的hooks目录新建一个 post-commit 配置文件,或者复制上面的 post-commit.tmpl 去掉 .tmpl 后缀并清空里面的内容,修改文件权限为 777

①、添加内容:

#!/bin/shREPOS="$1"REV="$2"export LC_ALL="zh_CN.UTF-8"export LANG="en_US.UTF-8"SVN_PATH=/usr/bin/svnWEB_PATH=/www/wwwroot/cscrmSVN_USER=kangnjySVN_PASS=123456LOG_PATH=/svn/cscrm/svn.logecho `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATHecho `whoami`,$REPOS,$REV >> $LOG_PATHecho `****************************************` >> $LOG_PATHecho `****************************************` >> $LOG_PATH$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATHexit 0

②、前面内容说明:

WEB_PATH=/www/wwwroot/cscrm/        #WEB网站的根目录   SVN_USER=kangnjy                    #cscrm仓库的账号(有多个的话随便填写一个就好)SVN_PASS=123456                     #cscrm仓库的密码(有多个的话随便填写对应账号的密码)LOG_PATH=/svn/cscrm/svn.log         #svn日志(需要在/svn/cscrm下面新建一个svn.log的文件)

6、去到项目目录上一层,一般是 www/wwwroot 下,运行首次更新命令:

svn checkout svn://localhost/cscrm --username kangnjy --password 123456

注:localhost也可以替换成服务器IP,cscrm为版本仓库名称,后面加上账号密码运行后就不用再输入,不加的话运行 svn checkout svn://localhost/cscrm 后就要输入账号密码。

运行上面命令后,会自动创建一个 cscrm 文件夹,里面只有一个 .svn 文件

7、本地计算机检出仓库项目

在项目目录右键检出,填写:svn://ip/仓库名称,然后提示要输入仓库账号和密码,就是上面配置的

8、检出后,在提交更新,如果提交后,服务器没有自动更新,就再执行一次第6步

注:遇到了不自动更新问题,解决了很久,最后成功了,做了以下动作,也不知道具体是哪一个解决的,记录下:

1、改了 post-commit 文件权限从 755 改为了 777  -- 已测试 755 也可以

2、钩子文件第一行加了:#!/bin/sh

3、钩子文件最后一行加了:exit 0

4、改了钩子文件中的配置,如下:

SVN_PATH=/usr/bin/svnserve

改为:

SVN_PATH=/usr/bin/svn

之前用下面命令查看的svn安装目录是/usr/bin/svnserve,但不知道是改后也能用还是才能用,以后再测试

which svnserve

windows搭建SVN服务 与 自动更新站点

1、安装 VisualSVN Server

准备一台用作搭建服务的主机

TortoiseSVN(客户端):官网下载

 VisualSVN Server(服务端):官网下载

Location:安装目录

Repositories:版本库目录

Backups:备份目录

2、创建版本库

打开安装好的 VisualSVN Server

在 Repositories 右键 -- 新建 -- Repository...

 

 输入项目名

第一项:创建空目录,第二项:创建三个默认文件目录

 

 

 

 项目上右键复制版本库url(第一次会提示创建用户)

 3、关联项目

在项目目录右键检出

 检出项目(需要填写前面创建的用户密码)

 

 

 

右键 -- 提交

 

在服务端刷新查看提交成功

关联后 

正常操作是先 SVN更新 -- SVN提交

自动更新到站点

1、在svn服务端E盘拉取项目

svn co https://DESKTOP-0MD5559/svn/test11/

2、进入项目仓库版本目录的 hooks 文件夹下(里面的 tmpl 文件是一些参考模板)

找到 post-commit.tmpl 复制一份,修改后缀为 bat

提前配置好 svn 的环境变量(在系统变量path添加svn的安装目录D:\SVN\Location\bin)

WORKING_COPY -- 前面拉取的站点目录

username -- svn用户名

password -- svn密码

@echo off  
SET REPOS=%1  
SET REV=%2  
SET DIR=%REPOS%/hooks  
SET PATH=%PATH%;  
SET WORKING_COPY=E:/test11
svn update %WORKING_COPY% --username admin --password 123456

用户名 -- 右键可修改密码

3、保存后,可以在控制台运行测试

如下更新成功(推送指定仓库成功)

如果报 svn: E155007: 错误:就是没有找到目录(也就是没有包含 .svn 的文件夹),修改上面的 WORKING_COPY 为拉取的站点目录即可

 至此即可在客户端提交后,服务端经过 post-commit 钩子同步到关联站点

问题:如遇到客户端推送报错

svn: E200031: sqlite[S8]: attempt to write a readonly database

原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。

解决办法:

win+R 运行 services.msc 打开服务(也可从任务管理器 -- 服务 -- 打开服务)

找到 VisualSVN HTTP Service 服务 右键 -- 属性 -- 登陆 -- 选择本地系统账户,勾选允许服务与桌面交互;

保存后试下

参考:svn配置post-commit钩子 - 掘金

windows 下svn post-commit 无法同步更新的问题_51CTO博客_svn没有update和commit

设置忽略文件

1、在文件上面右键

去除版本控制并增加到忽略列表

 2、批量忽略

在项目根目录右键 -- TortoiseSVN -- 属性 -- 新建 -- 其它 -- 属性选择 svn:ignore

 3、全局配置

在项目根目录右键 -- TortoiseSVN -- 设置 -- 常规设置

提交指定文件

初次提交指定文件(文件比较多时)可使用此方法

# --------- #

文件少可以在提交时按需选择提交

end 结束

参考

宝塔面板搭建SVN项目管理服务器并自动更新至WEB目录 - 白与黑 ~ 个人博客

解决自动更新问题参考

post-commit hook failed (exit code 255) with no output 解决方案 - belaytech - 博客园

window客户端使用SVN

TortoiseSVN教程级别指南 - 简书

提交忽略参考

SVN如何批量忽略文件和文件夹_chensheng8085497的博客-CSDN博客_svn忽略文件夹


http://chatgpt.dhexx.cn/article/QqMHfiuU.shtml

相关文章

SVN 安装参考步骤

一、官网下载 SVN(VisualSVN)服务端:https://www.visualsvn.com/ SVN()客户端:https://tortoisesvn.net/ 二、SVN 服务端安装 1 双击运行下载好的.msi文件 2 点击下一步“next” 3 选择组件,…

Svn安装配置

一、下载安装 1、进入官网下载适用于自己机器的安装包,官网地址:https://tortoisesvn.net/downloads.html 2、双击下载好的安装包,弹出安装界面 3、点击next一直到此界面,可以修改安装路径,command line client too…

SVN安装教程

服务端下载链接:Download | VisualSVN ServerVisualSVN Server - All-in-one installer for Subversion and Apachehttps://www.visualsvn.com/server/download/客户端下载链接:Download | VisualSVN for Visual StudioVisualSVN - Subversion plugin fo…

SVN安装

在windows下安装 SVN 下载地址:SVN 下载完成后,在相应的盘符中会有一个Setup-Subversion-1.8.17.msi的文件,目前最新的版本是1.8.17, 这里就使用这个版本。然后双击安装文件进行安装。我们默认安装在C:\Program Files (x86)\Subv…

SVN的安装与使用

目录 一. SVN 是什么二. SVN 的安装1. 下载 TortoiseSVN2. 安装3. 使用 三. SVN 的使用1. SVN Checkout2. SVN Update3. SVN Commit4. SVN Revert 四. SVN 常见报错1. SVN 未响应2. 目标计算机积极拒绝 一. SVN 是什么 SVN 全名为 SubVersion,即版本控制系统&#…

SVN下载、安装、配置及使用方法

文章目录 SVN是什么相关概念为什么需要SVNSVN的特点TortoiseSVN VisualSVN Subversion 以及 VisualSVN Server的区别为什么不直接使用SubversionSVN下载SVN服务端安装SVN服务端配置SVN客户端安装如何验证SVN客户端是否安装成功SVN客户端汉化包的下载、安装使用SVN客户端连接SVN…

SVN详细安装教程

一、SVN的概念 SVN是Subversion的简称,是一个开放源代码的版本控制系统。 它管理着随时间改变的数据,这些数据都放置在SVN服务器中,它会记住每一次文件的变动,这样你就可以把文件恢复到旧的版本, 或是浏览文件的变动历史。 二、…

【2022最详细--SVN客户端安装教程】

一、SVN客户端安装教程 SVN客户端为TortoiseSVN,安装之后就可以访问服务器端的版本库。读取项目文件、代码,还可以将修改后的文件、代码上传到服务器远程库上, 与项目组成员共同维护项目文件、代码。 安装TortoiseSVN: TortoiseSVN下载地址…

SVN安装及使用教程图文详解

一、SVN简介 1.什么是SVN? SVN全名Subversion,即版本控制系统。SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。 作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案…

SVN从安装到使用

这里写目录标题 1. SVN的简要概述1.1 什么是SVN1.2 为什么使用SVN 2. SVN的获取及安装步骤2.1 获取SVN软件2.2 SVN安装步骤 3. SVN的大致操作流程3.1 SVN服务端的大致操作流程3.2 使用客户端软件连接SVN服务器 4. SVN使用详解(三大指令)4.1 三大指令之ch…

基于QT的安卓手机蓝牙APP开发

摘要:前段时间用QT写了一个串口调试助手,感觉还可以。因为QT是跨平台的,同样一套代码可以在windows上面跑,也可以在linux上面跑,也可以在安卓手机上面跑。而且不需要修改任何东西,编译器会自动给你生成好&a…

【安卓实现手机通讯录】开发总结

Android实现手机通讯录 总结遇到的问题一、 权限安卓的权限主要分为问题二、Android studio 数据库可视化操作三、数据库查找工作1、查找联系人信息2、如何异步查询短信记录 四、Intent 传送数据1.使用方式一:2.使用方法二: 五、运行时的错误1.空指针异常…

手机程序开发

如今手机已成为大众的交流工具。有关手机的程序开发越来越广泛,本节通过几个典型实例介绍如何利用短信猫发送、接收短信、远程控制计算机、业务员销售数据采集和短信息娱乐互动平台。 实例431 利用短信猫收发短信息 实例说明 短信猫是利用SIM卡发送短信的硬件设备&…

实战用Python+Pygame+Kivy(Buildozer)+Ubuntu开发安卓android手机端apk游戏及踩坑分享

在学习Python过程中,第一个接触到了Pygame和Pygame ZERO两个库,学完Pygame的基础知识后,就开始研究如何让程序在手机端运行,于是就开始了无尽的踩坑过程。 游戏的编写和设计就一笔略过,基础的源代码网上下载的&#x…

【安卓开发】

adb 查看Android版本号和SDK版本号 获取系统版本: adb devices adb usbadb shell getprop ro.build.version.release获取系统api版本: adb shell getprop ro.build.version.sdk争做数字极简主义,从买一台多亲2pro老年机开始 进入开发者&…

AndroidStudio连接安卓手机开发与调试

由于最近需要出去做学习汇报,本人就想着做一个简单的成品进行展示(入门级),又通过这段时间的学习发现,用安卓手机进行调试代码,不仅可观还方便展示哈哈哈,,但是连接手机调试的过程中…

Android开发板

由于公司要做智能自助设备,因此需要在Android开发板上开发,记录一下经验 一、Android开发板应用 Android开发板应用: 商业应用:机顶盒、广告机,自助机,售卖机,多媒体教学,人脸识别…

0.1.2 arduinodroid安卓手机版开发工具

原料: 能联网的手机1个 OTG转接头1个 开发板1个 数据线1根 目的: 在没有电脑的环境下码代码、编译、debug、update固件 首先手机上下载安装【arduinodroid】应用 然后用数据线连接OTG手机和开发板, 打开软件在右上角的【...】打开设置…

Android开发技术

Android 开发技术 1.RecycleView 设置监听器2.TimepickerView使用3.EditText隐藏下划线 1.RecycleView 设置监听器 步骤: 1、在Adapter中新建一个接口,定义接口内部的方法,并将该接口在adapter中实现 编写回调接口的基本步骤: 1…

安卓手机APP 开发

最近在准备开题报告,已经很久没再写博客了,明天要开题答辩了,十分紧张,写个博客,放松一下,祝自己明天顺利通过。哈哈!!!!! 前一阵子,…