用svn已经很久了,但我所在的技术环境比较简单,基本我一个人使用svn。最近进一步学习了一下。以前对分支、标记知道,但不理解,也没时间管他,现在也算了解清楚了。
推荐的svn目录结构:
trunk主干
branches分支
tags标记
这些规则对于svn是没有意义的,只是一个规约。开发人员遵循即可。
分支就是根据项目需要,分理处一个特殊功能的代码,进行持续开发。
标记是一个快照,复制出来就不能再提交了。但这也是一个规约,强行提交还是可以的。
用tortoiseSVN的话在tags上进行提交会谈出警告。
主干就是正常开发代码分支,当然项目大了,在分支和标记外,还可以有很多很多的小的开发分支,基本功能实现差不多了,再合并到trunk。各个小分支可以给各个开发小组使用。
svn服务器内部对分支的实现是类似文件系统软连接的形式。所以不占什么空间。
对于分支所提供的命令也就只有copy和merge两个。
合并操作是在本地工作文件夹进行的。
tortoiseSVN的版本图可以较好的显示版本关系,branches会伸出一条分支,而tags则只会用黄色方块标记在主分支上。再次声明一下tags和branches在服务端是一样处理的。
关于权限
ssh+svn的方式权限管理是有些问题的。用户能够登录ssh,就能访问svn文件夹,那么无法对其进行基于代码路径的控制
唯有使用apache (ssl) + svn是功能最全的:
安装apache
安装svn,打开dav等参数,会将so文件放入/usr/local/libexec/
httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule ssl_module modules/mod_ssl.so
<Location /svn>
DAV svn
SVNPath /usr/local/svn
AuthType Basic
AuthName "Feloo Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile /usr/local/svn/conf/authz
</Location>
ssl配置(略)
密码:
htpasswd -cm /etc/svn-auth-file zh
配置authz,和svn+ssh一样
哇塞,好帅啊:
https://www.zeeeitch.cn/svn
分享到:
相关推荐
搭建SVN项目结构进行实操说明,用于解决多人协同开发时的开发的方案,仅供参考
五、SVN进阶操作 - 创建分支:`svn copy URL_to/trunk URL_to/branch` - 合并分支:`svn merge URL_to/branch` - 查看日志:`svn log` - 恢复删除的文件:`svn revert` 通过以上介绍,你应该对SVN有了基本了解。...
五、SVN进阶技巧 1. 使用标签(Tag):创建项目特定版本的快照,常用于发布里程碑版本。 2. 分支策略:根据项目需求制定合适的分支策略,如特性分支、维护分支等。 3. 定期清理(Cleanup):清理工作副本,解决文件...
【SVN进阶特性】 1. **标签(Tag)**: 对项目的重要状态打上标签,类似于快照,不建议在标签上直接修改。 2. **hooks**: 仓库中的钩子脚本,可以在特定操作前或后执行自动化任务,如邮件通知、权限检查等。 3. **外部...
SVN(Subversion)是一种版本控制系统,它用于管理和追踪计算机文件的历史变更。SVN允许多个用户协作开发同...无论你是初次接触版本控制的新手,还是需要对SVN基础知识进行巩固的进阶用户,SVN都是一个不可多得的工具。
3. 进阶配置 - 创建SVN仓库:在安装完成后,需要在服务器上创建一个或多个SVN仓库,这些仓库将存储版本控制的代码或者其他项目文件。仓库可以通过`svnadmin create`命令创建,指定仓库的物理位置。 - 用户和权限...
此外,了解如何处理冲突、创建和管理分支也是进阶使用的一部分。 总的来说,SVN 最新版中文语言包的提供,极大地降低了中国开发者使用 SVN 的门槛,提高了工作效率,促进了团队间的沟通与协作。无论是个人开发者...
5. **高级特性**:如忽略文件模式、锁定/解锁、分支和合并策略、SVN外部项等进阶功能的使用。 6. **问题解决**:常见错误和警告的处理方法,以及如何调试和优化SVN的性能。 7. **命令行工具**:虽然TortoiseSVN主要...
### Eclipse下SVN使用操作全解析 在Java开发领域,特别是在大中型项目中,团队协作几乎是不可避免的。为了确保代码的一致性与版本管理,...无论是初学者还是有经验的开发者,掌握SVN的基础与进阶操作都是十分必要的。
### SVN 常见命令详解 #### 一、概述 Subversion(简称SVN)是一种分布式版本控制系统,广泛应用于软件开发和其他需要版本控制的场景...本文列举了SVN的一些基础和进阶命令,旨在帮助用户快速上手并有效管理项目版本。
进阶配置 - **备份与恢复**:定期备份SVN仓库,以防数据丢失。VisualSVN Server提供了备份工具,可以设置计划任务自动备份。 - **分支与合并**:利用SVN的分支和合并功能,支持多线程开发,避免代码冲突。 - **...
### SVN基本指令详解 #### 目录架构与用途解析 Subversion(SVN)作为一款广泛应用的版本控制系统,其目录结构通常...以上是对SVN基本指令及部分进阶操作的详细解析,掌握了这些,你就可以有效地管理和协作代码库了。
5. 进阶话题,如网络配置、性能优化和故障排查。 通过这份教程,你应该能够成功安装并配置SVN,掌握基本的客户端操作,并理解SVN如何助力团队协作。结合视频教程和书本资源,你可以进一步提升SVN的使用技巧,提升...
进阶配置 - 邮件通知:可以配置SVN触发post-commit钩子,自动发送邮件通知关于提交的信息。 - 权限管理:更精细地控制不同用户或组对仓库的读写权限。 - 多仓库配置:在同一Apache实例下配置多个SVN仓库。 - 通过...
**进阶话题:** 1. **权限管理**:Subversion支持基于路径的权限控制,可以通过修改`authz`文件实现。 2. **备份与恢复**:定期备份仓库,以防数据丢失。可以使用`svnadmin dump`和`svnadmin load`命令。 3. **SSL...
它们是初学者学习和进阶者查阅的重要参考资料,涵盖了从基础操作到高级特性的全方位指导。通过阅读这些文档,你可以更深入地理解SVN的工作原理,提高协同开发的效率,更好地管理和控制项目版本。 在实际工作中,...
### 进阶使用 1. **分支管理**: 学习如何创建和合并分支,以便进行并行开发。 2. **忽略文件**: 设置忽略列表,避免不重要的文件被版本控制。 3. **钩子脚本**: 利用SVN的钩子脚本功能,自动化执行提交前后的任务,...
#### 五、进阶操作 - **分支(Branch)**: 创建一个独立的工作线,用于进行特性开发或修复bug等。 - **合并(Merge)**: 将分支上的更改合并回主干或其他分支。 - **标记(Tag)**: 对某一版本的快照进行标记,方便...
进阶话题** - **钩子脚本(Hooks)**:自动执行服务器端任务,如提交前检查、自动构建等。 - **分支和合并策略**:制定有效的分支管理策略以优化团队协作。 - **备份与恢复**:定期备份版本库,了解如何在灾难...