(1): 创建svn仓库路径
mkdir  -p  /opt/svn/project1
svnadmin  create  /data/svn/project1



注意:为了规范:一般在项目目录下再创建:


//先创建好目录 dev 和pub可以放连个目录下,导入同一个源也可以 源就是原始代码 (svn import /home/game/park_dev/)


mkdir  -p   /opt/svn/projec1/xxx_dev  开发


mkdir  -p   /opt/svn/projec1/xxx_pub 发布



接下来 我用xxx_server 代表项目project1的名字

(2):导入项目源代码

# svn import [源路径][目标版本库路径] -m [日志信息]


//例如:


   

ps:源代码要是别的项目拷贝过来的,请删除原来的.svn文件,,不然你会悲剧的 


    svn import /home/game/xxx_dev/    file:///data/svn/xxx_server/xxx_dev  -m "Initial import"



(3):修改配置文件:这就是给指定的仓库添加用户权限了,多人开发的时候很需要的,

防止策划乱传文件,哈哈哈,都是策划的错




    a   /opt/svn/project1/conf/svnserve.conf


          [general]


          anon-access = none


          auth-access=write


          password-db=passwd


          auth-db=authz




    b  /opt/svn/project1/conf/passwd


            xxx=****             //  用户名=密码

    c  anon-access = read
auth-access = write

authz-db = authzpassword-db = passwd

realm = xxx_server


(4):启动svn服务



    svnserve   -d   -r    /opt/svn/     


    注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如


   /opt/svn/project1    /opt/svn/project2   ---------->   /opt/svn/ 










//安装脚本----带创建仓库的,不懂的可以留言给我我帮你解决




#!/bin/bash



if


        rpm -qa | grep subversion




then


        echo "1 svn已经安装了"


        exit


else


        echo "1 未检测到svn安装, 下载subversion"


        yum install subversion -y


fi




if [[ -d "/data/svn" ]]; then


        echo "2.1 /data/svn/已经创建"


else


        mkdir /data/svn/


        echo "2.1 /data/svn/创建成功"


fi




echo "2.2:配置:svnserver添加数据仓库地址"


svnserve -d -r /data/svn/




echo "3.建立版本库"


svnadmin create /data/svn/tech_manage/




echo "4.加入到开机启动项"  这样就方便使用了,开机的时候就直接启动了


echo svnserve -d -r /data/svn/ >> /etc/rc.local




//基础的操作一大堆,我就不一一举例了用别人写好的吧

Subversion命令汇总


svn 命令共同的选项

--targets list 读取list并将其解释为一个将要操作的参数列表

--non-recurisive, –N 只操作单个目录,不处理子目录

--verbose, –v 打印额外的信息

--quiet, –q 打印的信息尽可能少

--username,  name 指定在连接授权时使用的用户名

--password, pawd 指定要使用的密码

--no-auth-cache 不要缓存身份令牌

--non-interactive 不要提示输入额外的信息

--config-dir  dir  从dir读取用户配置

--editor-cm cmd 使用cmd作为日志消息的编辑器

svn add

把文件及目录的名称添加给版本控制系统。他们会在下次提交时被添加到项目仓库

svn add path

--auto-props 在添加他们的时候自动设置文件的属性

--no-auto-props 禁用自动属性设置

svn blame

显示文件每行的版本及作者信息

--revision, –r rev 如果指定的rev是单个版本,显示该版本作者信息。如果是范围rev1:rev2, 显示rev2版本作者的信息,但只检查版本到rev1.

svn cat

输出指定文件或者URL的内容

svn cat target…

--revision, –r rev

svn checkout

从项目仓库牵出一个工作拷贝

svn checkout url…path

如果没有指定path,签出的本地目录名使用URL的base name.

svn cleanup

清理工作拷贝,移除锁,完成未完成的操作,等等。

svn cleanup path…

svn commit path

把改动从你的工作拷贝发送到项目仓库

--message, –m msg 使用msg作为提交日志消息。

--file, –F file 使用file的内容作为提交日志消息。

--no-unlock 不要在提交的时候释放锁。

svn copy

在工作拷贝或者项目仓库中制造包括历史在内的复本

svn copy src dest

src和dest可以是工作拷贝(WC)的路径或者URL.

src dest 效果……

WC WC 拷贝并添加

WC URL 立即提交WC的拷贝到URL

URL WC 签出URL到WC, 添加

URL URL 完全服务器端拷贝;用于制作分支和打标签

--revision, –r rev要拷贝的src的版本。只在src是项目仓库的URL时才有意义。

svn delete target

从项目仓库删除文件或者目录。如果target是工作拷贝中的文件或者目录,它被从工作拷贝中移除并且预计在下次提交时删除掉。如果target是项目仓库URL,通过一次立即的提交从项目仓库中删除。

--message, –m msg

--file, –F file

svn diff

显示两个路径之间的差异

svn diff –r rev1:rev2 target…

svn diff oldurl newurl

svn export

创建一个无版本记录的拷贝.

svn export –r rev URL path

从项目仓库的指定URL导出一个干净的目录树到path中,如果指定了rev参数,导出rev版本的,否则到处最新版本。

svn import

提交一个无版本的文件或者树到项目仓库

svn import path URL

svn info

显示文件或者目录的信息。

svn list

列出项目仓库中的目录条数。

svn lock

锁住文件让其它用户不能提交改动。

svn lock target

--message, –m msg 使用msg作为锁信息消息

--force 强制加锁成功,通过从其他用户或者工作拷贝把锁给偷过来。

svn log

显示一些版本或者文件的日志消息.

--stop-on-copy 在遍历历史的时候不要穿越拷贝(对于查找分支的起点很有用)

svn merge

把两个来源的差异应用给工作拷贝路径。

svn merge –r rev1:rev2  source wcpath

svn mkdir

创建版本控制下的新目录

svn mkdir target

svn move src dest

移动或者重命名工作拷贝或者项目仓库中文件或者目录。

--revision, –r rev使用版本rev作为源来执行这次移动。

svn propdel

删除文件或者目录的属性

svn propdel propname path…

svn propedit

编辑文件或者目录的属性

svn propedit propname path…

svn propget

打印文件或者目录的属性值

svn propget propname path…

--strict 禁用额外的换行和其它的美化措施(在把二进制属性重定向到文件时会有用处)

svn proplist

列出文件或者目录的所有属性

--verbose

--recursive

--revision, –r rev 列出path在版本rev定义的属性

svn propset(pset, ps)

svn propset propname propval path…

--file, –F file 读取file的内容,使用它作为属性值.

--recursive

--encoding  enc 把值作为用enc编码的字符集

svn resolved

移除工作拷贝文件或者目录的冲突状态

--recursive

svn revert

恢复工作拷贝的文件(撤销最新的本地修改)

svn revert path 这个命令不需要网络连接

--recursive

svn status

打印工作拷贝中文件或者目录的状态

svn status path…

--show-updates, –u 联系服务器显示更新信息

--no-ignore 忽视默认设置和svn:ignore属性设置的忽略项

--non-recursive, –N

--verbose, –v

svn switch

把工作拷贝转向到其他的URL

svn switch URL path

更新工作拷贝让其使用项目仓库的新URL.这个行为类似svn update 而且是一种把工作拷贝转向到同一项目仓库中的分支或者标签的办法。

--revision, –r rev 转向到版本rev

--non-recursive, –N

--diff3-cm 使用cmd作为合并命令

svn unlock

解开工作拷贝文件或者项目仓库URL的锁。

svn unlock target…

--force 砸坏现有对target的锁,甚至它不是被当前工作拷贝所拥有的。

svn update

把改动从项目仓库带到工作拷贝来。

svn update path…

--revision, –r rev 更新到版本rev

--non-recrusive, –N

--diff3-cmd