原文:http://www.111cn.net/sys/CentOS/81084.htm

安装SVN服务器是非常的简单了,今天我们给各位介绍一篇非常详细的在Centos系统下安装SVN服务器方法,希望文章对各位带来帮助


分支开发的意义:

场景一,有客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。
场景二,我们正在开发产品下阶段的任务,但上阶段的工作发现问题
以场景二为例,项目某一阶段开发完成后,这个时候要做一个tag,tag_mfcai_V1.01.00,
然后基于这个tag发布一个新的版本,假设项目是web项目,那么基于这个tag发布一个web包。
然后trunk进入下阶段继续开发,但是很不幸发布的版本被检测出来了bug,有人会提议,把bug放到下阶段的任务中去。假设下阶段的任务才刚开始,用户可等不起.他们会认为一个小的bug解决要这么长时间,效率太低了.
那么就需要基于tag_mfcai_V1.01.00做一个branch,branch_bugfix_V1.01.00,基于这个branch进行bugfix,
等到bugfix结束,做一个tag,tag名称假设为:tag_mfcai_V1.01.01,基于这个tag再发布一个版本。
这样,又没有影响trunk(主分支)的开发。然后,根据需要决定branch_bugfix_V1.01.00是否并入trunk。
如何使用先进的分支技术

再介绍点打tag的知识。确认项目组成员的代码都commit后。

1)右击要打tag的目录—>TortoiseSVN—>branch/tag

2)再弹出来的对话框中,要求输入分支或标记的目标路径

3)创建分支或标记的时候,你有三个选项版本库中的最新版本,版本库中的指定版本,工作副本。

开始打分支第一步

1:指分支将存在的目录

2:分支的注释(不能丢呀,等分支多了!就搞坨数不清楚的拉)

3:这里分别说明三个分别是说明啥意思

1)Head revision in the repository –直接从版本库中最新创建,由于不需要从你的工作拷贝中传输数据,创建过程会很快。

2) Specific revision in repository ——同样是从版本库中创建,不同的是你可以指定一个版本号。如果你忘了版本号,可以通过显示版本记录来找到你想要的版本号(如下图)。这种方式同样不需要从你的工作拷贝中传输数据,创建过程也很快。

3) Woking copy ——这种方式会依据当前工作拷贝的版本状况(无论是你做了本地的修改,或是将其中的某些文件更新到了一个历史版本)来创建分支拷贝。这种创建方式会根据工作副本中每个文件的版本情况来决定是否要从工作拷贝向版本库中传输数据。

在这里我们必需先弄明白一个合并背后的关健概念

合并的过程中发生的所有事:首先两个版本库树的比较,然后将区别应用到本地拷贝.

这个命令是包括三个参数的:

初始的版本树 2.最终的版本树 3一个接收区别的工作拷贝。
弄明白这些概念之后我们继续往下操作。

在弹出的窗口中,选择主线目录和其版本号(初始的版本树),再选择主线目录和最新的版本号(最终的版本树),这里也可以是某一个版本号但应该比初始的版本树的版本号要高,接收区默认为你右键所指的目录,这里是clientt。

在合并之前我们可以通过点击“Unified diff”,查看两版本树之间所有文件的内容的变化,“diff”显示出有发生变化的文件列表,“dry run”能显示真正合并时的状态信息,但并没有做任何的合并操作。

我们点击“Merge”。
这里选择的是合并两个不同的版本树
分支合并到主线跟从主线上合并内容到分支上类似
不同的是
1、开始的版本库是分支创建的版本

2、结束的版本库是完成所以开发工作之后的版本

3、应用的目的是主线目录
SVN服务器代建小礼包
SVN 关闭服务器 killall svnserve
SVN 开启服务器 svnserve -d -r /SVN目录
后面的代建的全过程
系统环境
RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum

一,安装必须的软件包.

yum install subversion (SVN服务器)
MysqL-server (用于codestriker)

二,基本的SVN服务器配置

1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/project
3,初始化版本仓库中的目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m “初始化SVN目录”

SVN服务器代建之后一定要初始化,不然根本就用不了。

4,添加用户

要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了.为了测试,我添加了如下内容:


[users]
# harry = harryssecret
# sally = sallyssecret
Admin=admin

5,修改用户访问策略

/home/svn/project/conf/authz记录用户的访问策略,以下是参考:


[/]
Admin=rw
Admin 所有的目录都是读写的权限


6,修改svnserve.conf文件,让用户和策略配置升效.

svnserve.conf内容如下:

[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz


7,启动服务器

# svnserve -d -r /home/svn


8,测试服务器


# svn co svn://192.168.60.10/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: Admin
Password for 'admin':
svn: Authorization Failed ( server_group没用根目录的访问权 )
A project/test
A project/server
A project/client
Checked out revision 1. ( 测试提取成功 )
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
如果你代建的SVN服务器都OK,但是小乌龟无法访问:防火墙的问题。。。简单粗暴的方法: etc/ini.d/iptables stop
当然不是好太建议直接关闭防火墙:(SVN默认是3690端口)


RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

再送一个小礼包

SVN Error: Unreadable path encountered; access denied;

解决方法:

编辑[代码仓库目录下]/conf/svnserve.conf 将[anon-access]的值设置为[none] 记得重启SVN服务器

Centos系统下安装SVN服务器方法介绍(非常详细)的更多相关文章

  1. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – 比较两个版本号

    如何比较两个版本号字符串?例如:3.1.1和3.1.2.5.4现在我需要找出3.1.2.5.4是否高于3.1.1但我不知道如何做到这一点.有谁能够帮我?

  3. ios – 在XCode提交期间,exclaimation point符号对文件意味着什么?

    当从XCode中提交对SVN存储库的更改时,某些文件具有“!”右栏中的符号.这个符号是什么意思,我应该用这些文件做什么?

  4. 如何在xCode 9.0中设置SVN存储库

    使用xCode9.0,我遇到了SVN设置问题.我找不到任何添加SVN存储库的选项适用于早期版本的xCode.在源代码管理中,我到处都是GIT.我正在使用SVN很长一段时间,并正在使用早期版本的xCode但是这不适用于xCode9.0.解决方法如果你有旧版本的xcode,并且上面的升级方法不能正常工作或无法使用,那么终端可以用来升级.>前往终点站>使用cd命令将目录更改为项目文件夹库>要验证您是否在

  5. ios – SVN忽略’.a’文件

    我正在尝试在我的XCode项目中添加一个’.a’文件但它被SVN忽略了,因此我无法将其添加到存储库中.任何线索可能是什么原因?解决方法是的,你必须手动完成.只需在控制台中导航到它并执行svnaddfile_name.a即可.

  6. iOS App版本编号

    iTunesConnect开发人员指南PDF(第47页),关于iOS应用程序的版本号,请参阅以下内容:Usetypicalsoftwareversioningconventions(suchas“1.0″or“1.0.1”or“1.1”)没有关于应用版本号的确切格式的声明.我们可以使用版本号,例如“1.0.0.1”或“1.0.0.0.1”吗?解决方法我的建议是坚持使用1.x.x格式作为应用商店用途

  7. Xcode和SVN:无法重命名我的类 – >错误:155007(路径不是工作副本目录)

    我读了this.我也发现了类似的problem.但到目前为止还没有解决方案.解决方法我遇到了同样的问题,谷歌指导我这个问题,所以为迟到的’回答’道歉.无论如何,我正在研究eclipse3.5,macosx雪豹,你似乎也在使用macosx?关键是,macosx’hfs-filesystem大多数情况下设置不区分大小写,所以因为你只是想改变文件名的大小写,这可能是你的问题.我的解决方法是从FOO.h到Foo.h执行重命名:>FOO.h–>foobar.h中>FooBar.h–>foo.h中

  8. swift获取屏幕的宽高

    之前写了一篇关于获取iphone屏幕宽高的方法,算是能解决ios7下的一个小bug,是用OC写的,文章地址:http://blog.csdn.net/wingsofpiano/article/details/45726729这次用swift语言试着写了一个相同的方法,同样,粘贴到viewcontroller就能用使用示例:如果有什么错误的地方还望各位前辈能指出来

  9. swift 值类型和引用类型

    1.Struct是值类型,拷贝是值拷贝,Class是引用类型,拷贝是引用拷贝

  10. 何时使用Swift Structs和Classes

    struct在绝大部分Objective-C代码中并不是很常用.我们偶尔以CGRect和CGPoint等方式接触到它们,但很少会自己去写.首先,它们不是很实用.用Objective-C在struct中正确地存储对象的引用的确很难,尤其是使用ARC的时候.很多其他语言干脆没有类似struct的东东.许多语言如同Python和JavaScript一样”万物皆对象”,只有引用类型.如果你是从这类语言转型到Swift的,你可能对struct的概念就更陌生了.等一下!

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部