使用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来配置,确实很简单!)

(0)

相关推荐

  • Windows下SVN服务器搭建方法整理(apache)

    本节和大家谈谈Windows下SVN服务器搭建问题,在这里拿出来和大家分享一下,希望对大家有用. 1,软件下载 Windows下SVN服务器搭建,下载Subversion服务器程序.到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.4.0-setup.exe.下载Subversion的Windows客户端TortoiseSVN.T

  • SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案

    SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案 第一种方法: 通过svn插件来清理,首先选中项目,右键,选择team->refresh/cleanup即可.然后再更新文件就不会提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-lockeddir了.但

  • WINDOWS下搭建SVN服务器端的步骤分享(Subversion)

    1.获取svn程序 2.安装 Subversion(以下简称SVN)的服务器端和客户端.下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion .客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启. 3.先建立空目录 E:\svn\repos1 ,注意一定是要空的.然后在 repos1 文件夹上"右键->TortoiseSVN->Create Repository here...",然后可以选择版

  • Windows下VisualSVN Server的安装与配置方法(图文)

    VisualSVN Server是免费的,而VisualSVN是收费的.VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion.Apache和用户及权限管理 为什么在Windows下用VisualSVN Server而不用Subversion 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过

  • 清除svn文件的bat脚本整理

    第一个:比较直接的代码,循环删除当前目录及子目录下所有的SVN文件 复制代码 代码如下: @echo on color 2f mode con: cols=80 lines=25 @REM @echo 正在清理SVN文件,请稍候...... @rem 循环删除当前目录及子目录下所有的SVN文件 @rem for /r . %%a in (.) do @if exist "%%a\.svn" @echo "%%a\.svn" @for /r . %%a in (.)

  • 解决常见的Eclipse SVN插件报错方法详解

    在学习SVN的过程中,你经常会遇到SVN插件问题,本文介绍一下在安装SVN插件时常见Eclipse SVN插件报错信息问题,希望本文介绍对你的学习有所帮助. AD: 本节和大家一起看一下SVN插件在安装过程中遇到的常见Eclipse SVN插件报错信息,和大家一起分享一下,希望通过本节的介绍大家知道当出现SVN插件报错时该如何处理. 常见Eclipse SVN插件报错信息: 1.update-rHEADD:/dev/workforceWorkingcopynotlocked;thisisprob

  • svn服务器启动和svn服务器重启、停止等操作脚本分享

    复制代码 代码如下: #!/bin/bashcase "$1" instart)        svnserve -d -r /svndata        svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'`        if [ $svnport -eq 3690 ]        then                echo "SVN Server Already

  • 删除SVN三种方法delSvn(windows+linux)

    一.在linux下 删除这些目录是很简单的,命令如下 find . -type d -name ".svn"|xargs rm -rf 或者 find . -type d -iname ".svn" -exec rm -rf {} \; 二.在windows下用以下法子: 1.在项目平级的目录,执行dos命令: xcopy project_dir project_dir_1 /s /i 2.或者在项目根目录执行以下dos命令 for /r . %%a in (.)

  • 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的bin目录下)如下: # 首先将svn库整个导出  svnadmin dump /data/svn/project > project_original.dump  # 然后将project_original.dump文件里面不需要的文件进行排除并生成一个新的dump文件  type project_

  • 使用svn进行版本控制

    我使用系统是: Microsoft Windows xp sp2 第一:下载软件 有两个软件需要下载的:Subversion和TortoiseSVNSubversion 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91TortoiseSVN下载地址:http://tortoisesvn.net/downloads (有些文档说必备软件还有Apache,但这么说法的大多是较旧的文档这么提到,随着软件

  • Flyway数据库版本控制的教程详解

    前言: 最近工作上遇到个问题,项目开发过程中,开发代码可以通过svn来版本控制,但数据库又该如何来管理呢?多个人接触数据库,当对表.字段或数据修改后,又怎么来同步呢?经过苦寻,发现了个叫flyway的开源项目:http://flywaydb.org/ ,java编写,官方的介绍就是我的初衷,岂能不心动? 官网是英文的,查了下居然没有中文文档,难道没有中国人用? 慢慢看了下官方文档,试着做了下,一次成功!(离开电脑,蹦达几下,继续坐回电脑) 自己写个小教程吧 1.将flyway-core-2.3.

  • Git使用基础篇(一些常用命令和原理)

    Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 1.Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.Gi

  • Git客户端图文详解 如何安装配置GitHub操作流程攻略

    Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上; Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代

  • nodejs前端自动化构建环境的搭建

    为了UED前端团队更好的协作开发同时提高项目编码质量,我们需要将Web前端使用工程化方式构建: 目前需要一些简单的功能: 1. 版本控制     2. 检查JS     3. 图片合并     4. 压缩CSS     5. 压缩JS     6. 编译SASS 这些都是每个Web项目在构建.开发阶段需要做的事情.前端自动化构建环境可以把这些重复工作一次配置,多次重复执行,极大的提高开发效率. 目前最知名的构建工具: Gulp.Grunt.NPM + Webpack:     grunt是前端工

  • mysql如何比对两个数据库表结构的方法

    在开发及调试的过程中,需要比对新旧代码的差异,我们可以使用git/svn等版本控制工具进行比对.而不同版本的数据库表结构也存在差异,我们同样需要比对差异及获取更新结构的sql语句. 例如同一套代码,在开发环境正常,在测试环境出现问题,这时除了检查服务器设置,还需要比对开发环境与测试环境的数据库表结构是否存在差异.找到差异后需要更新测试环境数据库表结构直到开发与测试环境的数据库表结构一致. 我们可以使用mysqldiff工具来实现比对数据库表结构及获取更新结构的sql语句. 1.mysqldiff

  • SpringBoot程序的打包与运行的实现

    目录 程序打包 程序运行 SpringBoot程序打包失败处理 命令行启动常见问题及解决方案 SpringBoot项目快速启动(Linux版) 刚开始做开发学习的小伙伴可能在有一个知识上面有错误的认知,我们天天写程序是在Idea下写的,运行也是在Idea下运行的. 但是实际开发完成后,我们的项目是不可能运行在自己的电脑上的. 我们以后制作的程序是运行在专用的服务器上的,简单说就是将你做的程序放在一台独立运行的电脑上,这台电脑要比你开发使用的计算机更专业,并且安全等级各个方面要远超过你现在的电脑.

  • linux下svn版本控制的常用命令大全

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3.将改动的文件提交到版本库 svn commit -m "LogMessage" [-N] [-

  • SVN与Git版本控制的优缺点差异全面分析

    目录 一.集中式vs分布式 1.Subversion属于集中式的版本控制系统 Subversion的特点概括起来主要由以下几条: 2.Git属于分布式的版本控制系统 Git具有以下特点: 二.版本库与工作区 1.SVN的版本库和工作区是分离的 2 .Git 的版本库和工作区如影随形 三.全局版本号和全球版本号 1. SVN与Git版本号比较 四.部分检出 1. SVN的部分检出 2. Git的检出 五.更新和提交 1.更新操作 2.SVN中的commit命令 3.Git中的暂存区域(stage)

随机推荐