SVN 的核心概念是 仓库,它是一个中央存储库,存放着项目的所有文件和版本历史,我们通常说的“创建项目”,实际上是在 SVN 仓库中创建一个新的项目目录。

核心概念
- 仓库: 集中存放所有项目代码和历史的中央服务器。
- 导入: 将本地的一个文件夹(项目代码)首次上传到 SVN 仓库的过程,这是创建项目的关键步骤。
- 检出: 从仓库中下载一个项目副本到本地电脑进行开发。
使用命令行 (推荐用于服务器端或自动化)
这是最标准、最灵活的方式,通常由管理员在 SVN 服务器上执行。
第 1 步:在服务器上创建空的 SVN 仓库
这一步是在 SVN 服务器上创建一个全新的、空的仓库,假设你的 SVN 仓库根目录是 /var/svn。
# 1. 创建仓库目录 (创建一个名为 "my_new_project" 的项目) svnadmin create /var/svn/my_new_project # 2. (可选但推荐) 设置仓库的访问权限 # 你需要编辑仓库 conf 目录下的三个文件: # - svnserve.conf: 主配置文件,定义认证方式和权限文件 # - passwd: 用户名和密码列表 # - authz: 定义用户和用户组对不同目录的读写权限 # 编辑 /var/svn/my_new_project/conf/svnserve.conf # 取消注释并修改以下行: [general] anon-access = none # 匿名用户无任何权限 auth-access = write # 认证用户有写权限 password-db = passwd # 密码文件路径 authz-db = authz # 权限文件路径 # 编辑 /var/svn/my_new_project/conf/passwd,添加用户 # 格式:用户名 = 密码 [users] harry = harry_secret sally = sally_secret # 编辑 /var/svn/my_new_project/conf/authz,分配权限 # 格式:[仓库路径:/项目路径] [/] harry = rw sally = r
服务器上已经有了一个名为 my_new_project 的空仓库。
第 2 步:在本地准备项目代码
在你的开发机器上,创建一个包含项目初始代码的文件夹。

# 1. 创建一个本地项目文件夹 mkdir -p ~/local_work/my_new_project cd ~/local_work/my_new_project # 2. 在其中放入你的项目文件 # 创建一个 README.md 文件 echo "# My New Project" > README.md echo "echo 'Hello, SVN!'" > build.sh chmod +x build.sh
第 3 步:将本地项目导入到 SVN 仓库
这是“创建项目”的最终一步,使用 svn import 命令将本地文件夹的内容上传到仓库。
# svn import 本地路径 SVN仓库_URL -m "提交日志"
# 注意:URL 的末尾通常没有斜杠,否则会包含本地文件夹名
svn import ~/local_work/my_new_project \
svn://your_server_ip/svn/my_new_project \
-m "Initial project import"
svn://your_server_ip/svn/my_new_project: 这是你的 SVN 仓库地址。-m "Initial project import": 是这次导入的提交日志,非常重要,必须提供。
执行成功后,你本地 ~/local_work/my_new_project 文件夹里的内容就被上传到了服务器的 my_new_project 仓库中。你的本地文件夹仍然是一个普通文件夹,它还不是 SVN 工作副本。
第 4 步:从仓库检出项目到本地
你可以从仓库下载一个“干净”的工作副本进行日常开发了。
# 创建一个新的目录用于检出 mkdir ~/development cd ~/development # svn checkout SVN仓库_URL 本地工作副本目录名 svn checkout svn://your_server_ip/svn/my_new_project my_new_project_wc # 进入工作副本目录 cd my_new_project_wc # 你会看到 .svn 隐藏文件夹,这表明它是一个 SVN 工作副本 ls -la
你就可以在这个 my_new_project_wc 目录里进行 svn add, svn commit, svn update 等所有日常的版本控制操作了。

使用图形化客户端 (如 TortoiseSVN)
如果你使用 Windows,TortoiseSVN 是最流行的客户端,图形界面非常直观。
第 1 步:创建仓库 (通常由管理员完成)
管理员需要使用 TortoiseSVN 的 Repo-browser 或命令行 svnadmin 在服务器上创建一个空的仓库,并配置好权限,与命令行方法第1步相同。
第 2 步:准备项目代码
在你的电脑上,创建一个包含项目初始代码的文件夹(D:\MyNewProject)。
第 3 步:导入项目
- 在
D:\MyNewProject文件夹上 右键。 - 选择 TortoiseSVN -> Import... (导入)。
- 在弹出的窗口中:
- To URL (URL): 输入你的 SVN 仓库地址,
svn://your_server_ip/svn/my_new_project。 - Message (日志信息): 输入提交日志,"Initial project import"。
- To URL (URL): 输入你的 SVN 仓库地址,
- 点击 OK。
- 系统会提示你输入用户名和密码(如果你在仓库中设置了认证)。
- 导入成功后,你的本地文件夹
D:\MyNewProject仍然不是工作副本。
第 4 步:检出项目
- 在你的电脑上选择一个你希望存放代码的空位置(
D:\Dev),右键。 - 选择 TortoiseSVN -> Checkout... (检出)。
- 在弹出的窗口中:
- URL of repository (仓库URL): 输入
svn://your_server_ip/svn/my_new_project。 - Checkout directory (检出目录): 输入
D:\Dev\MyNewProject。 - Revision (版本): 选择
HEAD(最新版本)。
- URL of repository (仓库URL): 输入
- 点击 OK。
- 输入用户名和密码。
- 完成后,
D:\Dev\MyNewProject就是一个标准的 SVN 工作副本了,里面会有一个绿色的对勾标记。
总结与关键区别
| 步骤 | 命令行 | TortoiseSVN (图形界面) |
|---|---|---|
| 创建仓库 | svnadmin create /path/to/repo (服务器端) |
由管理员完成,通常用命令行或服务器管理工具。 |
| 准备代码 | mkdir project_dir; echo "..." > file |
在本地创建文件夹并放入文件。 |
| 导入项目 | svn import local_dir svn://url/repo -m "log" |
右键文件夹 -> TortoiseSVN -> Import... |
| 检出项目 | svn checkout svn://url/repo local_work_copy |
右键目标位置 -> TortoiseSVN -> Checkout... |
核心要点:
- 创建项目 = 创建仓库 + 导入初始代码。
- 导入 是一个一次性操作,用于将现有代码放入仓库。
- 检出 是日常工作的开始,它创建一个与仓库同步的本地副本。
- 导入完成后,原始的本地文件夹并不是工作副本,你需要从仓库重新检出一个新的副本才能开始使用
commit等命令。
