[SCM]源码管理 - SVN Server
一 SVN命令行简介
1)命令行方式的SVN Server和Client下载: http://www.collab.net/downloads/subversion/
2)设置path路径:set path="C:\Program Files\CollabNet\Subversion Server";%path%
3)svn 的server 和 client相关的命令行主要包含:
svn,svn子命令包含了所有的client操作;
svnadmin,svnadmin用来管理SVN Server,其中Server最主要的一个操作就是创建repository命令svnadmin create;
svnlook,svnlook及其相对应的子命令用来server管理;
4)帮助:命令 help 子命令, 例如svn help checkout 或svnadmin help create 或svnlook help youngest
5)更多命令实例参考 book:Version Control with Subversion-> Chapter 9. Subversion Complete Reference
二 SVN server的访问方式有三种:1)file;2)svn 或 svn+ssh;3)http 或 https。
三 SVN server 创建过程 (支持svn或svn+ssh协议访问,主要使用svnserve)
1 svnadmin
创建repository :svnadmin create c:\svnR
2 svnserve
1)增加users,在文件C:\svnR\conf\passwd中增加:
[users]
foo = bar
2) 修改conf,在文件C:\svnR\conf\svnserve.conf中打开:
[general]
anon-access = read
auth-access = write
password-db = passwd
3)导入project然后运行svnserve:
set svn_editor=notepad
svn import c:\test file:///c:/svnr
svnserve -d --log-file c:\svnr\log.txt -r C:\svnR
3 svn checkout
svn checkout svn://ipforsvnr c:\svnrwc
4 svnlook
svnlook changed c:\svnr
svnlook log c:\svnr
5 svn可以和ssh的权限认证结合起来,让问如:svn list svn+ssh://host.example.com/repos/project
四 svn server创建(支持file访问)
1 创建Repository :使用svnadmin或TortoiseSVN的create repository here
2 访问:svn checkout file:///path/to/repos 或共享后远程机器访问 svn checkout file://localhost/path/to/repos
五 svn server创建(支持http或https,主要使用apache服务器)
Apache 的HTTP服务器是一个Subversion可以利用的“重型”网络服务器,通过一个自定义模块,httpd可以让Subversion版本库通过 WebDAV/DeltaV协议在客户端前可见,WebDAV/DeltaV协议是HTTP 1.1的扩展(见http://www.webdav.org/来查看详细信息)。这个协议利用了无处不在的HTTP协议是广域网的核心这一点,添加了写 能力—更明确一点,版本化的写—能力。结果就是这样一个标准化的健壮的系统,作为Apache 2.0软件的一部分打包,被许多操作系统和第三方产品支持,网络管理员也不需要打开另一个自定义端口。
详细参考: [SCM]源码管理 - SVN + Apache
六 比较
svnserve服务器
- 为什么你会希望使用它:
-
设置快速简单。
网络协议是有状态的,比apache(WebDAV)快很多。
不需要在服务器创建系统帐号。
不会在网络传输密码。
- 为什么你会希望避免它:
-
网络协议没有加密。
只有一个认证方法选择。
在这个服务器上明文保存密码。
没有任何类型的日志,甚至是错误。
svnserve使用SSH通道
- 为什么你会希望使用它:
-
网络协议是有状态的,比apache(WebDAV)快很多。
你可以利用现有的ssh帐号和用户基础。
所有网络传输是加密的。
- 为什么你会希望避免它:
-
只有一个认证方法选择。
没有任何类型的日志,甚至是错误。
需要用户在同一个系统组,使用共享ssh密钥。
如果使用不正确,会导致文件许可问题。
Apache 的 HTTP 服务器
- 为什么你会希望使用它:
-
允许Subversion使用大量已经集成到Apache的用户认证系统。
不需要在服务器创建系统帐号。
完全的Apache日志。
网络传输可以通过SSL加密。
HTTP(S) 通常可以穿越公司防火墙。
通过web浏览器访问内置的版本库浏览。
版本库可以作为网络驱动器加载,实现透明的版本控制。
- 为什么你会希望避免它:
-
比svnserve慢很多,因为HTTP是无状态的协议,需要更多的传递。
初始设置可能复杂
七建议
通常,推荐开始使用Subversion的小团队使用svnserve;这是设置最简单,维护最少的方法,而当你的需求改变时,你可以转换到复杂的部署方式。
下面是一些常见的建议和小技巧,基于多年对用户的支持:
如果你尝试为你的团队建立最简单的服务器,安装svnserve是最简单的,最快速的方法。注意,无论如何,如果你的整个部署都是在局域网或者VPN中,版本库数据可以在网络上没有限制的传递。如果版本库部署在internet,你会希望确定版本库的内容不是敏感的(例如只包含开源代码。)
如果你希望与现有的认证系统(LDAP、Active Directory、NTLM、X.509等)集成,你你只能选择Apache服务器,同样的,如果你绝对需要服务器端的日志(服务日志或客户端活动),也需要Apache服务器。
如果你已经决定使用Apache或svnserve,应该单独创建一个运行服务器进程的
svn
用户,也需要确定版本库目录属于svn
用户。从安全的角度,这样很好的利用了操作系统的文件系统许可保护了版本库数据,只有Subversion服务进程可以修改其内容。如果你有一个严重依赖于SSH帐号的基础,而且你的用户已经在服务器上有了帐号,那建立一个通过ssh的svnserve方案就非常有意义,否则,我们不会建议这种方案。通常还是通过svnserve或Apache管理的用户访问版本库比较安全,而不是使用完全的系统帐户。如果你很希望加密的通讯,那可能还是需要选择这个方案,但我们更加推荐SSL的Apache方案。
不要被简单的让所有用户使用
file://
的 URL访问版本库的方案诱惑,即使,版本库版本库已经对网络共享的所有用户可见,这也不是一个好方案。这样删除了用户和版本库之间的所有保护层:用户可能 会偶然(或有意的)毁坏版本库数据库,这样也很难在检查或升级时将版本库脱机,而且这样会造成曾混乱的文件许可问题,注意那就是我们警告使用svn+ssh://
的原因—从安全角度讲,这样与作为本地用户访问file://
是一样的,如果管理员不小心,会造成同样的问题。
八 参考:
http://svndoc.iusesvn.com/svnbook/1.4/svn.serverconfig.html
book:Version Control with Subversion
[SCM]源码管理 - SVN Server相关推荐
- [SCM]源码管理 - SVN的备份和还原
转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略 ========= ...
- [SCM]源码管理 - SVN:externals
svn的外部定义svn:externals 转自:http://blog.csdn.net/jaconey/archive/2008/05/15/2448986.aspx 解决你的外部依赖 -- sv ...
- [SCM]源码管理 - perforce快速入门
Perforce是目前比较流行的集中式的源代码管理工具,在很多的欧美跨国公司被广泛的使用.他能够运行于Windows,Linux,Mac几乎所有的平台,支持客户端,命令行,IDE集成,操作系统shel ...
- [SCM]源码管理 - perforce的集中授权+分布式团队+负载均衡+可扩展性+高可用性+灾难恢复...
本文主要讨论perforce的 * perforce集中授权 * perforce对分布式团队的支持 * perforce的负载均衡和可扩展性 * perforce高可用性和灾难恢复 一 perfo ...
- 配置源码管理工具(2)
源码管理是开发中最重要的事情之一,在vs.net里我们通常采用vss进行版本控制,在Eclipse里看帖子说用svn的比例很大,和IDE的集成性也很好. 1:服务器部署 下载地址是:http://su ...
- 从漫画看源码管理方式
一直以来我都比较在意源码的管理,怎么说也是自己辛苦写的东西,改得又很频繁,没有个好方法好工具管理起来还真是不放心. 最近几年主要是用分布式版本控制工具Mercurial(HG),个人觉得还是挺好用的. ...
- 源码管理工具VSN的安装与使用--eclipse
Eclipse下的源码管理可以使用CVS(http://www.nongnu.org/cvs/)或者SubVersion(http://subversion.apache.org/).CVS出现的比较 ...
- Visual studio 2005如何实现源码管理
转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发) 目录: 〇. 摘要 一. 开发前的准备 二. 创建空的SourceSafe数据库 三 ...
- 0918 iOS10兼容/iOS系统过高或过低配置包/混合引擎的在线视频连麦互动直播/源码管理工具/Xcode8插件升级/导航栏渐变
1 兼容iOS 10 资料整理笔记 http://www.jianshu.com/p/42e506998082 iOS developerDiskImage 这是由于真机系统过高或者过低,Xcode中 ...
最新文章
- java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...
- LA3989女士的选择
- javac、jar使用实录
- Git学习教程(一):git简介
- 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
- centos7安装oracle12c 三
- springboot 远程调用shell脚本,环境为windows
- IBM ThinkPad错误代码列表
- 万创帮逆向解析,让你也能体验技术变现【Python爬虫实战系列之万创帮闲置资源整合逆向】
- linux查服务器硬件PN号,查看linux系统常用的命令,Linux查看系统配置常用命令
- 在线答题系统_在线题库管理系统v3.1.0
- iOS真机测试详细步骤及图解
- 常见字读音(粤语)---(2)
- 加快BITMAP像素访问速度,取代GetPixel
- Python大神80行代码实现“头脑王者”,运营窍诀躺着教你赚钱!
- 自考02323《操作系统概论》第一章操作系统简介——思维导图
- 电梯控制系统的设计与实现
- Golang字符串中常用的函数
- 自制内存盘还有其用途
- [乡土民间故事_徐苟三传奇]第五回_黄知县对联丢尽脸
热门文章
- 几十种编程语言说Hello World
- 利用DIV,实现简单的网页布局
- 设置phpMyAdmin连接本机已存在数据库
- 电脑端一些快捷开源创建平台
- linux 卸载、安装mysql
- flex皮肤制作---通过flash
- python自助电影售票机_手把手教你用python抢票回家过年(代码简单)
- java即时聊天系统毕业_我见过的最牛逼java即时聊天毕业设计项目源码
- 全栈性能测试修炼宝典jmeter实战电子版_JMeter实战(一) 体系结构
- oracle pl sql安装配置,oracle的安装与plsql的环境配置