1.基本操作
1.0 创建版本库:
Svnadmin create /data/repos
2.0 修改配置文件 Auth文件 [groups] admin=shguo [/] @admin=rw *=r [groups] admin=shguo [/] @admin=rw *=r
Passwd文件 [users] shguo=shguo [users] shguo=shguo
Svnserve.conf文件 anon-access = read auth-access = write password-db = passwd authz-db = authz
注意:要去掉前面的空格不然会报,认证配置失败
3.0启动:
svnserve –d –r repos
4.0 创建目录 svn mkdir svn://127.0.0.1/repos/ -m “mkdir” (说明“”中是提交的log注释) svn mkdir svn://127.0.0.1/repos/sns/ -m “mkdir” svn mkdir svn://127.0.0.1/repos/sns/trunk -m “mkdir” svn mkdir svn://127.0.0.1/repos/sns/branches -m “mkdir” svn mkdir svn://127.0.0.1/repos/sns/tags -m “mkdir” 或者本地操作 svn mkdir file:///data/repos/ -m “mkdir” svn mkdir file:///data/repos/sns/ -m “mkdir” svn mkdir file:///data/repos/sns/trunk -m “mkdir” svn mkdir file:///data/repos/sns/branches -m “mkdir”
svn mkdir file:///data/repos/sns/tags -m “mkdir”
5.0导入项目: Svn import sns svn://127.0.0.1/repos/sns/trunk/ –m “init project” 查看:svn list svn://127.0.0.1/repos/sns/trunk/
6.0导出项目开发:
Svn checkout svn://127.0.0.1/repos/sns/trunk/sns
7.0进入目录就可以进行开发操作了 Cd sns Svn status Svn add new.txt Svn commit –m ‘commit’ Svn log new.txt
其它一些命令: Svn update Svn diff –r m:n path Svn lock some.java or svn unlock some.java Svn revert Svn add /delete / copy / move Svn switch –relocate svn://xxxx/one svn://xxxx/two
Svn list path
2. Svn中分支的使用
2.0 创建分支 Svn cp http://svn./repos/sns/trunk/ http://svn./repos/sns/branches/101128_sns_imageUpload_shguo -m “shguo_branch” 也可以通过 TortoiseSVN 中的Branch/tag来创建分支
2.1 取出分支来开发
Svn co http://svn./repos/sns/branches/101128_sns_imageUpload_shguo 101128_sns_imageUpload_shguo
2.2开发完成后向主干提交
检查需要合并的分支的历史: svn log --stop-on-copy -q http://svn./repos/sns/branches/101128_sns_imageUpload_shguo 合并: svn merge –r 16:HEAD http://svn./repos/sns/branches/101128_sns_imageUpload_shguo
2.3检查冲突: svn status 如果有解决冲突,没有就svn commit命令就可以完成提交
2.4 批量增加svn文件 svn add `svn st |grep ? |awk '{print $2}'` svn st |grep ? |awk '{print $2}' |xargs svn add
2.5 批量增加svn:ignore属性 svn propset svn:ignore -F ~/.svnignore -R /app/work/app1 ------------------------------------------------------------------------------------------ 整个具体流程总结如下 : 1.建立两套服务器.配置一致.程序发布的目录等设置也保持一致 如:(QA环境 生产环境) 2.其中一套作为开发测试环境使用.一套作为生产环境使用 3.SVN建立trunk目录作为主代码分支,,建立branch目录作为其他分支;如svn://project/trunk svn://project/branch 4.开发人员使用branch分支进行开发;(问题点:开发自测和QA测试环境) 5.当确认某个测试版本稳定后.将branch分支的内容合并(merge)到主干. 6.运维将测试环境主干代码update到生产环境; 3.分支使用命令示例: 3.0 创建分支
svn cp http://..../project/trunk http://..../project/branch/mall_bugid3012_order -m “order”
3.1 取出分支开发 3.2 开发完成后提交
3.3 检查需要合并的分支记录
svn log –stop-on-copy –q http://..../project/branch/mall_bugid3012_order
3.4 合并
svn merge –r 旧版本号:新版本号(head) http://..../project/branch/mall_bugid3012_order
3.5 检查冲突和提交
svn status svn commit
|