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" .

5289

被折叠的 条评论
为什么被折叠?



