最近因为移植uboot发现有时候只是修改了一点的内容,逻辑上没问题,但照样不能跑起来,所以不得不回退到历史代码,不断使用原始的保存文件的副本的方法很不方便,终于决定创建自己的svn服务器。
创建svn数据库
======svnadmin====================================================
svnadmin create /server/svn/svndata/repos_uboot_new --fs-type bdb --bdb-log-keep
创建 svn数据库repos_uboot_new ,类型为bdb,保留日志
svnadmin setlog
svnadmin recover
启动svn服务器
=======svnserver=====================================================
svnserver -d -r /opt/server/svn/svndata
svn服务器配置
==============================================================
/opt/server/svn/svndata/repos_uboot/conf/svnserver.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
/opt/server/svn/svndata/repos_uboot/conf/authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin_group = king
trunk_group = trunk,king
tag_group = tag,king
dev_group = dev,king
[repos_uboot:/]
@admin_group = rw
[repos_uboot:/trunk]
* = r
@trunk_group = rw
[repos_uboot:/tags]
* = r
@tag_group = rw
[repos_uboot:/branches]
* = r
@dev_group = rw
/opt/server/svn/svndata/repos_uboot/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
king = king
trunk = trunk
tag = tag
dev = dev
导入/导出基础数据
======svn import&export============================================================
svn import /work/embed/u-boot-2010.12_orginal/ svn://127.0.0.1/repos_uboot --message "start uboot project, this is original uboot file"
把文件 夹u-boot-2010.12_orginal导入到repos_uboot的根目录下
svn export svn://127.0.0.1/repos_uboot dir
======svn checkout===============
svn checkout svn://localhost/repos_uboot dir
打标签/建分支
======tags & branches========================================================
tag_original tag_first_run dev can not be exist
svn copy svn://127.0.0.1/repos_uboot_new/trunk svn://127.0.0.1/repos_uboot_new/tags/tag_original -r 4
把trunk下的r4版本打 标签,并保存到tag_original(该名字不能已经存在)
svn copy svn://127.0.0.1/repos_uboot_new/trunk svn://127.0.0.1/repos_uboot_new/tags/tag_first_run
svn copy svn://127.0.0.1/repos_uboot_new/trunk svn://127.0.0.1/repos_uboot_new/branches/dev -r 4
======svn copy for WCPATH ========================================================
merger版本
======svn merge===============================================
merge dev2@7 to trunk@4 , save it to /uboot_new_linux_dir2/trunk
svn merge svn://192.168.239.128/repos_uboot_new/trunk@4 svn://192.168.239.128/repos_uboot_new/branches/dev2@7 /uboot_new_linux_dir2/trunk --ignore-ancestry --dry-run
svn commit -m "merge version"
merge分 2步走
merge dev2分支 下的r7版本到trunk,并保存 到/uboot_new_linux_dir2/trunk
然后commit就可以啦
比较不同
======svn diff=====================================================================================
svn diff svn://192.168.239.128/repos_uboot_new/branches/dev@9 svn://192.168.239.128/repos_uboot_new/trunk@4 --summarize
======svn list=====================================================
svn list svn://127.0.0.1/repos_uboot_new/branches
添加文件/目录
======svn add =============================
mkdir trunk
svn add trunk
svn commit -m "add trunk dir"
svn log很常用啦
======================
svn备份常用命令
1、完全备份和增量备份svn。
svnadmin dump /svn/project/www > full.svn.bak #完全备份/svn/project/www这个版本库,并另存为full.svn.bak
svnadmin dump /svn/project/www -r 8 --incremental > svn.bak.1 #以增量把版本库8转存到svn.bak.1
参数介绍:
-r [--revision] :指定版本ARG(或X:Y范围)
--incremental :以增量方式进行转存
--deltas :在转存输出中使用差异
-q [--quiet] :在标准错误输出不显示进度(仅错误)
2、dump备份还原。
svnadmin create /svn/project/test #创建一个新的版本库
svnadmin load /svn/project/test < full.svn.bak #现还原完全备份
svnadmin load /svn/project/test < svn.bak.1 #再还原增量备份的内容
3、svnadmin hotcopy /svn/project/www /root/backup.svn.www/ #热拷贝www这个版本库,可以直接拿来用