subversion入门 subversion安装与配置

发布时间:2020-12-19编辑:脚本学堂
本文介绍下subversion的入门教程,分享下subversion的安装与配置方法,有需要的朋友参考下。

Subversion是一个非常优秀的版本控制系统,它能够帮助你很好得管理您网站和软件的代码,可以帮助你回到早期版本,也可以在开发团队中共享不同开发者的代码。

安装subversion
本系列教程是以Debian和ubuntu操作系统为讲的。

开始安装subversion。
 

复制代码 代码示例:
sudo aptitude install subversion
或者
sudo apt-get install subversion
 

这就是subversion的安装方法。

创建仓库(repository)
让创建一个库。
要创建一个文件夹命名为“repository”在我的/home/subversion目录。
当然可以为这个库的文件夹起个你喜欢的名称并放在你喜欢的地方:
 

复制代码 代码示例:
cd ~
sudo mkdir repository

在repository的文件里面应该没有任何东西:
 

复制代码 代码示例:
ls repository
...

开始创建版本控制的框架结构(skeleton structure)去控制这个库(repository):
 

复制代码 代码示例:
sudo svnadmin create /home/demo/repository

将会看到:
 

复制代码 代码示例:
ls repository/
conf/ dav/ db/ format hooks/ locks/ README.txt
 

不要修改仓库(repository)的文件和文件夹。将会学习如何添加文件和工程项目。
开始学习添加第一个项目
开始导入“一些东西”到的版本控制仓库,“一些东西”是必须存在的。
作为练习,你可以导入你的任何东西。版本控制是用来管理项目的,从小的网站到大的系统工程。

首先,为第一个项目创建一个临时的文件夹,把这个文件夹叫’project1′:
 

复制代码 代码示例:
sudo mkdir project1

在这个文件夹‘project1’创建一个文本文件:
 

复制代码 代码示例:
sudo touch project1/hello.txt

开始把工程(project1)导入(import)到仓库(repository)
建议在版本控制的工程的文件命名:branches, tags and trunk。在这里我主要是介绍trunk(主仓库-存放开发代码的文件夹)。

导入(import)工程(project1),输入下面命令:
 

复制代码 代码示例:
sudo svn import /home/demo/project1/
file:///home/demo/repository/project1/trunk -m "导入project1到主仓库"

注意,这个命令的顺序,工程导入的路径和工程的访问路径,还有就是‘-m’是信息的缩写,强烈建议每当你导入文件的时候,通过’-m’做下你的导入描述,方便以后版本多的时候易于记忆,找问题。
此命令的输出结果是:
 

复制代码 代码示例:
Adding /home/demo/project1/hello.txt
Committed revision 1.

删除project1
让删除project1,因为不再需要它了,已经把它存放到的仓库(repository)了。
rm -rf project1/
检出(Check out)一个仓库(repository)的项目project1
需要检出(check out)刚才导入的project1(这个就是版本1 version1),当project1成功检出后,可以在这个projects上面进行修改、添加文件等等操作,可以通过把修改过的内容提交(svn commit),这样版本version2就产生了。

这里假设subversion服务器和project1是在同一台电脑上面的(以后的系列教程将会介绍在不同的电脑上的情况),创建一个叫”work”文件夹并检出(checkout)project1:
 

复制代码 代码示例:
mkdir work
cd work
svn co file:///home/demo/repository/project1/trunk project1
 

输出结果:
A project1/hello.txt
checked out revision 1.
查看检出(checkout)的工程(project1):
 

复制代码 代码示例:
cd project1
ls
...
hello.txt
 

看起来一样吧?这个检出(checkout)的project1和你原来的那个project1一模一样的。

添加(add)修改的
让对project1进行一些小改动并添加一个新的文件夹和文件,记住现在正在project1的文件下工作。
 

复制代码 代码示例:
sudo mkdir goodbye
sudo touch goodbye/goodbye.txt

首先要把这些修改的内容添加到版本库的project1里面,这里并不是提交到新的一个版本,而是把这些新添加的文件夹和文件告知版本控制系统,然后再执行commit命令提交:
 

复制代码 代码示例:
sudo svn add goodbye
输出结果:
A goodbye
A goodbye/goodbye.txt

提交(commit)修改的
让project1发生重大改变,由版本1(version1)到版本2(version2),执行下面命令:
 

复制代码 代码示例:
sudo svn commit -m "添加 goodbye section 在 milestone 1"

输出结果:
 

<code style="padding: 5px; color: white; background: black;">Adding goodbye</code>
<code style="padding: 5px; color: white; background: black;">Adding goodbye/goodbye.txt</code>
<code style="padding: 5px; color: white; background: black;">Transmitting file data .</code>
<code style="padding: 5px; color: white; background: black;">Committed revision 2.</code>

删除(Deleting) 文件
如果你想删除文件或文件夹,请执行下面命令:
 

复制代码 代码示例:
sudo svn delete goodbye
输出结果:
D goodbye/goodbye.txt
D goodbye
 

记住这个时候还没有让你的代码库发生变化,还需要执行下commit才会删除goodbye文件夹。

提交(commit)删除
真正的删除,并让代码库发生变化,产生一个新的版本:
 

复制代码 代码示例:
svn commit -m "Deleted goodbye section"
输出的结果:
Deleting goodbye
Committed revision 3.
 

到目前为止,project1已经到版本3(version3)了。

版本修订(Revisions)
版本控制还有一个非常好的功能,就是可以根据你的要求可以检出不同版本的project1代码。现在是在版本3(version3),但是我又想检出版本2(version2)。

这会只需要在检出project1添加个’r‘,选择需要的版本号即可:
 

复制代码 代码示例:
cd ~/work
mkdir project1-older
svn co -r 2 file:///home/demo/repository/project1/trunk project1-older
 

这个就能够检出project1的版本2在project1-older的文件夹。