SVN--项目管理的好帮手(-)

       当我们使用版本控制的时候,我们觉得他是如此便捷好用,但是真正为什么要使用SVN呢?等等很多问题,先在这里总结基本的知识点:

1.什么是SVN ?

       SVN(Visual SVN Server) 是集中式的版本控制,svn服务器有2种运行方式:独立服务器和借助apache运行。对于数据存储有两种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。(DBD和FSFS是什么样的结构?)

      有一个简单但不十分精确的比喻:SVN = 版本控制 + 备份服务器;我么可以把SVN当成自己的备份服务器,它不但充当我们每次上传到服务器上的档案内容的保管员,也是每次代码变更的监控者,并且自动的赋予每次的变更的一个版本。用一个图我们可以清楚它的原理如下图:

                                                                                                                  

2.为什么要使用SVN?

  • 备份工作档案十分重要,我们永远不知道计算机的硬盘何时会坏掉。
  • 版本控管非常重要。你无法保证手头上最新版本永远都是对的。
  • 团队之间的数据同步也是非常重要的。很多时候,除了你个人外,还有其它的团队成员也需要你的数据。
         总结:安全,效率,资源共享

3.建立SVN Repository

       基本操作:
       1)取出版本库到一个工作拷贝:通过“Add Respository”建立一个repository ,在“URL of repository”中输入SVN服务器地址,“Respository path”中输入内容在服务器上的目录路径,通过“check out”将内容保存到本地,这样我们就得到了一份内容的工作拷贝。       
       2
)提交( commit )在工作拷贝中作出修改并提交:在 工作拷贝中随便打开一个文件,作出修改,然后 右键 -> SVN Commit... 。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。
       3 )在修改过的文件上通过 Show Log ,可以看到对这个文件所有的提交。在不同的 revision 条目上 右键 -> Compare with working copy ,我们可以比较工作拷贝的文件和所选 revision 版本的区别。
      
4)更新版本(Update to Latest Revision )
在文件或者文件夹右键Update to Latest Revision ,将该文件夹中所有文件或者该文件更新至最新版本。本地内容与服务器内容自动Merge有可能造成代码冲突。

4.SVN权限配置

       1)在Subversion 的使用当中,存在“认证”、“授权”两个概念。认证,即authentication,是指用户名与密码的认证。授权,即authorization ,是指某用户对某个目录是否具备读、写权限的一种审核。这两者配合作用,就组成了Subversion 的整个帐户管理体系。       
       2)Subversion 提供了面向目录的帐户权限管理功能,通过它,我们就可以很精确地实现项目目录的访问控制。

5.冲突解决方案

     1)其实避免的冲突最好的办法就是: 项目人在配合工作的时候,彼此之间很好的交流
     2)当出现冲突的时候,svn会生成三个临时文件
  • filename.mine 存储者本地的修改过的文件。
  •  filename.rOLDREV 存储者上次update的基础版本文件 。
  • filename.rNEWREV 存储着客户端刚从服务器上接收来的版本。
     3)当遇到冲突的时候有3种方法解决冲突
  • 手动合并代码,解决冲突。
  • 选择一个冲突出现时产生的临时文件来覆盖当前文件。
  • 运行svn resolved filename 命令来放弃当前文件的本地的所有修改。
6.在IDE中的使用,比如eclipse

  • 在eclipse中安装Subclipse 的插件并做好配置。
  • 在eclipse中新建工程,建一个包以及类,并完成相关代码的编写和执行。
  •  新建一个svn资源库位置,并将所建的工程import 到svn资源库位置。过程如下:
           1.在eclipse 中打开SVN资源视图(在eclipse的右上角),在左边空白处右键创建资源库位置,此时需要添加url,此时的位置就是我们在SVN服务器上所建仓库的位 置(url);
          2. 回到JAVAEE的视图,将项目import到服务器服务器上:鼠标右键点击项目->Team->Share Project ,选择svn,使用刚才指定的svn仓库的url。在svn视图中,项目已经导入到仓库中。
  • 在修改文件时,要进行各种SVN操作,比如修改后commit,提交不成功时需要update,这时成功提交并保持与版本库一致;当我们要重新想恢复提交前的版本时,需要进行比较并选择loacl history。不仅仅是这么简单的操作,还有一些列方便管理代码的操作。有待在继续熟练使用
7.svn 的基本命令:(在努力掌握)

     C:\Documents and Settings\Administrator>svn ?
     用法: svn <subcommand> [options] [args] Subversion 命令行客户端,版本 1.6.6。
     使用“svn help <subcommand>” 显示子命令的帮助信息。
     使用“svn --version”查看程序的版本号和版本库访问模块,或者 使用“svn --version --quiet”只查看程序的版本号。 
     大多数的子命令可接受文件或目录参数,对目录进行递归处理。 如果没有指定参数,默认对当前目录(包含当前目录)递归处理。
 
    可用的子命令:

   add:把文件和目录纳入版本控制,通过调度加到版本库。它们会在下一次提交时加入。
   blame (praise, annotate, ann):输出指定文件或URL的追溯内容,包含版本和作者信息。
   cat:输出指定文件或URL的内容。
   changelist (cl):耦合(或解耦)文件与修改列表 CLNAME。   
   checkout (co):从版本库签出工作副本。
   cleanup: 递归清理工作副本,删除锁,继续未完成操作,等等。  
   commit (ci): 把工作副本的修改提交到版本库。
   copy (cp): 在工作副本或版本库中复制数据,保留历史。  
   delete (del, remove, rm): 从版本库中删除文件和目录。 
   diff (di): 显示两个版本或路径的差异。   
   export: 产生一个无版本控制的目录树副本。   
   help (?, h): 描述本程序或其子命令的用法。
   import: 将未纳入版本控制的文件或目录树提交到版本库。 
   info: 显示本地或远程条目的信息。 
   list (ls): 列出版本库中的目录内容。
   lock: 锁定版本库中的路径,使得其他用户不能向其提交修改。 
   log: 显示一组版本与/或文件的提交日志信息。   
   merge: 将两个源差异应用至工作副本。   
   mergeinfo: 显示合并的相关信息。   
   mkdir: 创建纳入版本控制的新目录。
   move (mv, rename, ren): 在工作副本或版本库中移动或改名文件或目录。   
   propdel (pdel, pd): 删除目录、文件或版本的属性。   
   propedit (pedit, pe): 使用外部编辑器编辑属性。
   propget (pget, pg): 显示目录、文件或版本的属性取值。 
   proplist (plist, pl): 列出目录、文件或版本的所有属性。
   propset (pset, ps): 设定目录、文件或版本的属性。   
   resolve: 解决工作副本中目录或文件的冲突。
   resolved: 删除工作副本中目录或文件的“冲突”状态。
   revert: 将工作副本文件恢复到原始版本(恢复大部份的本地修改)。   
   status (stat, st): 显示工作副本中目录与文件的状态。   
   switch (sw): 更新工作副本至不同的 URL。   
   unlock: 解除工作副本或URL的锁定。
   update (up): 更新版本。



 

 

 

 

 

回到

JAVAEE

视图

,

将项目

import

到服务器服务器上

:

鼠标右键点击项目

->Team->Share Project 

 

选择

SVN 

 

使用刚才定位的仓库

 

 

SVN

视图里可以看到

,

项目已经导入

 

 

先写到这里,下一篇将写一些基本操作。

 

 

 

 

 

 

 

1234567890ABCDEFGHIJKLMNabcdefghijklmn!@#$%^&&*()_+.一三五七九贰肆陆扒拾,。青玉案元夕东风夜放花千树更吹落星如雨宝马雕车香满路凤箫声动玉壶光转一夜鱼龙舞蛾儿雪柳黄金缕笑语盈盈暗香去众里寻他千百度暮然回首那人却在灯火阑珊处

      

       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值