SVN将项目代码加入svn版本控制
将已有项目代码加入svn版本控制 - TortoiseSVN入门篇
Windows下SVN实用教程(以TortoiseSVN作为客户端(client))
翻译: Bravo Young
Next: 版本库的备份与存储
目录
- 导引
- 安装Subversion
- 安装TortoiseSVN
- 一步步地操作
- 步骤0. 设置全局忽略文件类型(此步骤为可选)
- 步骤1. 创建版本库Repository数据库
- 步骤2. 导入初始化 - 将你的项目导入(import)到数据库
- 步骤3. 创建工作目录 - 将你的项目与数据库连接起来
- 注意事项
- 参考资料
导引
到目前有很多关于Subversion (SVN) 和 TortoiseSVN的优秀书籍和教程。其中有部分在本文的参考资料区有列出。这篇教程无疑是站在巨人的肩膀上。它只覆盖了subversion (SVN)有限的一部分功能。 然而我希望此文能简化你对SVN的认识。
Subversion 是一种跨平台的开源版本控制系统 (http://subversion.tigris.org/). 它由版本数据库 (FSFS 或 BDB) 和一些命令行工具组成。目前有各种各样的SVN前端工具。
Subversion是为多人参与的项目专门设计的。 但它也可用于管理个人项目。
此文仅限于基于Windows的本地SVN环境(未单独配置远程的服务器)。
安装Subversion
打开Tigris.org网站的下载区,选择 开源代码软件工程工具Subversion (http://subversion.tigris.org/)。 Windows下最新的命令行版Subversion的安装文件和库都能在http://www.open.collab.net/downloads/subversion/下载到。下载安装包。SVN的默认安装目录为C:\Program Files\Subversion,当然你也可以修改磁盘路径。
现在你就可以开始使用SVN了。 如果你不习惯使用命令行工具,那你有必要安装一个你觉得合适的GUI前端。
安装TortoiseSVN
TortoiseSVN是一种Subversion客户端, Windows下它是一个命令行扩展, Windows资源管理器的一个插件(http://tortoisesvn.tigris.org/)。
最新版本可以在这下载到 http://tortoisesvn.sourceforge.net/downloads. 截止到2015.12.18的最新版本为:TortoiseSVN-1.9.2.26806-x64-svn-1.9.2.msi,如果需要切换语言,还可以在官网上下载相应语言包。
如果你电脑安装的Windows是32位的请选择32位的TortoiseSVN安装包,如果你电脑安装的Windows是x64的请选择x64的TortoiseSVN安装包。 下载区域的另一个文件TortoiseSVN-xxx-xxx.md5, 是安装时不需要的。它包含安装包的验证编号checksum,该验证编号能有效验证你是否下载到了合适的安装包 (且它没有损坏)。
你可以下载程序HashFile (http://www.shokhirev.com/nikolai/programs/progmisc.html) 来验证下载到的安装包的 MD5 哈希值 (checksum). 该验证编号必须和TortoiseSVN-xxx-xxx.md5文件上的信息完全一致。
这个安装也是直接的,同意默认设置即可。 唯一有趣的是ASP.NET hack. 默认情况下, SVN 使用 .svn 工作目录 (正如Linux下隐藏文件的命名风格)。
|
默认的, 不含有 ASP.Net hack |
含有给VS.Net web项目用的ASP.Net hack |
这使得 微软 ASP.Net 和 the hack 强制 SVN 去使用 _svn 作为工作目录。 如果你要使用Subversion对ASP.Net项目进行版本控制,请不要安装ASP.Net hack这一项。
注: 安装完TortoiseSVN后,你的Windows 资源管理器的主目录上会出现下图所示的新的按钮:
同时这些新增按钮也会添加到 (通过鼠标右键单击激活) 的上下文菜单中。
一步步地操作
目前有很多Subversion管理方式(参看手册). 现在我们主要考虑如下主要的情形:
- 你有一个现有的项目,你想将它加入版本控制。
- 这是你本地电脑上的个人项目。
在这种情形下你不应该会担心安全性和开启一个subversion服务器。
假设你的项目驻放在 C:\Projects\MyProject 路径下,它包含如下文件,或许还有些子文件夹:
步骤0 (可选). 设置全局忽略文件类型。 你可能不想跟踪临时文件 或 某些其他格式的文件。鼠标右击任意一个文件夹,然后打开TortoiseSVN的Settings:
当然你也可以鼠标右击文件, 打开Windows资源管理器主目录中的TortoiseSVN/Settings。
"General" -> "Subversion"处,你可以列出各种各样的文件类型,并使用空格隔开 (比如上图中示例的 *.bak *.~*). 注意到这个设置会对所有的工作目录有效。参看手册的5.25可了解更多的设置。
步骤1.创建版本库Repository。 在你的硬盘上为你的项目创建版本库的目录, 比如 C:\SVN. 在它里面创建一个空的子目录 \MyProject. 鼠标右键点击MyProject,并选择TortoiseSVN -> 在此创建版本库:
选择默认"原生文件系统"(FSFS)选项,并单击OK按钮:
这一步将 C:\SVN\MyProject 转化为含有如下内容的版本库:
到目前为止,它还是一个空的版本库,虽然Subversion已经创建了几个目录和文件 ! 我们需要将我们的项目文件中需要进行版本控制的文件填充进去并将它链接到我们的工作项目的目录。这些操作中可能会有几个和大家的习惯操作不一样、新的操作。
步骤2. 导入初始化。 在你的磁盘的某处 (比如 在 C:\tmp) 创建一个目录 (比如 \new) ,含有如下3个子目录:
C:\tmp\new\branches
C:\tmp\new\tags
C:\tmp\new\trunk
相应的文件结构为:
为了能用更多高级的项目管理功能,这个结构是必须的, 如果事先创建它也不会带来什么损害。 有些手册首推先导入此结构到版本库,然后向里面添加项目。我推荐使用如下的快捷方式:
- 备份你的项目文件 (比如 C:\Projects\MyProject), 以防万一.
- 删除所有不在全局忽略文件列表中的不需要进行版本控制的文件。
- 将 文件夹 \MyProject 中需要进行版本控制的内容 移动 进 trunk 子目录 (C:\tmp\new\trunk). 我们之后无论如何都将会需要一个空的文件夹。
- 将目录"new"导入Import到版本库 (选择"new",右键依次单击TortoiseSVN->Import):
URL 选择 file:///C:/SVN/Myproject (左斜杠"/" !):
"Import finished" 消息出现时,表明 C:\tmp\new\下的所有文件及子文件夹都已成功导入版本库 :
不需要担心"tmp\new" 消息, 只要验证哪些文件真正地导入到了版本库中即可。 书表右键单击 C:\SVN\MyProject ,然后打开 TortoiseSVN -> Repo-browser(版本库浏览器):
导航 至 file///C:/SVN/MyProject/trunk:
注意到全局忽略列表的文件都没被导入。 并且也没有 'C:\tmp\new' 目录的痕迹了, 'C:\tmp\new' 目录再没有什么用处了,可以删掉。
步骤3. 创建工作目录 - 将你的项目与数据库连接起来. 现在你已经成功增加了你对所有需要进行版本控制的文件添加了版本控制,并且当前的空目录 C:\Projects\MyProject (回忆一下, 我们之前已将改目录中的所有文件 移动 到了 目录 C:\tmp\new\trunk 中,对么?). "为了让你的双手移动文件的这个行为获得"赞美", 完全得到批准, 并且完全导入Subversion目录, 你需要从版本库中对它进行检出Checkout" . 书表右击 C:\Projects\MyProject 文件夹,并选择 "SVN Checkout"(SVN 检出):
设置 URL 为 file:///C:/SVN/MyProject/trunk ,并设置检出目录为: C:\Projects\MyProject
点击OK. 会提示"Checkout (检出) has finished":
"赞美" 以"对勾Check"小图标的形式反映在你的项目目录和里面所有的文件(和所有的子目录)上。
这样的含有"对勾Check"的目录被称为工作目录。现在你可以开始使用SVN管理你的项目版本了,也可以学到更多关于Subversion的知识。
几点注意事项
- 提交 (checking in) 你对版本库的变更: 右击鼠标,然后选择 "SVN Commit"(SVN提交)
- 添加文件到版本库。 这是一个两步的过程:
- 先右击选中的文件,然后右键依次选择 "TortoiseSVN"->"Add"
- 先右击选中的文件,然后右键依次选择 "TortoiseSVN"->"SVN Commit"
- 除了参考书籍 [4] 和 [5], 我也推荐 Charlie Calvert 的文章 [6].
- 如果你使用 Lavasoft Ad-Aware, 不要删除可以忽略的对象: 这一步会删除注册表中的图标设置 !
- 祝开开心心 使用Subversion版本控制 !
参考资料
- Subversion 主页: http://subversion.tigris.org/
- By Hans Dietrich, Version Control for the Standalone Programmer - Part 1. - Code Project中的优秀文章.
- SVN 1-Click setup.- Windows下用单个安装包搭建SVN环境:http://svn1clicksetup.tigris.org/
- Adam Pash, How to set up a personal home Subversion server (Windows下需另外配置Apache).
- RapidSVN, 一种用于SVN版本控制系统的跨平台GUI前端: http://rapidsvn.tigris.org/
- TortoiseSVN, 一种 Subversion 客户端, 作为windows的命令行扩展: http://tortoisesvn.tigris.org/
- Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Subversion手册: http://svnbook.red-bean.com/
- TortoiseSVN 用户手册, 来自 TortoiseSVN官方网站 https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/.
- Charlie Calvert. 在Subversion Trunk, Tags, Branches中创建版本库、和项目。 Codefez: (http://www.codefez.com/Home/tabid/36/ctl/ArticleView/mid/364/articleId/144/Default.aspx)
- Sebastian Rahtz.Subversion简介, 牛津大学: http://www.oucs.ox.ac.uk/oucsweb/svn.xml
- OUCS提供的一份Windows下TortoiseSVN的使用手册.http://www.oucs.ox.ac.uk/oucsweb/tortoisesvn.xml
- TortoiseSVN 教程. http://www.mind.ilstu.edu/research/complete_inactive/iris4/iris40/developers/svntutorial/
- SVN vs CVS. http://www.pushok.com/soft_svn_vscvs.php
- 更多 SVN 链接
也可参看: Buildix - 磁盘上的敏捷开发平台 http://buildix.thoughtworks.com/.
Buildix 包含以下几部分:
- Subversion 用于源代码控制
- Trac 用于提供Wiki,Bug跟踪和日常的项目管理
- Cruise Control 用于做后续集成
英文源地址: http://www.shokhirev.com/nikolai/programs/SVN/svn.html
Practical guide to subversion on Windows with TortoiseSVN
by Nikolai Shokhirev
SVN将项目代码加入svn版本控制的更多相关文章
- [转]将已有项目代码加入svn版本控制
原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...
- SVN上传代码
概述 SVN上传代码 使用SVN工具上传代码到新浪SAE 1.下载SVN工具http://tortoisesvn.net/downloads.html 2.创建一个文件夹,Checkout,输入SAE ...
- 测试思想-流程规范 SVN代码管理与版本控制
SVN代码管理与版本控制 by:授客 QQ:1033553122 欢迎加入软件性能测试交流群(QQ群):7156436 目录 一. 二. 三. 四. 五. 六. 七. 一. 创建根目录 创建一 ...
- 生产项目加入到SVN版本控制
零.介绍 每天定时备份是通过ftp打包和同步的方式,这些都是比较粗的备份,没法恢复到指定时间的文件,所以需要用到svn控制版本. (请不要问我为什么不用git) 一.现有项目文件加入版本控制 因为项目 ...
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...
- xcode 把项目代码提交到远程SVN服务器
环境 xcode 7 Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...
- SVN中trunk,branches,tags的使用明细--项目代码的管理
SVN在项目开发过程中有两种模式: 第一种:Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局svn://proj/|+ ...
- SVN 让项目某些文件不受版本控制
@echo On @Rem 删除SVN版本控制目录 @PROMPT [Com] @for /r . %%a in (.) do @if exist "%%a\.svn" rd /s ...
- 使用命令行 Subversion 访问项目源文件(SVN)
from:http://www.open.collab.net/scdocs/ddUsingSVN_command-line.html.zh-cn 命令行 Subversion 入门 如果您参与的项目 ...
随机推荐
- css 命名规范参考[转]
命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...
- Python3之错误处理
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及错误的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...
- 【c# 学习笔记】构造函数
构造函数 主要用于创建类的实例对象.当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员.构造函数分为实例构造函数和静态构造函数两种. 1.实例构造函数 实例构造函数用于创建和 ...
- .Net Core 精选公众号集合(保持更新)
dotNET跨平台 <dotNET跨平台>是国内首个以.NET程序员.技术文化.新闻为主题的公众号,拥有约5万读者.在这里你可以谈微软.NET,Mono的跨平台开发技术,也可以谈谈其他的跨 ...
- Mac安装7Z以及Mac下查看隐藏文件夹
一:Mac下安装7Z: 1:brew直接安装解压工具 $ brew search 7z 会搜索到: ==> Formulae p7zip 2:$ brew install p7zip ...
- CF1227C Messy
思路: 构造题.首先把字符串变成“(((((...)))))”的样子,再根据k的取值变成“()()()...((...))”的样子即可. 实现: #include <bits/stdc++.h& ...
- 搭建一个超好用的 cmdb 系统
10 分钟为你搭建一个超好用的 cmdb 系统 CMDB 是什么,作为 IT 工程师的你想必已经听说过了,或者已经烂熟了,容我再介绍一下,以防有读者还不知道.CMDB 的全称是 Configurati ...
- Centos7.3安装sonarqube
安装使用sonarqube 前置依赖 mysql 5.6 or 5.7 jdk 1.8 1.下载 https:/ ...
- Mobile Phone Network CodeForces - 1023F (最小生成树)
大意: 无向图, 其中k条边是你的, 边权待定, m条边是你对手的, 边权已知. 求如何设置边权能使最小生成树中, 你的边全被选到, 且你的边的边权和最大. 若有多棵最小生成树优先取你的边. 先将$k ...
- MySql数据库 优化
MySQL数据库优化方案 Mysql的优化,大体可以分为三部分:索引的优化,sql慢查询的优化,表的优化. 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更 ...