SVN版本服务器搭建(服务端+客户端)
原文地址:http://www.cnblogs.com/warrior1988/p/5359084.html
环境:Win7 32 bit
SVN简介:程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。
Subversion是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
VisualSVNServer集成了Subversion和Apache。使用VisualSVNServer作为服务端,TortoiseSVN作为客户端。
VisualSVN Server的配置和使用方法【服务器端】
VisualSVN下载地址:http://subversion.apache.org/packages.html
下载后安装,一直【Next】,到如下所示
Location是指VisualSVN Server的安装目录,Repositorys是指定你的版本库目录,Server Port指定一个端口,Use secure connection勾上表示使用安全连接。继续【Next】到【Finish】。
安装好VisualSVN Server后,运行VisualSVN Server Manger,下面是启动界面:
右侧状态区包括:
Status:服务运行状态
SubversionAuthentication:账户信息
Respositories:代码库信息
添加一个代码库【Repository】,左侧Respositories上右键菜单中选择创建一个代码库,如下图:
在下图所示的文本框中输入代码库名称:
上图中的选择Empty……,只创建空的代码库QGroundStation ; 如果选中Single……则在代码库QGroundStation下面会创建trunk、branches、tags三个子目录。
选择默认选项,点击Create,代码库就创建成功了。
创建完代码库后,此时还没有任何内容在里面。
下面说明如何迁入源代码:
迁入源代码到SVN服务器
安装TortoiseSVN后,我们在12-21文件夹中已经创建了一个项目,要把这个项目的源代码迁入到SVN Server上的代码库中,使用TortoiseSVN的将源代码迁入。
右键点击12-21文件夹,如图,点击Import选项,
弹出
其中URL of repository是svn server中代码库的根目录,在信息输入框中写记录日志是个非常好的习惯
点击OK按钮,会弹出下面的窗体,要求输入凭据。输入用户名密码后,点击OK按钮,
如图所示,源代码已经成功签入SVN服务器了。
签出源代码到本机
在本机创建文件夹QGroundStation-1221,右键点击Checkout,弹出如下图的窗体(参照):
一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。
注:
一个新检出的工作复本使用绿色的对勾重载,表示Subversion状态正常。
在你开始编辑一个文件之后,状态就变成了已修改,而图标重载已变成了红色感叹号。通过这种方式,你可以很容易地看出那些文件从你上次更新工作复本被修改过,且需要提交。
如果在提交的过程中出现了冲突,图标就会变成了黄色感叹号。
加号告诉你有一个文件或者目录已经被计划加入到版本控制中。
提交修改过的文件到SVN服务器
注意:提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在QGroundStation-1221文件夹上点击右键或在QGroundStation-1221文件夹内的空白处点击右键,点击SVN Commit…弹出下面的窗体:
点击OK按钮后,弹出如下图的窗体:
点击OK按钮,修改过的文件提交成功。
添加新文件到SVN服务器
1、 在文件夹内的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
2、 也可以在新建的文件上点击右键,点击TortoiseSVN=>>Add,这样只是将这个文件提交到“变更列表”中。必须VN Commit这个文件一次,才可以将其真正提交到SVN服务器上的代码库中。
添加文件夹的步骤也是一样的。
更新本机代码与SVN服务器上最新的版本一致
只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
注意:更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
重命名文件或文件夹,并将修改提交到SVN服务器
在需要重命名的文件/件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法不是直接重命名,我们使用SVN Commit提交到SVN服务器后才真正重命名。
删除文件或文件夹,并将修改提交到SVN服务器
1、 直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。
2、 在要删除的文件/文件夹上右键,TortoiseSVN=>>Delete,此方法也不是直接删除,而是将状态置为删除,仍需要SVN Commit,在变更列表中选择被删除文件,执行后才真正删除。
说明:实际上,从你把源代码迁迁入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
安全性设置
在左侧的Users上右键:
输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:
点击上图中的”Add…”按钮,在下图中选择我们刚才添加的用户,点击OK按钮:
说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权。
按照下图所示,分别对用户【或组】进行授权:
注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。
参考:http://www.cnblogs.com/armyfai/p/3985660.html
http://jordan-micle.iteye.com/blog/1285604
SVN版本服务器搭建(服务端+客户端)的更多相关文章
- SVN版本服务器搭建
windows: https://blog.csdn.net/lu1024188315/article/details/74082227 SVN 的下载地址如下 http://torto ...
- Linux搭建SVN服务器(服务端)
Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...
- SVN版本控制系统搭建(+结合http服务)
.zise { background: #CCCCFF; color: white; text-align: center } .fense { color: #FFCCCC; text-align: ...
- SVN版本控制系统搭建(结合http服务)
SVN版本控制服务器搭建 Svn(subversion)是一个开源代码管理的控制系统,用来管理和存储开发的源代码,基于C/S模式.可以单独提供服务,也可以结合http服务来实现. 运行方式 运行端口 ...
- eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一)
eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一) 本篇博客主要包含五个内容: 1.CXF换将搭建以及eclipse配置CXF. 2.eclipse创建w ...
- CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端
CAS单点登录系列: CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端 CAS5.1.x 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明 CAS5.1.x ...
- 看懂 游戏《Minecraft》的崩溃报告 服务端/客户端
如何看懂Minecraft报错的关键信息. 让你如何看懂Minecraft报错 前言 一些俏皮话 寻找崩溃日志 打开崩溃日志 重要的事说三遍 下载文本编辑器 开始分析 深度分析 得出结论 修复报错 解 ...
- Swift搭建服务端
原文:Hello Server Side Swift 作者:Logan Wright 译者:CocoaChina--kmyhy(博客) 自从苹果官方发布了一个 Swift 的 Linux 开源版本之后 ...
- NTP时间同步 服务端 客户端 自动化安装配置
NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...
随机推荐
- 查找已连接过的wifi密码
无意之间看到能破解已连接过的wifi密码的诀窍,赶紧存储下来. 1. 首先打开终端 2. 在没有网路的情况下输入: netsh wlan show profiles 结果如下(自己的): 这些‘用户配 ...
- GMA Round 1 空降
传送门 空降 在一块100m*100m的平地上,10位战士从天而降!他们每人会均匀随机地落在这个地图上的一个点. 紧随其后,BOSS随机出现在这个地图上的某一点,然后它会奔向位于左上角的出口,而战士们 ...
- HTML5_canvas_pen.translate()_
.save() 和 .restore() 除了会保存之前的样式,还会保存之前的坐标轴 pen.translate(x, y); 将画布的 坐标轴原点(0, 0) 从画布的左上角,移动到 (x, y) ...
- JavaScript学习day3 (基本语法下)
if/else for while 函数的使用 JavaScript语句 if/else 语句 JavaScript 中的if/else 判断选择,语法格式是这样的 switch/case 语句 在做 ...
- Linux中使用Apache发布html网页
在线学习: https://www.shiyanlou.com/courses/1 工具/原料 Linux,httpd,vi 样例html文件一份 方法/步骤 1 编辑httpd配置文件 2 查找 ...
- 在区块链侧链上进行Dapp技术开发
我在白皮书里提到过,asch使用的是不同于以太坊和比特币的侧链架构,dapp是运行在侧链上的,每套侧链对应一个dapp. 侧链的独立性 侧链架构的好处是代码和数据独立,不增加主链的负担,避免数据过度膨 ...
- ASP.NET Core 从 gitlab-ci 环境变量读取配置
最近在加强持续集成,遇到一个场景需要通过 gitlab-ci 环境变量(Settings -> Settings -> CI/CD -> Variables )在持续集成时向 ASP ...
- POJ 2533 - Longest Ordered Subsequence - [最长递增子序列长度][LIS问题]
题目链接:http://poj.org/problem?id=2533 Time Limit: 2000MS Memory Limit: 65536K Description A numeric se ...
- 对Vuex的初步了解
文章转载于:http://www.cnblogs.com/wisewrong/p/6344390.html 在 Vue.js 的项目中,如果项目结构简单, 父子组件之间的数据传递可以使用 props ...
- odoo 响应下载文件
odoo中如何实现点击按钮下载文件报告.报表到页面左下角 models.py # -*- coding: utf-8 -*-from openerp import models, fields, ap ...