(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