前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【腾讯云的1001种玩法】在QCloud的 CentOS 下搭建一个适用于个人的 SVN 环境

【腾讯云的1001种玩法】在QCloud的 CentOS 下搭建一个适用于个人的 SVN 环境

原创
作者头像
边子政
修改于 2017-06-19 11:18:19
修改于 2017-06-19 11:18:19
1.6K00
代码可运行
举报
文章被收录于专栏:边子政的专栏边子政的专栏
运行总次数:0
代码可运行

安装 SVN

检查是否安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rpm -qa subversion

卸载旧版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum remove subversion

安装最新版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install subversion

检查是否安装成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svnserve --version

创建项目仓库

创建目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /var/svn/svnrepos

创建项目仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svnadmin create /var/svn/svnrepos

检查是否创建成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /var/svn/svnrepos

之后使用 ll 查看是否多了一些文件夹(如果成功)

配置项目库

进入 conf 目录,了解配置文件:

authz 是权限控制文件

passwd 是账号密码文件

svnserve.conf 是 SVN 服务配置文件

配置 passwd

根据 users 标签中的提示进行配置即可,等号左边是用户名,右边是密码

配置 authz

只有自己用,所以只是限定自己的用户有 rw 权限即可,在文末加入用户名和读写权限就可以了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#example
[/]
abc(your username) = rw

配置 svnserve.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz # 访问控制文件
realm = imagine's svn server # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

开放 SVN 端口

修改 iptables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

保存 iptables 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/rc.d/init.d/iptables save

重启 iptables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
service iptables restart

查看 iptables 状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/init.d/iptables status

启动 SVN 服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svnserve -d -r /var/svn/svnrepos

-d: 守护进程 -r:svn 根目录

连接 SVN

使用 TortioseSVN 连接到 svn://我的 ip 地址/

输入前面设置的用户名密码即可访问

配置开机启动

编写脚本 svn_startup.sh,放在/root/svn_startup.sh,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
export LC_CTYPE="zh_CN.UTF-8"
/usr/bin/svnserve -d -r /var/svn/svnrepos

(关于绝对路径:在启动的时候环境变量可能没有加载,所以采用绝对路径比较保险,可以使用 which svnserve 命令来查询绝对路径)

修改脚本权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod ug+x svn_startup.sh

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 777 svn_startup.sh

添加自启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/rc.d/rc.local

在文件末尾添加命令行脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/root/svn_startup.sh

重启之后确认启动成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps -ef|grep svnserve

checkout 网站工作目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svn co svn://localhost /var/www/html/ --username user --password passwd

使得 SVN 可以自动同步网站代码

将工作目录转移到钩子文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /var/svn/svnrepos/hooks

添加配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp post-commit.tmpl post-commit
chmod 777 post-commit

修改 post-commit 文件,加入以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export LANG=zh.CN.UTF-8
cd /var/www/html/
/usr/bin/svn update --username usrname --password passwd --no-auth-cache
echo `date`,`whoami`,$REPOS,$REV >>/var/svn/svnrepos/hooks/svn_hook.log

SVN 同步时注意

工作目录需要先 checkout(前面已经 checkout 过了)

先切换到工作目录 再用 SVN 的 co 或者 checkout 命令进行 checkout

如果工作目录有更改,需要 commit

先切换到工作目录 再用 SVN 的 commit 或者 ci 命令进行同步

可能需要—message 或者-m 参数,后面跟上这次修改的一些信息即可

如果工作目录中有新的文件,需要先添加到 SVN 中在同步

使用 SVN 的 add 命令进行添加文件或者文件夹 如果需要添加的文件很多,可以使用 Linux 的 通配符: svn add /

批量添加/删除 SVN 同步的文件

使用 bash 命令 添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svn status|grep ? |awk '{print $2}'|xargs svn add

删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
svn status|grep ! |awk '{print $2}'|xargs svn del

可以添加到 PATH 中,如/usr/local/bin,命令叫做 svnaddall 和 svndelall

如果 SVN 同步目录中出现中文,钩子无法正常运行需要修改系统的 locale

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export LC_CTYPE="zh_CN.UTF-8"

之后可以用 locale 命令检查 (添加 locale 的命令已经包含在自启动文件中了)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
深度讲解JavaScript 开发规范 ---(变量,函数(规范较多))
本文从变量、函数、对象、数据结构、类、测试、并发、错误处理、格式化等方面进行介绍。
zhouzhouya
2023/11/02
2950
一份开源的编码规范:代码整洁的 JavaScript
作者根据 Robert C. Martin 《代码整洁之道》总结了适用于 JavaScript 的软件工程原则《Clean Code JavaScript》。
落落落洛克
2021/03/08
8870
如何写出优雅的 JS 代码,变量和函数的正确写法
在开发中,变量名,函数名一般要做到清晰明了,尽量做到看名字就能让人知道你的意图,所以变量和函数命名是挺重要,今天来看看如果较优雅的方式给变量和函数命名。
前端小智@大迁世界
2020/05/18
3.9K0
代码整洁的 JavaScript
将源自 Robert C. Martin 的 Clean Code 的软件工程原则适配到 JavaScript 。 这不是一个代码风格指南, 它是一个使用 JavaScript 来生产 可读的, 可重用的, 以及可重构的软件的指南。
beginor
2020/08/07
1.1K0
代码整洁的 JavaScript
JavaScript 风格指南 [每日前端夜话(0x1C)]
原文链接:https://github.com/ryanmcdermott/clean-code-javascript
疯狂的技术宅
2019/03/27
8840
JavaScript 风格指南 [每日前端夜话(0x1C)]
[译] 如何写出漂亮的 JavaScript 代码
这是一条在软件工程领域流传久远的规则。严格遵守这条规则会让你的代码可读性更好,也更容易重构。如果违反这个规则,那么代码会很难被测试或者重用。
小生方勤
2019/07/01
6260
[译] 如何写出漂亮的 JavaScript 代码
如何编写漂亮的 JavaScript 代码
这是一条编程领域流传久远的规则。严格遵守这条规则会让你的代码可读性更好,也更容易重构。如果违反这个原则,那么代码会很难被测试或者重用。
小鑫
2022/02/23
8700
JavaScript经典面试题之简单算法
在 Virtual DOM 的基础上给 VNode 类添加 render 方法,render 方法把一个虚拟的 DOM 节点渲染成真正的 DOM 节点,例如:
王小婷
2025/05/18
670
什么代码会遭人耻笑,什么妹子会受人喜欢?从妹子角度戏说代码优劣。
在日常生活中,丑姑娘和好姑娘一眼就能识别;在代码中,好代码与坏代码却不容易觉察,这里面有标准,但每个程序员都觉得自己创造的代码好。了解这些标准,可以有效避免写出坏代码。
LIYI
2019/09/27
4150
什么代码会遭人耻笑,什么妹子会受人喜欢?从妹子角度戏说代码优劣。
P代码整洁之道
使用有意义且可发音的变量名 Bad: $ymdstr = $moment->format('y-m-d'); Good: $currentDate = $moment->format('y-m-d'); 对同一类型的变量使用相同的词汇表 Bad: getUserInfo(); getUserData(); getUserRecord(); getUserProfile(); Good: getUser(); 使用可搜索的名称(第一部分) Bad: $result = $serializer->ser
用户8568307
2022/03/14
2900
揭秘 JavaScript 代码整洁技巧,让你的项目更出众
代码质量与整洁度成正比。有的团队在赶工期的时候,不注重代码的整洁,代码写的越来越糟糕,项目越来越混乱,生产力也跟着下降,那就必须找更多人来提高生产力,开发成本越来越高。
winty
2024/03/18
1450
揭秘 JavaScript 代码整洁技巧,让你的项目更出众
看看这些被同事喷的JS代码风格你写过多少
现在写代码比以前好多了,代码的格式都有eslint,prettier,babel(写新版语法)这些来保证,然而,技术手段再高端都不能解决代码可读性(代码能否被未来的自己和同事看懂)的问题,因为这个问题只有人自己才能解决。我们写代码要写到下图中左边这样基本上就功德圆满了。
谭庆波
2019/04/09
7890
看看这些被同事喷的JS代码风格你写过多少
python版代码整洁之道
原文:https://github.com/zedr/clean-code-python
kbsc13
2020/02/19
1.2K0
JavaScript 的简洁之道
如果你关注代码本身和代码的编写方式,而不是只关心它是否能工作,那么你写代码是有一定的水准。专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写当前能工作就行的代码。
前端小智@大迁世界
2019/06/15
4440
JavaScript 变量命名规范总结
看完以上几个示例,我们就知道自己在变量命名这么一件简单的事情上达到了什么层次。当然,其实这个”小事“并不简单,且很重要。本文从「符合命名规范」和「有意义的命名」两个维度,提出了一些实操建议,欢迎拍砖。
coder_koala
2021/07/08
1.1K0
最全面的前端开发指南
HTML 语义 HTML5为我们提供了很多旨在精确描述内容的语义元素。确保你可以从它丰富的词汇中获益。 <!-- bad --> <div id="main"> <div class="article"> <div class="header"> <h1>Blog post</h1> <p>Published: <span>21st Feb, 2015</span></p> </div> <p>…</p> </div> </div> <!-- go
前朝楚水
2018/04/02
7880
《重构-代码整洁之道TypeScript版》第一天
看到这个标题你的脑海中一定会浮现出两本书,一本就是,《重构--改善既有代码设计》 和 《代码整洁之道》 。这确实是两本非常伟大的图书,但是很遗憾里面提供的 code 都是 Java 的版本。《重构--改善既有代码设计》 的第2版提供了 JavaScript 的版本,已经非常方便我们前端同学阅读了,但是在 TypeScrip 如此火热的今天,缺了 TS 的版本,始终觉得是些遗憾,所以老袁打算每天拿出一些时间将一些非常经典的案例,结合老袁十年的经验总结到一块使用 TS 重写,希望能陪伴各位的技术成长之路,我会从大致如下方向跟各位共同分享:
疯狂的技术宅
2020/08/04
1.1K0
3 个可能有用的奇怪 JavaScript 类
英文 | https://javascript.plainenglish.io/3-weird-javascript-class-tricks-that-could-be-useful-c5a78144d574
winty
2022/02/18
3690
Javascript编码规范建议
示例: 解释: 声明包含元素的数组与对象,只有当内部元素的形式较为简单时,才允许写在一行。元素复杂的情况,还是应该换行书写。 示例:
Clearlove
2019/08/29
1.4K0
Javascript编码规范建议
JavaScript 编程规范(一)
eslint: object-shorthand jscs: requireEnhancedObjectLiterals
桃翁
2019/03/17
1.8K0
JavaScript 编程规范(一)
推荐阅读
相关推荐
深度讲解JavaScript 开发规范 ---(变量,函数(规范较多))
更多 >
LV.1
腾讯前端开发工程师
目录
  • 安装 SVN
  • 创建项目仓库
  • 配置项目库
    • 进入 conf 目录,了解配置文件:
    • 配置 passwd
    • 配置 authz
    • 配置 svnserve.conf
  • 开放 SVN 端口
  • 启动 SVN 服务
  • 连接 SVN
  • 配置开机启动
    • 修改脚本权限
    • 添加自启动
    • 重启之后确认启动成功
  • checkout 网站工作目录
  • 使得 SVN 可以自动同步网站代码
  • SVN 同步时注意
    • 工作目录需要先 checkout(前面已经 checkout 过了)
    • 如果工作目录有更改,需要 commit
    • 如果工作目录中有新的文件,需要先添加到 SVN 中在同步
    • 批量添加/删除 SVN 同步的文件
    • 如果 SVN 同步目录中出现中文,钩子无法正常运行需要修改系统的 locale
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档