1、创建svn版本库
sshroot@123.57.53.21
cd/home/svn
sudo svnadmin create name
2、配置svn
cd/home/svn/name/conf
authz
[groups]
group_name= user1, user2
[/trunk]
admin= rw
someuser= r
*=
[/branches/branch1]
@group1= rw
admin= rw
*= r
etc.
passwd
username= password
svnserve.conf
anon-access= read
auth-access= write
password-db= passwd
group功能:authz-db= authz
3、import项目
cd/var/www/{原始项目目录}
cd/var/www/edusoho_11_2
svnimport . svn://123.57.53.21/name/trunk -m “message”
4、创建文件夹
// svn mkdir svn://123.57.53.21/name/branches
服务器trunk:
cd/var/www/name
svncheckout . svn://123.57.53.21/name
5、拉分支、删除分支
svn copy svn://123.57.53.21/name/trunk svn://123.57.53.21/name/branches/xdb151109 -m “”
svn rm svn://123.57.53.21/name/branches/xdb151109 -m “”
在项目目录下有三个目录
a) trunk--------主干, 线上环境运行的就是这个代码.
b) branches----分支, 仅限开发, 合并使用. 通常是以项目名字命名子目录,一般在aone上新建的小需求时,aone就会自动新建分支.
c) tags---------标记 aone一般用来合并发布当天所有和这个代码模块相关的小需求代码,然后统一进行编绎
我们接触最多的是branches,branches开发工程师可以申请读写权限,trunk我们是没有写权限的,只有读权限。
常用SVN命令:
最全的还是使用svn help命令
在命令行中输入svn help,会显示svn 的所有子命令及全局参数;
在命令行中输入svn help commond 会显示commond 的使用方法及参数; 如svn help ci
1.新拉分支命令:
应用场景:
a.当有代码模块有新的发布时,主干上有更新,需要从主干上新拉分支,将当前开发分支的代码合并到新的分支上去,以保持开发分支上的代码与主干是一致
b.当有新的功能点要开发,而不想与其它功能点在一起互相影响,需要从主干上新拉分支
*命令格式:*svn copy trunk_url branch_url -m "comments"
执行路径:在命令行的任意路径执行均可
参数说明:
trunk_url:一般是从主干上新拉分支
branch_url:分支地址 分支的命令方式,一般是日期_分支功能点_num 当然,这个名字很灵活了,最好的是能让人一眼看出这个分支是做什么功能点用的,num是1 2 3 。。。
*例如:*给测试同学测试多域名分支用的拉分支命令:
svn copy apath bpath -m "reason"
2.从svn 中检出代码到本地工作空间
应用场景:需要在本地跑应用,或是查看代码,你懂的。
命令格式:svn co URL[@REV]... [PATH]
执行路径:在本地想要存放代码的路径中执行
参数说明:
URL[@REV]:想要检出的代码URL路径 REV是版本号,如果不写REV,则默认检出最新代码
PATH:如果不写Path,则url的最后一段将作为文件夹名称(分支名称)
例如:将分支20110805_test_multi-domain_1的代码co到本地 当前路径:
svn co xxxxxxxx .<这里有个点哟>
6、合并预览
(1)主干svn更新:
svn
update (--force)
(2)查询分支版本号
svn
log -v --stop-on-copy {分支svn目录}
r5
| lwl | 2015-11-04 11:45:13 +0800 (Wed, 04 Nov 2015) | 1 line
分支版本号: 5
(3)预览
svnmerge --dry-run -r {分支版本号}:{主干版本号} {分支svn目录}
7、合并分支
svnmerge -r {分支版本号}:{主干版本号} {分支svn目录}
svncommit -m “ ”
8、svn状态查询
svn status
8、svn信息查询
svn
list -v svn://123.57.53.21/name/branches
svn
log -r 4:20