使用svn进行版本控制

以前都是别人建好并配置好了svn,然后我使用。今天自己简单尝试了下建svn来管理项目文档。中间也遇到些问题。下面是我总结的一个完整流程,许多步骤可以有另外的方法来完成,但在这我都只给我认为比较简单的方法。

我使用系统是: Microsoft Windows xp sp2

 

第一:下载软件

有两个软件需要下载的:
Subversion和TortoiseSVN
Subversion 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
TortoiseSVN下载地址:http://tortoisesvn.net/downloads

(有些文档说必备软件还有Apache,但这么说法的大多是较旧的文档这么提到,随着软件的更新,已经没有必要安装Apache了,安装Apache是为了SVN能干更多事,比如可以基于HTTP去访问等。)

软件安装完后需要重启系统。

 

第二,建立服务和根目录创建

建立svn的根目录:例如在E盘建立文件夹SVNRoot。

然后是建立svn服务:(这里把svn服务建立为一个windows的服务)

在命令行下敲入:SC create svn1.5 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\SVNRoot\"" depend= Tcpip start= auto
(第一块红色部分为subversion的安装位置,第二块红色为刚才创建的SVN根目录,注意:命令行中等号前不能有空格,等号后必须有空格)

运行后打开windows的服务窗口检查,如果有svn1.5这么个服务,说明建立成功了,初次建立可能要手动启动下(不然重启动系统也可以,当然这里没有必要重启系统)

 

第三:具体项目的建立和配置。

这里假设我们有个项目DemoProject需要用svn来管理。

在E:\SVNRoot下新建文件夹DemoProject。进入DemoProject,鼠标在空白处点击右键,选择TortoiseSVN,再选择Create repository here。操作完后可以看见本来空的文件夹内多了些文件和文件夹。

现在可以来测试以上步骤是否正确,在F盘创建DemoProject(开发项目时的文件夹),进入新创建的文件夹,空白处点击右键,选择SVNCheckOut,Url repository填入svn://localhost/DemoProject,其他默认。点击OK,(如果窗口Action有显示Completed,那说明操作成功)。

这样虽然可以访问了,但是并没有完成,我们需要配置文件的读写权限。这时我们进入E:\SVNRoot\DemoProject\conf。
里面有三个文件。默认里面几乎所有的代码都被使用#注释了。

接下去我们来修改这三个文件来配置svn的验证和授权。(请大家要区分验证和授权)

首先是svnserve.conf文件。
# anon-access = read把这行改成anon-access = none,表示禁止匿名访问(注意:anon前面不能有空格)
# password-db = passwd把这行前面的注释去掉,并删除空格,表示验证用户使用passwd文件。
# authz-db = authz把这行前面的注释去掉,并删除空格,表示授权使用authz文件。

然后修改passwd文件,部分文件内容:
[users]
# harry = harryssecret
# sally = sallyssecret

我想看下这个文件内容就应该知道作用了,这里是配置svn的用户名和密码,这里harry是用户名,等号后面是用户密码,sally是另外一个用户。当然这两行代码都是被注释的。你可以删除注释启用他们,也可以自己加一行,比如:
kate = 123456
这里用的密码是明文,如果你的项目安全要求较高,可以使用加密的密码,配置比较麻烦,这里不说了。还有用户名之间可不可以有空格,用户名和密码的合法字符等,这些我没做测试。


最后配置authz
第一个属性节点是aliases,别名,不知道作用在哪,估计就是将同等权限的许多用户合并成一个名称。我这里没有做修改。

第二个属性节点groups,组别,这很好理解,就是把相同权限的用户合并入一个组,以便下面配置授权时更加简洁。

下面的属性节点都是目录授权节点。
[/foo/bar]表示以下设置/foo/bar目录下的授权。以下授权格式是: 用户名|组别名 = rw | r,r是read的缩写,表示有读的权限,w是write的缩写,表示可写权限,rw表示可读可写。

如果在根目录下配置使用[/]就可以了。


配置完成后,再次进入F:/DemoProject,在空白处鼠标右键,选择SVNUpdate,这时会弹出个窗口要求我们输入用户名和密码,输入在passwd文件中配置的用户名和密码后就可以访问了。

这样一个项目就配置完成了。接下去就可以使用了。具体的Update, Commit等操作使用就不说了。

 

Two tips:

1.
我们习惯的懒惰的操作就是下班前整个项目commit,但事实是没有必要把整个项目的所有文件都提交给svn管理,甚至有些文件提交后麻烦大大的。比如vs solution下的xxx.user文件,这个提交后造成冲突几乎是100%的。
解决的方法就是在在TortoiseSVN的Setting中设置Global ignore pattern值为“*/bin */obj *.bak *.*scc *.user *.suo *.gpState *.webinfo bin obj *.dll *.pdb *.exe Thumbs.db */TestResults”,这里示例的pattern主要针对使用Visual Studio的开发人员。

2.
在TortoiseSVN的Setting中勾选 Use "_svn" instead of ".svn" directories,某些时候(我不确定是那些时候).svn在windows系统会出错。


 参考文章:

http://www.blogjava.net/zpuser/archive/2008/06/08/206654.html

Setting_up_a_Subversion_Server_under_Windows

 

 11月25更新:

如果你看不懂上面的文章,建议你使用可视化的配置软件来配置subversion服务。介绍文章由本文的热心评论网友提供:

http://www.cnblogs.com/ttzhang/archive/2008/11/06/1325940.html

(我看了这篇文章配置subversion,然后使用了VisualSVN Server来配置,确实很简单!)

 

转载于:https://www.cnblogs.com/Panorama/archive/2008/11/24/1340238.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android面试,BroadCastReceiver的两种注册方式的异同

在Android手机应用程序中开发中,需要用到BroadcastReceiver来监听广播的消息。在自定义好BroadcastReceiver ,需要对其进行注册,注册有两种方法: 一种是在代码当中注册,注册的方法是registerReceiver(recei…

php session_regenerate_id,什么时候以及为什么我应该使用session_regenerate_id()?

什么session_regenerate_id()啊就像函数名称所说的那样,它是一个函数,它将用新的ID替换当前的会话ID,并保留当前的会话信息。它有什么作用?它主要有助于防止会话固定攻击。会话固定攻击是恶意用户试图利用系统中的漏洞固定(设置)另…

DataTable的计算功能(转)

C#--详解DataTable的计算功能 using System;using System.ComponentModel;using System.Data;using System.Windows.Forms;namespace WindowsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sende…

Flink解析kafka canal未压平数据为message报错

canal使用非flatmessage方式获取mysql bin log日志发至kafka比直接发送json效率要高很多,数据发到kafka后需要实时解析为json,这里可以使用strom或者flink,公司本来就是使用strom解析,但是在吞吐量上有瓶颈,优化空间不大。所以试一试通过flin…

初识python之 APP store排行榜 蜘蛛抓取(一)

直接上干货!! 采用python 2.7.5-windows 打开 http://www.apple.com/cn/itunes/charts/free-apps/ 如上图可以见采用的是utf-8 编码 经过一番思想斗争 编码如下 (拍砖别打脸) #codingutf-8 import urllib2 import urllib …

什么叫做matlab的信号频谱分析,基于MATLAB的信号频谱分析及实现.doc

基于MATLAB的信号频谱分析及实现数 字 信 号 处 理课程设计题目: 基于MATLAB的信号频谱分析及实现学院: 信息工程专业: 通信工程班级: 1001学号: 2010013448, 2010013466姓名: 常珍珍 &#xff…

PP团队圣经巨著《Application Architecture Guide2.0》14章-数据访问层

第十四章 数据访问层指导 概览 这一章主要描述设计数据访问层时要注意的主要原则。它们覆盖了设计数据访问层遇到的通常问题及错误。下面的图表展示了数据层怎样嵌入一个通用的应用架构。 (cnblog我的图片一直上传不了,报Remote server Error,只能使用网络图片了) 数…

20个Flutter实例视频教程-第03节: 不规则底部工具栏制作-1

第03节: 不规则底部工具栏制作-1 博客地址: https://jspang.com/post/flutterDemo.html#toc-973 视频地址: https://www.bilibili.com/video/av39709290?p3 视频里面的评论:动态组件就是可以setState的组件 flutter create demo02的项目 这里…

javascript保留两位

//保留两位小数 //功能:将浮点数四舍五入,取小数点后2位 function toDecimal(x) { var f parseFloat(x); if (isNaN(f)) { return; } f Math.round(x*100)/100; return f; } //制保留2位小数,如&#xff1…

mysql内置的变量,MySQL服务器模式及相关内置变量

本章我们主要包含两部分的内容:MySQL服务器模式MySQL内置变量1. MySQL服务器模式不同的MySQL客户端可以通过不同的模式操作MySQL Server。DBA可以设置一个全局模式,而每个应用程序可以根据需要为相应的会话设置不同的模式。MySQL操作模式会影响到SQL的语…

python模块之smtplib: 用python发送SSL/TLS安全邮件

转载请注明原文出自 http://blog.csdn.net/zhaoweikid/ python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件…

B-树

6.7 B-树★4◎3 1.B-树的定义  B-树是一种平衡的多路查找树,它在文件系统中很有用。  定义:一棵m阶的B-树,或者为空树,或为满足下列特性的m叉树:  (1)树中每个结点至多有m棵子…

dom4j和jaxp解析工具的

dom4j解析中的几个对象node --branch --document --element --commment --attribute --text branch --document --element jaxp解析中的几个对象 node --document --element --commment --attr --text dom4j解析 中全部对象都是node对象的子节点,也就是说它把说有…

mysql数据库交叉连接,MySQL数据库联合查询与连接查询

联合查询基本概念联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合在一起,使用为此为UNINO或UNION ALL联合查询:将多个查询的结果合并到一起(纵向合并):字段数不变&#xf…

C#-委托和事件

要为类构造一个事件,必须用 event 来声明一个 delegate 型的字段,如: puclic calss Test{ public delegate EventHandler(object sender, EventArgs e); //声明为delegate 型的事件; } 然后要指定一个事件的名称,并写出处…

性能测试四十五:性能测试策略

1、项目具体需求,及业务场景:关注真实用户会是怎样的一个业务场景,确定用户的用户习惯。 2、指标:响应时间在多少以内,并发数多少,tps多少,总tps多少,稳定性交易总量多少,事务成功率…

原创:MD5 32位加密软件

网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想。网站后台密码加密大多数采用的就是MD5算法加密。今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽然没有什么技术含量,但保证没有后门。 …

(教学思路 c#之类一)声明类和对象、定义类成员及其引用

上一节(教学思路 c#之面向对象二)初步理解面向对象的基本概念中,我没有提到任何的代码,只是用语言和实例来说明什么是类和对象以及面向对象的特性等基本概念,类是c#程序语言的重要核心,也是构建应用程序最主…

matlab数值过小为0,MATLAB数值计算——0

MATLAB数值计算MATLAB中文论坛基础板块常见问题归纳(出处: MATLAB中文论坛)登录http:www.mathworks.com/moler 获取NCM文件,注册账户,下载Toolbox格式,点击安装——在MATLAB中输入ncmgui出现图案即为success!(pathtool添加默认路径…

【springboot】之自动配置原理

使用springboot开发web应用是很方便,只需要引入相对应的GAV就可以使用对应的功能,springboot默认会帮我们配置好一些常用配置。那么springboot是怎么做到的呢?这篇文章将一步步跟踪源码,查看springboot到底是如何帮我们做自动化配置。 sprin…