svn简介

subversion(SVN)是一个开源的版本控制系统,管理着随时间改变的数据,这些数据放置在一个中央资料档案库(reposlitory)中,这个档案库是一个普通的文件服务器,但它会记录每一次文件的改动

SVN的概念词汇

  • repository(源代码库):源代码统一存放的地方
  • checkout(提取):当你的手上没有源代码的时候,你需要从repository checkout一份
  • commit(提交):当你已经修改了代码,你就需要commit到repository
  • update(更新):当你已经checkout了一份源代码,update一下你就可以和repository上的源代码同步,你手上的代码就会有最新的变更

工作步骤:

checkout(几天之后)---->update(和repository上的源代码同步)----->做出自己的修改并调试成功后commit

小贴士
如果两个程序员同时修改了同一个文件,svn可以合并这两个程序员的改动,svn管理源代码是以行为为单位,两个程序员不是修改同一行程序,svn都会自动合并两种修改,svn会提示文件confilict,冲突,需要手动确认。
svn的主要功能
  • 目录版本控制
  • 真实的版本历史
  • 自动提交
  • 纳入版本控管的元数据
  • 选择不同的网络层
  • 一致的数据处理方式
  • 有效的分支branch和标签tag
  • Hackability
svn优势
  • 原子提交
  • 重命名,复制,删除文件等动作都保存在版本历史记录当中
  • 对于二进制文件,使用节省空间的保存方法
  • 目录也有版本历史,整个目录树可以被移动或复制,操作简单,而且能够保留全部的版本记录
  • 分支开销非常小
  • 优化过的数据库访问,使得一些操作不必访问数据库可以做到
常用的命令:

1.将文件checkout到本地目录

svn checkout path
svn co

2.往版本库中添加的文件

svn add filenames
svn add *.filename   模糊

3.将改动的文件提交到版本库

1.svn commit -m "Logmessage"[-N][--no-unlock]PATH  如果选择了保持锁,就使用--no-unlock开关
2.svn commit -m "add test file for my test" test.php
3.svn ci

4.查看日志

svn log path

6.比较差异

svn diff path (将修改的文件与基础版本进行对比)
svn diff -r m:n path (对比版本m和版本n比较差异)
svn di

7.版本库下的文件和目录列表

svn list path显⽰path⽬录下的所有属于版本库的⽂件和⽬录
svn ls