1. 安装 svn yum install subversion 安装svn扩展
2. mkdir /svnroot 创建svn文件夹
3. svnadmin create /svnroot/imooc 创建版本库 (绝对路径)
4. cd /svnroot 进入svn目录
5. svnadmin create imooc2 创建版本库(相对路径)
6. rm -rf /imooc2 (删除版本库 请再三确保版本库没用了)
7. conf/ 文件简介
authz 配置用户组以及用户组权限
passwd 配置用户名和密码
svnserve.conf 配置默认权限、权限配置文件及密码配置文件
8. 概念说明:
更新 从服务器上下载最新的文件
提交 从本地上传最新的文件
9. 修改配置文件 svnserve.conf
# anon-access = read 未经验证用户(没有用户名密码)可以干什么(更新)
# auth-access = write 通过验证的用户可以干什么
注: 去掉这两行注释 可选值有3个 none 什么都干不了 read 可以更新 write 允许提交和更新代码
# password-db = passwd 指定用户名及密码配置文件路径
# authz-db = authz 指定权限分组配置文件路径
注: 去掉这两行注释 路径支持绝对和相对 默认为conf文件下同级文件 修改后注意文件需要读写权限
10. 修改配置文件 password (存放当前版本库用户名和密码) 增加相应用户名和密码 (顶格写 千万别有空格)
11. 修改配置文件 authz
[aliases] 别名 暂时先不管
[groups] 组配置
@组名 = 用户,用户 @必须加
[/] 版本库根目录
@组名 = 权限
[imooc:/]
只针对指定版本库制定权限
cdd = rw 对单个用户制定权限
[repos:/xxx] 版本库下文件夹制定权限
* = r 所有人都有r权限
例:
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil,
Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
dev = cdd
[/]
@dev = rw
[imooc:/]
@dev = rw
cdd = rw
12. svnserve -d -r /svnroot/imooc/ 启动版本库
svnserve -d -r /svnroot/hello --listen-port 3691 启动另一个版本库修改其端口号
13. svn co svn://127.0.0.1 连接svn (回到你自己想要的目录下)
svn co svn://127.0.0.1:3692 cdd1 连接svn 指定端口号和目录
14. ls -a 能查看到 .svn 证明成功
附: windows svn客户端下载地址
链接:http://pan.baidu.com/s/1mhXpNRE 密码:v4gh
15. windows操作: 新建一个文件夹右键检出 地址例: svn:// xxxx
文件夹里有.svn隐藏文件 就妥了
16. svn开机启动
vim /etc/rc.d/rc.local
/usr/bin/svnserve -d -r /svnroot/imooc (加入一行)
chmod +x rc.local 给下执行权限
checkout 检出 检出文件包含.svn文件夹
svn checkout svn://127.0.0.1/imooc
export 导出 导出文件不包含.svn文件夹
客户端命令
add 添加到版本控制
svn add index.html 一次添加一个文件
svn add js --non-recursive 只添加文件夹 不添加下面的文件
svn add * 添加所有文件 如果文件夹已经存在 则不扫描里面文件
svn add * --force 添加所有文件 强制执行 有文件夹也扫描里面文件
commit = ci 把记录提交到服务器
svn ci -m "new message" * 把所有记录提交到服务端
update up 更新 (系统只会更新一次文件 想强制更新 加* 或者删除文件重新更新)
svn up 获取服务器上最新的数据
svn up -r 1 index.html svn up -r 版本号 文件名
svn up * 强制更新所有文件
delete del remove rm
svn rm contact.html 从版本库中删除一个文件
diff di 版本差异比较
svn di index.html svn di 需要比较的文件
例子:
Index: index.html 对比的文件
===================================================================
--- index.html (revision 3) -号代表最后一次获取的内容 revision3 版本3
+++ index.html (working copy) +号表示工作副本中修改的内容
@@ -0,0 +1,11 @@ -0,0 存在差异的文件行号 +1,11 本地文件存在差异的行号
+ 存在差异的内容
+
+
- title 会把减号的内容删除
+ index title 会把加号的内容添加进去
+
+
+ This is the 1st line content in index.html.
+ This is the 1st line content in index.html.
+ This is the 1st line content in index.html.
+
+
svn di -r 2 index.html 比较当前文件和版本2文件的差异
svn di -r 1:3 index.html 比较版本1和版本3文件的差异
svn di 扫描所有文件 列出有修改的所有文件的对比
mkdir 创建目录并增加到版本控制
svn mkdir abc svn mkdir 文件夹名 创建一个文件夹 并上传到版本库中
cat 不检出工作副本直接查看制定文件
svn cat svn://127.0.0.1/index.html svn cat svn完整路径+要看的文件
revert 工作副本还原 (默认情况下只会扫描当前目录)
svn revert index.html 复原index.html 到版本库上最新版本
svn revert * 复原所有文件到版本库上最新版本
svn revert --recursive * 递归扫描所有文件复原到版本库上最新版本
文件冲突
Select: (p) postpone, (df) diff-full, (e) edit, p 延迟处理 df 显示差异 e 编辑
(mc) mine-conflict, (tc) theirs-conflict, mc 保留我的版本 tc保留他人的版本
(s) show all options:
df 例:
title
+<<<<<<< .mine
+ I am B
自己的版本
+=======
+ I am a
对方的版本
+>>>>>>> .r5
This is the 1st line content in index.html.
This is the 1st line content in index.html.
This is the 1st line content in index.html.