一 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管理;

svnserve, 用来对server提供svn访问的支持;

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相关推荐

  1. [SCM]源码管理 - SVN的备份和还原

    转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略 ========= ...

  2. [SCM]源码管理 - SVN:externals

    svn的外部定义svn:externals 转自:http://blog.csdn.net/jaconey/archive/2008/05/15/2448986.aspx 解决你的外部依赖 -- sv ...

  3. [SCM]源码管理 - perforce快速入门

    Perforce是目前比较流行的集中式的源代码管理工具,在很多的欧美跨国公司被广泛的使用.他能够运行于Windows,Linux,Mac几乎所有的平台,支持客户端,命令行,IDE集成,操作系统shel ...

  4. [SCM]源码管理 - perforce的集中授权+分布式团队+负载均衡+可扩展性+高可用性+灾难恢复...

    本文主要讨论perforce的 * perforce集中授权 * perforce对分布式团队的支持 * perforce的负载均衡​和可扩展性 * perforce高可用性和灾难恢复 一 perfo ...

  5. 配置源码管理工具(2)

    源码管理是开发中最重要的事情之一,在vs.net里我们通常采用vss进行版本控制,在Eclipse里看帖子说用svn的比例很大,和IDE的集成性也很好. 1:服务器部署 下载地址是:http://su ...

  6. 从漫画看源码管理方式

    一直以来我都比较在意源码的管理,怎么说也是自己辛苦写的东西,改得又很频繁,没有个好方法好工具管理起来还真是不放心. 最近几年主要是用分布式版本控制工具Mercurial(HG),个人觉得还是挺好用的. ...

  7. 源码管理工具VSN的安装与使用--eclipse

    Eclipse下的源码管理可以使用CVS(http://www.nongnu.org/cvs/)或者SubVersion(http://subversion.apache.org/).CVS出现的比较 ...

  8. Visual studio 2005如何实现源码管理

    转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发) 目录: 〇. 摘要 一. 开发前的准备 二. 创建空的SourceSafe数据库 三 ...

  9. 0918 iOS10兼容/iOS系统过高或过低配置包/混合引擎的在线视频连麦互动直播/源码管理工具/Xcode8插件升级/导航栏渐变

    1 兼容iOS 10 资料整理笔记 http://www.jianshu.com/p/42e506998082 iOS developerDiskImage 这是由于真机系统过高或者过低,Xcode中 ...

最新文章

  1. java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...
  2. LA3989女士的选择
  3. javac、jar使用实录
  4. Git学习教程(一):git简介
  5. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
  6. centos7安装oracle12c 三
  7. springboot 远程调用shell脚本,环境为windows
  8. IBM ThinkPad错误代码列表
  9. 万创帮逆向解析,让你也能体验技术变现【Python爬虫实战系列之万创帮闲置资源整合逆向】
  10. linux查服务器硬件PN号,查看linux系统常用的命令,Linux查看系统配置常用命令
  11. 在线答题系统_在线题库管理系统v3.1.0
  12. iOS真机测试详细步骤及图解
  13. 常见字读音(粤语)---(2)
  14. 加快BITMAP像素访问速度,取代GetPixel
  15. Python大神80行代码实现“头脑王者”,运营窍诀躺着教你赚钱!
  16. 自考02323《操作系统概论》第一章操作系统简介——思维导图
  17. 电梯控制系统的设计与实现
  18. Golang字符串中常用的函数
  19. 自制内存盘还有其用途
  20. [乡土民间故事_徐苟三传奇]第五回_黄知县对联丢尽脸

热门文章

  1. 几十种编程语言说Hello World
  2. 利用DIV,实现简单的网页布局
  3. 设置phpMyAdmin连接本机已存在数据库
  4. 电脑端一些快捷开源创建平台
  5. linux 卸载、安装mysql
  6. flex皮肤制作---通过flash
  7. python自助电影售票机_手把手教你用python抢票回家过年(代码简单)
  8. java即时聊天系统毕业_我见过的最牛逼java即时聊天毕业设计项目源码
  9. 全栈性能测试修炼宝典jmeter实战电子版_JMeter实战(一) 体系结构
  10. oracle pl sql安装配置,oracle的安装与plsql的环境配置