1 下载安装包:
wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
2 解压:tar zxvf subversion-1.6.1.tar.gz
tar zxvf subversion-deps-1.6.1.tar.gz
3 配置:
cd subversion-1.6.1/
./configure --prefix=/usr/local/svn
在configure的时候发现错误:
configure: error: We require OpenSSL; try --with-openssl
解决方法:
下载openssl http://www.openssl.org/source/openssl-1.0.0e.tar.gz
使用命令wget 我下载的是openssl-1.0.0e.tar.gz解压之后依次运行以下命令
./configmake
make install
make clean
添加环境变量:
设置环境变量,在/etc/profile的PATH中增加如下内容:
PATH=/usr/local/ssl/bin:/sbin PATH:/usr/sbin
export PATH
回到svn的目录重新执行./configure --with-openssl=/root/openssl-1.0.0a
配置结束的时候会提示DB没装,可以忽略。
4 安装 make && make install 之后使用svn --version 查看
http://blog.51yip.com/server/901.html
转载:
------------------------------
Linux下SVN的使用:
1.svn的基本概念在这里就不详述了,下一代的CVS。
2.基本命令
(1)查找帮助 svn help
查看的帮助svn help import,在这里有详细的import命令的用法。
(2)svn import
将一个工程加入到svn中,eg
svn import testproject [url | file path]
注:testproject为工程目录路径
(3)svn co [url | path] : 从svn中checkout代码
(4)svn add foo
将foo添加入工程,若foo为目录,所有文件都将加入,若只想加入目录本身,svn add foo --non-recursive
svn delete foo
同add相反
svn move foo foo1 改名(类似linux的mv)
svn mkdir blort:创建一个目录
(5) 检查修改
svn status:检察你的修改了那些文件
svn diff:列出每个文件的修改明细
生成patchfile
svn diff > pathfile
同具体的版本的进行diff
svn diff -r 3
比较具体两个版本号的diff
svn diff -r 2:3
(6)更新代码及解决冲突
svn up 或者svn update
(7)提交修改
svn commit
(8) 检查历史
svn log
(9)浏览版本库
svn list
svn cat
3 版本管理
(1):svn的版本号是一类数字,也可以用特定的关键字表示版本
HEAD :版本最新的版本号
BASE:工作拷贝中一个条目的修订版本号
COMMITTED:项目最近修改的修订版本,与BASE相同或更早
PREV:commit之前的一个版本
比如你想看最新版本的修改
svn log -r HEAD,此时HEAD就会被解释为最新的版本号
(2)用时间查找版本号
svn log -r {2011-04-01}:{2011-04-22}
4 分支与合并
在一个工程目录里都有一个主干trunk目录和一个分支branches目录。
当一个项目很大,有多个人协作开发时,如果大家都在主干目录开发时容易造成混乱。当你一个人开发一个功能模块时,而开发周期可能比较长才能完成该功能,此时你不能将未完成的代码提交到主干,容易造成混乱。此时你可开一个分支,然后在你这个分支目录下工作。
(1)创建分支
svn copy [url] [url]
eg:svn copy http://svn.example.com/repos/calc/trunkhttp:://svn.example.com/repos/cal/branches/my-calc-branch
此时并不真得弄一个复本,只是一个链接,称为廉价复价。
这个时候你就可以从你的分支目录check out代码,并进行工作了
svn co http:://svn.example.com/repos/cal/branches/my-calc-branch.
(2)在分支上工作,
可以svn commit,此时并不影响主干。
(3)合并分支:
当你开发周期较长时,而此时主干代码已经发生更交,若时间过长,很可能你的支支与主干脱节,此时要将主干更新的代码合并到你的分支上。
svn merge url
例如:svn merge http://svn.example.com/repos/calc/trunk
将主干部分更新代码合并到你的分支上。