Windows下使用SVN版本控制工具
一、SVN工作原理
SVN(SubVersion)的基本工作思路是这样的:在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序,由源代码库管理员统一管理这些源程序。
每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地(Checkout),然后用户可以在本地任意修改,最后用svn命令进行提交(Commit),由svn源代码库统一管理修改。如下图:

- SVN服务器:运行SubVersion服务的计算机,SubVersion支持Linux和Windows,更多的是安装在Linux下。SVN提供服务有两种方式(运行方式):独立服务器和借助Apache服务器,分别使用SVN协议和Http协议。
 - SVN客户端:用户通过SVN客户端同SVN服务器打交道,SVN客户端分为命令行工具和图形化工具。最流行的客户端是TortoiseSVN。也可以在Eclipse中使用SVN插件。
 

二、SubVersion的使用
可以在http://subversion.apache.org/packages.html下载SVN并安装(本文使用windows版本,过程不多说)。在SVN中集成了服务器端和客户端组件:
- 服务器组件(管理员用):svnadmin、svnserve
 - 客户端组件(程序员用):svn
 
这些组件命令都位于SubVersion安装目录下的bin目录下。
友情提示:安装完SVN后,通过”svnadmin –version”验证是否安装成功。如果出现错误“svnadmin不是内部或外部命令”,则需要手动将SVN的bin目录加入到path环境变量下。
1、创建SVN仓库
1)先创建一个目录:E:\svnrepo\repoDemo1。后面就使用该目录作为SVN仓库。
2)创建仓库:svnadmin create E:\svnrepo\repoDemo1。创建仓库后的目录结构如下:

3)启动SVN服务:svnserve -d -r E:\svnrepo\repoDemo1,如下图:

这样就启动了repoDemo1这个仓库的服务(单仓库),如果在svnrepo目录下还有其他仓库,且要同时启动多个仓库,执行svnserve -d -r E:\svnrepo即可(多仓库)。
一般情况下,访问SVN仓库的URL格式形如:svn://192.168.1.6/repoDemo1,但如果启动的是单仓库,则URL直接用:svn://192.168.1.6表示。svn协议的默认端口号为3690。
小技巧:如果需要频繁使用该仓库,则可将该SVN服务注册成windows服务,这样在计算机开机时就可以启动该服务。如下图:

删除该windows服务:sc delete svnService。
2、SVN客户端操作(命令行)
重点:checkout(检出)、commit(提交)、update(更新)
1)在E盘下建立user1、user2两个目录,模拟两个协同工作的用户的workspace。
2)检出:第一次和SVN服务器交互时,需要使用checkout将仓库检出到本地。

说明:检出一次,就建立了与SVN仓库的连接。
3)提交:commit
在user1目录下新建Demo1.java文件,将该文件提交到SVN仓库。下图演示了三种典型的错误提交。

4)更新:update
切换到user2的工作空间(user2目录下),user2第一次使用SVN仓库,需要检出。user2修改Demo1.java后提交。切换到user1目录,更新(update)。

5)删除与恢复:delete、revert

说明:如果delete后,提交到服务器(commit),则服务器上的数据也被删除了(慎用)。
转自:http://www.flyne.org/article/851
说明:东风化宇 2014年10月05日 于 Flyne 发表
Windows下使用SVN版本控制工具的更多相关文章
- [源码管理] Windows下搭建SVN服务器
		
前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...
 - 如何在一个ubuntu系统上搭建SVN版本控制工具
		
有话说,由于公司项目部署需要,将Windows工程迁移到Linux,通过调查确定使用Ubuntu的Linux操作系统.那么如何快速搭建和Windows一样快捷方便的开发环境就很重要了.本文讲述如何在一 ...
 - Windows下搭建svn服务器端--创建自…
		
Windows下搭建svn服务器端 1.软件 1)服务端:Subversion subversion.apache.org - Getting Subversion - Binary Packages ...
 - SVN版本控制工具使用学习
		
SVN版本控制工具使用学习 Subversion是优秀的版本控制工具. 1.下载和搭建SVN服务器 http://subversion.apache.org/packages.html 类型有5种,推 ...
 - windows下配置svn的https访问
		
svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux.unix以及windows下.svn通常采用http方式进行代码提交与下载.由于密码采用明文传输,因此存在泄密的风险.若采用htt ...
 - windows下架设SVN服务器并设置开机启动
		
原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...
 - svn使用规范、在Windows下使用svn命令行工具、svn命令行的解释
		
以前在公司一直使用git,现在公司有用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程,希望能够帮助大家快速上手,如果想更细致的了解相关内容,可以点击每个小 ...
 - 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】
		
一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...
 - WINDOWS下搭建SVN服务器端的步骤分享(Subversion)
		
1.获取svn程序 2.安装 Subversion(以下简称SVN)的服务器端和客户端.下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion .客户端安装文件 ...
 
随机推荐
- 【知识库】-数据库_MySQL性能分析之Query Optimizer
			
简书作者:Sio 文章出处: MySql优化之索引原理与 SQL 优化 Query Optimizer MySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是 ...
 - HTTP中GET与POST的区别颠覆式的理解
			
关于http中的get和post你轻轻松松的给出了一个“标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求. GET产生的URL地址可以被Bookmark,而POST不可以. GET ...
 - (十三)C语言之break、continue
 - State Threads之编程注意事项
			
原文: Programming Notes 1. 移植 State Thread 库可移植到大多数类 UNIX 平台上,但是该库有几个部分需要依赖于平台特性,以下列出了这些部分: 线程上下文初始化. ...
 - Windows下设置U盘自动复制文件到本地
			
一.打开记事本,把下面的代码复制进去 set fso=createobject("scripting.filesystemobject") set ws=createobject( ...
 - dpkg -l 命令返回数值
			
ubuntu命令: dpkg -l 每条记录对应一个软件包,每条记录的第一,二,三个字符是软件包的状态标识,后边依此时软件包名称,版本号,和简述: 第一个字符为,期望值:包括如下状态: u 状态未 ...
 - cookie、session的联系和区别,多台web服务器如何共享session
			
1.Cookie与Session的联系: cookie在客户端保存状态,session在服务器端保存状态.但是由于在服务器端保存状态的时候,在客户端也需要一个标识,所以session也可能要借助coo ...
 - 发布Rest风格的WebService的SpringBoot极简例子
			
JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...
 - nvl(sum(字段),0) 的时候,能展示数据0,但是group by 下某个伪列的时候,查不到数据(转载)
			
今天碰到一个比较有疑惑的问题,就是在统计和的时候,我们往往有时候查不到数据,都会再加个 nvl(sum(字段),0) 来显示这个字段,但是如果我们再加个group by ,就算有加入这个 nvl(nu ...
 - NodejS---require的机制
			
假设Y是路径,X是文件名或目录名,当 Nodejs 遇到 require(Y+X) 时,按照下面的顺序处理: 1.如果 X 是核心模块(例如:require("http")) a. ...