放慢了步伐,只为跑得更远~

0%

Git基础教程

前言

工作中必然会接触到代码版本管理工具,它有效地提高了程序猿的代码管理效率,大大的节约了工作成本.其中,最常用的便是SVN和GIT两种版本管理工具.

SVN基础篇

钩子的用处

svn钩子的好处在于当用户提交前后触发的一些行为.按照具体的行为分为提交前的日志检查和提交后的代码部署

提交前日记检查

用户将数据提交到svn的时候需要填写提交的内容作为当前版本的日志记录.默认情况是不强制用户填写,但如果没有养成日志记录的习惯的话,版本控制的作用效果微乎其微.因为此时用户无法顺利的做版本管理和回溯.因此,我们需要做svn上做数据提交前的日志自检功能,强制用户做日志记录.这里用的钩子是pre-commit.

关于日志提交自检的钩子代码,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
rem SVN强制写注释的hooks脚本(Windows)
rem 文件名是: pre-commit.bat,放到repository/hooks目录下
setlocal
set SVN_BINDIR="这里填写VisualSVN Server的Bin目录"
set REPOS=%1
set TXN=%2
rem 检查日志信息不少于10个字符
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
If %errorlevel% gtr 0 goto err
exit 0
:err
echo 提交时必须填写注释,并且不少于10个字符! 1>&2
exit 1

提交后自动部署

有些时候为了方便和服务器资源的利用,在一台服务器同时部署svn服务器和web服务器.将用户提交的数据部署到web路径下就可以正常访问.这样用户提交的代码可以很直观的显示出来.这样做确实很方便,当然其中也隐藏了一些小技巧.那就是利用svn的钩子实现代码自动部署.这里用到的钩子是post-commit.

关于代码自动化部署的钩子代码,如下所示:

1
2
3
4
5
6
7
@echo off
SET REPOS=%1
SET USER=%2
echo "Code Deployed at %date:~0,10% %time:~0,8%" >> 提交时的日志路径
SET SVN="这里填写VisualSVN Server的Bin目录/svn.exe"
SET DIR="待部署的站点根目录"
%SVN% update %DIR% --username 账号 --password 密码 --non-interactive

初学者可能无法一步到位,看看是否也踩到坑了.以下是一些总结,对Windows和Linux的都大同小异.主要是执行权限和目录路径不规范.

  • 提示 svn: E020024: Error resolving case.可能是指定的目录不合法,特别是windows下的路径分隔符是反斜杠(“\“),在指定的字母之前是有转义功能.此时的反斜杠就是转义符,不再是目录路径分隔符了.

最简单的做法就是更换目录路径,避免转义符.

  • 手动执行改文件代码能正常部署到指定的站点,但提交数据的时候却无法自动部署.全程没有发现报错,就算报错也看不到.这个问题,明显就是Visual SVN Server服务的执行权限不足.

简单操作 win+R 运行 services.msc 找到visual svn server 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试.

GIT基础篇

思考

参考资料

-------------本文结束感谢您的阅读-------------