今天到新公司第一天上班,就要先架设一个SVN服务器。服务器是今天上午到的,中午午休后就开始装SVN了。
先上apache官网下载SVN: http://subversion.apache.org/
点左边的Binary Packages
选择Windows版本。乍一看,好多Server & Client的SVN啊,我被Visual这个字眼吸引下了VisualSVN.
当然服务器和管理控制工具都装上
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img615.ph.126.net/cE4vmUeWLk0f5y29XsdV5g==/1935984889817899087.jpg)
这里可以修改代码库的保存位置,我的是"E:\Repositories\".
也可以修改访问代码库的方式http或https,我选了http,没有选https,后者慢一些,但安全性更好。
最下面是选择用户认证是使用windows用户还是Subversion自己的认证。我选了后者。
安装完后的界面
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img115.ph.126.net/hzhcotHJQp6HHpcmlRXsnw==/679480593781243537.jpg)
开发组,管理组,测试组,等等
第二步、当然是创建用户
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img839.ph.126.net/E1sw6C9DpYXnJ3-a25PXkQ==/1792714126672156288.jpg)
第二步、当然是创建用户
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img20.ph.126.net/IZenDagFWOSmrI683sQU4Q==/3168000862880518785.jpg)
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img.ph.126.net/Yz4edbcsZZv5zDfb5bEJ4A==/927741523238941603.jpg)
最后是创建代码库:在Repositories上右键-->Create New Repository-->创建第一个代码仓库
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img617.ph.126.net/rsvZdqxgW_e8VSHPiJVsqQ==/1660139412641069021.jpg)
这里我使用的是只创建一个代码库repos,在这个代码库下面再创建多个项目的文件夹,对第每个项目文件夹进行权限控制。
![VisualSVN一windows平台快速搭建SVN服务器 - windows9834 - 伍哥的博客](http://img39.ph.126.net/4_ETng0z8yhhB_7UQpGUmg==/3136194190512407039.jpg)
这里在代码库repos下创建了三个文件夹,代表三个项目,可以对根目录和子目录进行权限控制,比如Repositories和repos目录所有用户都只有读取权限,但没有写入的权限.
--------------------------------------------------------------------------------------------------------------------
上面是服务器端。客户端主要是安装TortoiseSVN
【途中遇到的问题】
1. 上传代码,用import时,会报
server sent unexpected return vaue(405 method not allowed) in response to MKCOL request for '/svn/test/!svn/txr/2-4/tags'
错误。
上网查了好多资料,最后是本地仓库中的文件与服务器上的仓库的文件中有重名的,就会报这个错误。一旦删除这些重名的文件和目录,再Import就没问题了。
如何不删除已重名文件,只上传新增文件或修改文件,正在查资料 ~~
2. 只修改了文件内部的内容,用import上传也会报405错误。这个也正在查资料。准备明天装好了Eclipse,再来试一下这个问题
【 创建分支使用步骤】 :
1、选择你要产生分支的文件,点击鼠标右键,选择[分支/标记...]
2、在[至URL(T)]输入框中将文件重命名为你的分支文件名,输入便于区分的日志信息,点击确认。
3、在SVN仓库中会复制一个你所指定的文件,文件名称就是你所命名的,但是在你的本地目录上看不到新建的分支文件名,要使你的文件更新作用到你的分支上,你必须选择文件,点击鼠标右键,选择[切换...],选择你重命名的文件,点击确定即可。这样你的本地文件就和分支文件关联上了,不要奇怪,这时本地目录上看到的文件名仍然为旧的文件名。
【经验小结】
1、如果操作的文件之前还未提交,而你又想把文件提交到新的分支上,记得一定要选择切换
2、SVN分支的管理实际上就是把不同的分支用不同的文件保存,因此你在取得新版本的时候会发现,不同分支的最新文件也会被获取下来。
创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。
对于branches、tags、trunk这三个目录,并不是subversion必需的,而是被总结的一种良好的团队开发习惯,其使用方法为:
1、开发者提交所有的新特性到主干。 每日的修改提交到/trunk:新特性,bug修正和其他。
2、这个主干被拷贝到“发布”分支。 当小组认为软件已经做好发布的准备(如,版本1.0)然后/trunk会被拷贝到/branches/1.0。
3、项目组继续并行工作,一个小组开始对分支进行严酷的测试,同时另一个小组在/trunk继续新的工作(如,准备2.0),如果一个bug在任何一个位置被发现,错误修正需要来回运送。然而这个过程有时候也会结束,例如分支已经为发布前的最终测试“停滞”了。
4、分支已经作了标签并且发布,当测试结束,/branches/1.0作为引用快照已经拷贝到/tags/1.0.0,这个标签被打包发布给客户。
5、分支多次维护。当继续在/trunk上为版本2.0工作,bug修正继续从/trunk运送到/branches/1.0,如果积累了足够的bug修正,管理部门决定发布1.0.1版本:拷贝/branches/1.0到/tags/1.0.1,标签被打包发布。
一般建立最初的repository时,就建好这三个目录,把所有代码放入/trunk中,如:要将project1目录下的代码导入repository,project1的结构就是:project1/branches,project1/tags,project1/trunk,project1/trunk/food.c,project1/trunk/egg.pc……,然后将project1目录导入repository,建立最初的资料库。然后export回project1,作为本地工作目录。
还有几个很有用的网址:
http://www.cnblogs.com/yuanyuan/archive/2011/01/28/1946903.html
http://blog.csdn.net/yangshun2008/article/details/5834023
主要参考文章(也转载了不少图片):http://blog.163.com/c_ear/blog/static/1858731572011614111848649/