SVN版本控制从入门到精通

SVN版本控制实战指南

初始化仓库

创建一个新的SVN仓库是版本控制的第一步。使用以下命令在本地或服务器上初始化一个空仓库:

svnadmin create /path/to/repository

检出工作副本

从远程或本地仓库检出代码到本地工作目录:

svn checkout svn://localhost/path/to/repository /path/to/working_copy

添加文件到版本控制

将新文件纳入版本控制需要先添加再提交:

svn add filename.txt
svn commit -m "添加新文件filename.txt"

提交修改

修改文件后提交变更到仓库:

svn commit -m "修改了filename.txt的内容"

更新工作副本

获取仓库中的最新变更到本地:

svn update

查看文件状态

检查工作副本中文件的修改状态:

svn status

查看修改内容

比较工作副本与仓库版本的差异:

svn diff filename.txt

查看日志

查看文件的提交历史记录:

svn log filename.txt

创建分支

从主干创建开发分支:

svn copy svn://localhost/trunk svn://localhost/branches/dev_branch -m "创建dev_branch分支"

合并分支

将分支变更合并回主干:

svn merge svn://localhost/branches/dev_branch
svn commit -m "合并dev_branch到主干"

解决冲突

当更新或合并时出现冲突,手动解决后标记为已解决:

svn resolve --accept working filename.txt

回滚修改

撤销本地未提交的修改:

svn revert filename.txt

回退版本

将文件回退到特定版本:

svn update -r 123 filename.txt

标签发布

为发布版本创建标签:

svn copy svn://localhost/trunk svn://localhost/tags/v1.0 -m "创建v1.0发布标签"

导出干净副本

导出不含.svn元数据的项目副本:

svn export svn://localhost/path/to/project /path/to/export

权限配置

修改仓库的访问控制列表(需在服务器端操作):

[repos:/path]
user1 = rw
user2 = r

钩子脚本示例

配置pre-commit钩子脚本(存放在仓库hooks目录):

#!/bin/sh
# 阻止提交日志信息少于10个字符
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | wc -c)
if [ "$LOGMSG" -lt 10 ]; then
  echo "提交信息必须至少10个字符" 1>&2
  exit 1
fi

属性设置

为文件设置svn:keywords属性自动替换版本信息:

svn propset svn:keywords "Date Rev Author" filename.txt

外部引用

引用其他SVN仓库中的项目:

svn propset svn:externals "lib svn://other-server/lib/trunk" .
svn update

忽略文件

配置svn:ignore属性忽略特定文件:

svn propset svn:ignore "*.tmp
*.log" .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值