1. 准备工作
在Linux系统上搭建SVN库需要先进行一些准备工作。
1.1 安装SVN
首先,我们需要在Linux系统上安装SVN。打开终端,输入以下命令:
sudo apt-get install subversion
根据提示输入密码,等待安装完毕。
安装SVN后,我们可以使用以下命令检查安装的版本:
svn --version
显示SVN版本信息证明安装成功。
1.2 创建SVN库目录
在搭建SVN库之前,我们需要创建一个目录来存放SVN库的文件。
在终端中输入以下命令来创建目录:
mkdir /svn
创建成功后,我们可以使用以下命令来查看目录是否已创建:
ls /svn
如果目录已成功创建,会显示目录名称。
2. 创建SVN库
在创建SVN库之前,我们需要确定要创建的库的名称。
2.1 创建空的SVN库
在终端中输入以下命令创建一个空的SVN库:
svnadmin create /svn/myrepo
这将在之前创建的/svn目录下创建名为myrepo的SVN库。
创建成功后,我们可以使用以下命令来查看库目录下的文件:
ls /svn/myrepo
如果成功创建,将显示一系列文件和目录。
2.2 设置权限
为了保证SVN库的安全性,在设置权限之前,我们需要确定SVN库的所属用户和组。
在终端中输入以下命令来设置所属用户和组:
sudo chown -R www-data:www-data /svn/myrepo
这将将myrepo目录的所属用户和组设置为www-data。
接下来,我们需要设置目录的权限。在终端中输入以下命令:
sudo chmod -R 755 /svn/myrepo
这将设置myrepo目录的权限为755,确保只有所有者有读写权限,其他用户只有读权限。
3. 配置Apache服务器
SVN需要与Apache服务器配合使用。我们需要对Apache进行一些配置。
3.1 安装Apache
在终端中输入以下命令来安装Apache:
sudo apt-get install apache2
安装完成后,我们可以使用以下命令检查Apache的状态:
sudo service apache2 status
显示Apache正在运行的信息证明安装成功。
3.2 配置Apache
接下来,我们需要进行一些配置来让Apache支持SVN。
在终端中输入以下命令编辑Apache的SVN配置文件:
sudo nano /etc/apache2/mods-enabled/dav_svn.conf
找到以下两行:
#
# DAV svn
将其修改为:
DAV svn
接下来,将以下行:
# AuthType Basic
# AuthName "Subversion Repository"
# AuthUserFile /etc/apache2/dav_svn.passwd
# Require valid-user
修改为:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
这将启用SVN的身份验证功能。
3.3 重启Apache
在终端中输入以下命令来重启Apache:
sudo service apache2 restart
重启后,Apache将开始支持SVN。
4. 创建SVN用户
为了让用户可以访问SVN库,我们需要创建SVN用户。
4.1 创建密码文件
在终端中输入以下命令来创建密码文件:
sudo htpasswd -cm /etc/apache2/dav_svn.passwd username
将上面的"username"替换为您要创建的用户名。按照提示输入密码,并确认。
4.2 设置用户权限
为了指定用户对SVN库的访问权限,我们需要在SVN库所在的目录中的conf子目录下创建一个名为svnserve.conf的文件。
在终端中输入以下命令来创建文件:
sudo nano /svn/myrepo/conf/svnserve.conf
找到以下行:
#password-db = passwd
将其修改为:
password-db = /etc/apache2/dav_svn.passwd
保存文件并关闭编辑器。
5. 创建SVN库结构
现在,我们可以创建SVN库的结构。
首先,我们需要使用以下命令创建一个名为trunk的主分支:
svn mkdir file:///svn/myrepo/trunk -m "Create trunk directory"
然后,我们可以创建一个名为branches的分支目录:
svn mkdir file:///svn/myrepo/branches -m "Create branches directory"
最后,我们创建一个名为tags的标签目录:
svn mkdir file:///svn/myrepo/tags -m "Create tags directory"
完成后,我们可以使用以下命令来查看库结构:
svn list file:///svn/myrepo
显示trunk、branches和tags目录的信息证明创建成功。
6. 导入代码
现在,我们可以将代码导入SVN库。
首先,我们需要将代码复制到本机的SVN库目录下(/svn/myrepo/)。
然后,在终端中使用以下命令来导入代码:
svn import /svn/myrepo/file:///svn/myrepo/trunk -m "Initial import"
这会将代码导入到SVN库的主分支(trunk)。
导入完成后,我们可以使用以下命令来查看导入的文件:
svn list file:///svn/myrepo/trunk
如果成功导入,将显示导入的文件信息。
7. 使用SVN
现在,SVN库已经搭建完成,我们可以开始使用SVN进行版本控制。
7.1 检出代码
在终端中使用以下命令来检出代码:
svn checkout file:///svn/myrepo/trunk /path/to/local/directory
将上面的"/path/to/local/directory"替换为您希望将代码检出到的本地目录。
如果检出成功,代码将被复制到本地目录。
7.2 提交代码
在对代码进行修改后,我们可以使用以下命令来提交代码更改:
svn commit -m "Commit message"
"Commit message"是对本次提交的简要描述。
提交完成后,代码更改将被同步到SVN库。
7.3 更新代码
如果其他用户对SVN库中的代码进行了更改,我们可以使用以下命令来更新本地代码:
svn update
这将获取SVN库中最新的代码并将其应用到本地目录。
7.4 查看代码历史
我们可以使用以下命令来查看代码的提交历史:
svn log
这将显示SVN库中的所有提交记录。
至此,我们完成了在Linux下搭建SVN库的指南。希望本文对您有所帮助!