svn版本控制
服务端操作
1》创建版本库
svnadmin create /Users/hudan/svn/runoob01 创建版本库
修改配置文件 /Users/hudan/svn/runoob01/conf
修改svnserve.conf(注意前面不要有空格)
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
开启认证文件. passwd文件
admin = admin_passwd 账号:(admin) ,密码:(admin_passwd)
开启授权文件 authz文件
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
admin=rw
svnserve -d -r /Users/hudan/svn/ 启动版本库 -d (后台运行程序) -r (监管目录)
客户端使用
svn checkout svn://192.168.0.102/runoob01 runoob01 //1:建立服务器连接, 更新服务器代码,以后只需要 update ,更新操作。
0 : echo ‘a’ > a.html
1 : svn add a.html
3 :svn status
4 : svn commit -m ‘提交代码’
多分支使用
创建分支:
svn mkdir -m 'a' svn://192.168.0.102/runoob01/branch 远程创建新分支
svn mkdir -m 'a' svn://192.168.0.102/runoob01/trunk 远程创建新分支
svn mkdir -m 'a' svn://192.168.0.102/runoob01/tags 远程新建分支
更新
#svn update
拷贝分支
svn copy svn://192.168.0.102/runoob01/trunk svn://192.168.0.102/runoob01/branch/items1 -m ‘a’ 拉取新分支’
#cd branch/items1
#echo ‘a’ > a.html
#svn add a.html
#svn commit -m “添加a文件”
合并分支
#cd trunck
#svn merge ../branch/items1
#ls 此时多了一个a.html文件
标签使用
#cd
#svn copy trunk/ tags/v.0
#svn commit -m ’commit tags’
历史记录
# svn log 所有记录 (最新的在最前面)
# svn log -r 9 查看指定版本号
#svn log -r 8:10 查询8到9的版本号
#svn log -v -l 3 显示目录, -l 显示多少行
#svn log trunk/index.html 指定具体文件提交记录
比较
1:检查本地修改
#svn diff
2:比较工作拷贝和版本库
#svn diff -r 3 index.html
3:比较版本库与版本库
svn diff -r 2:3 index.html
查看某一个版本某个文件
#svn cat -r 3 index.html
查看某个版本库的文件夹
#svn list(可以查看本地不存在的文件夹)
版本回退
1:未提交版本库
#echo ‘aa’ >index.html
#svn revert index.html
2:已提交版本库
查找某个文件所有的提交版本号
#svn log index.html
查找具体的版本号信息
#svn cat -r 10 index.html
#svn cat -r 8 index.html
#svn merge -r 10:8 index.html 10是最新的版本号, 8 是想回滚的版本号
冲突 (a 和b 同时修改一个文件,但是a 修改完,提交,b 修改完提交。 下次a 更新就会有冲突。
#输入mc 是以本地文件为主, tc 是以别人的文件为主。