SVN(Subversion)是一种版本控制系统,用于跟踪文件和目录的更改,便于多人协作开发。TortoiseSVN 是一个在 Windows 操作系统上运行的 SVN 客户端,它以外壳集成的形式存在,即在资源管理器的右键菜单中提供 SVN 功能。
1. **TortoiseSVN 安装与集成**
安装 TortoiseSVN 后,会在本地文件的右键菜单上添加三个主要选项:“SVN 更新”、“SVN 提交”和“TortoiseSVN”。通过这些菜单,用户可以进行各种 SVN 操作。TortoiseSVN 的操作通常是通过右键菜单进行的,无需单独启动应用程序。
2. **登录与访问 SVN 服务器**
用户可以通过浏览器访问 SVN 数据库,输入 SVN 服务器的 URL、用户名和密码。如果服务器允许,用户可以查看整个 SVN 数据库的目录结构。TortoiseSVN 的登陆信息通常在执行 SVN 命令时弹出,如果已保存登录记录,将不会显示登陆框。
3. **基本操作**
- **检出(Checkout)**:在本地创建一个新的空文件夹,然后使用 SVN 检出命令获取服务器上指定目录的最新版本文件。例如,如果需要 document 目录下的文件,检出地址应为 `http://10.78.13.228/svn/unm2000/document`。
- **配置文件修改**:在 `%APPDATA%\Subversion\config` 文件中,将 `enable-auto-props = yes` 并设置 `[auto-props]` 以自动设置文件的 `svn:needs-lock` 属性。
- **操作原则**:
- 注意文件和目录名的大小写,因为 SVN 是区分大小写的。
- 新增文件应设置 `needs-lock` 属性。
- 修改文件前,先通过 TSVN 获取文件锁,然后修改,最后提交。
- 不要在服务器端直接删除文件,而应使用 SVN 客户端的“删除”功能并提交。
- 禁止在文件被锁定时执行“偷取锁”操作。
4. **图标重载**
SVN 的图标重载功能可以直观地显示文件的状态,例如:
- Normal:文件处于正常状态。
- Readonly:文件被设置为需要锁。
- Added:本地新增的文件或文件夹。
- Modified:文件已被修改,但未提交。
- Deleted:文件已被本地删除或标记为忽略。
- Ignored:文件或文件夹不被版本控制。
- Non-versioned:文件或文件夹未受版本控制且未被忽略。
5. **文件属性**
SVN 文件和目录有附加属性,如 `svn:` 和 `tsvn:` 类型的属性。`svn:needs-lock` 属性设置后,文件在本地变为只读,修改前需要先获取锁。在技术开发部,采用的是锁定-修改-解锁的工作模式,即修改文件前先获取锁,完成后提交,文件会自动解锁。这与 VSS 的锁定-修改-解锁模式不同,因为 SVN 的新文件需要手动设置 `svn:needs-lock` 属性来启用此模式。
在协作开发环境中,SVN 和 TortoiseSVN 提供了一套有效的工具,帮助团队成员协同工作,确保代码的同步和一致性,同时避免冲突。正确理解和使用这些工具对于项目管理和版本控制至关重要。