Subversions的基本原理

来源:互联网 发布:真的有迷你猪吗 知乎 编辑:程序博客网 时间:2024/05/02 15:20

1.subversion 的架构


2.subversion的组件

svnsvnversionsvnlooksvnadminmod_dav_svnsvnservesvndumpfiltersvnsync

3.基本概念

3.1. checkout 拷贝一份到本地

commit 将修改的提交带服务器版本

update 更新

3.2 Svn解决方案: 拷贝-合并 -修改

3.3 工作副本跟踪版本库的原理

对与本地的拷贝,.svn/ 中记录两项关键信息:本地版本号和上次更新的时间戳。通过这两个信息,可以判断四种状态并操作:

<1, 未修改且是当前的。commit,update不做任何事情

<2, 本地已修改且是当前的。comiit将成功提交,update 不做任何事情

<3. Unchanged,and out of data, 本地无修改,服务器版本库修改。commit不做任何事情,update将得到最新的

<4. Locally changed,and out of date,本地,服务器版本库都修改。commit 将失败,必须先更新,update 讲合并公共和本地。

3.4 更新和提交是分开的,混合修订版本。  <这里有写不太明白。

svn status : 查看修改概况

svn log :查看历史修改记录

3.5 .svn文件夹包含了svn的管理信息

3.6 遇到中断,代码被锁,用 cleanup


4. 基本工作循环

4.1 <1. 更新你的工作拷贝。

· svn update

<2.做出修改 

·svn add 

· svn delete 

· svn copy 

· svn move 

<3. 检验修改 

· svn status 

· svn diff 

<4. 可能会取消一些修改 

· svn revert

<5. 解决冲突(合并别人的修改) 

· svn update 

· svn resolved 

<6. 提交你的修改 

· svn commit


4.2 冲突

冲突的基本格式

<<<<<<< .mine

   Salami

   Mortadella

   Prosciutto

   =======

   Sauerkraut

   Grilled Chicken

>>>>>>> .r2

上面是自己的,下面是别人的代码,根据情况处理,然后删掉conflict markers

5. 分支与合并概念

5.1 分支的概念:branch

brance多用于作为trunk的另外一条线,便于修改并不影响trunk

5.2  创建分支 svn copy,在server中 copy 是cheap copy,是建立一种 hard link,但在client 的repository 中是新文件目录,分支背后的关键概念:

<1,对于Subversions ,没有内在的分支概念,仅仅是copy一个目录

<2,犹豫拷贝机制,branches是作为正常的文件存储在repository.

5.3 版本库与复制


6.版本库管理

6.1 目录

conf : a directory containing configuration files

dab : a directory provided to mod_dav_svn for ints private housekeeping data

db : the data store for all of you versioned data

format: a file that contains a single integer that indicates the version number of the repository layout

hooks: a directory full of hook script templates(and hook scriptes themselves,once you've installed some)

locks: a directory for Subversions's resposity lock files,used for tracking accessors to the repository


6.2 版本库常用结构

版本库结构:trunk,branches,tags



原创粉丝点击