Username: Password:

SVN学习笔记
来源: ChinaUnix博客  作者: ChinaUnix博客   发布时间:2007-01-01 21:58:00

主要参考
http://www.subversion.org.cn/svnbook/1.1/svn-book.html
1)安装
2)新建版本库
   假如我打算将在/SVN_Repo中建立任何的版本库
   svnadmin create /SVN_Repo(本地磁盘路径名)
3)建立要导入版本库的文档和目录
   这里假设我要导入/test整个目录,假如不存在则必须要新建,然后整个项目文档包括文档和子目录放入test目录下,然后
  svn import /test
[url=file:///SVN_Repo/]file:///SVN_Repo/[/url]
-m"initial import"
4)从版本库中取出项目到/work_dir目录
  svn checkout
[url=file:///SVN_Repo/]file:///SVN_Repo/[/url]
/work_dir
  您能够使用版本库的URL作为唯一参数取出一个工作拷贝,您也能够在版本库URL之后指定一个目录,这样会将您的工作目录放到您的新目录
5)本地修改
   svn diff查看区分  
   svn commit 提交
     在版本库里,每次提交都当作一次原子食物操作,要么任何都改变,要么什么都不改变,SybVersion的修订号是针对整个目录树的,而不是单个文档。
需要特别注意的是,工作拷贝并不一定对应版本库中的单个修订版本,他们可能包含多个修订版本的文档。举个例子,您从版本库检出一个工作拷贝,最近的修订号是4:
calc/Makefile:4 integer.c:4 button.c:4
此刻,工作目录和版本库的修订版本4完全对应,然而,您修改了button.c并且提交之后,假设没有别的提交出现,您的提交会在版本库建立修订版本5,您的工作拷贝会是这个样子的:
calc/Makefile:4 integer.c:4 button.c:5
假设此刻,Sally提交了对integer.c的修改,建立修订版本6,假如您使用svn update来更新您的工作拷贝,您会看到:
calc/Makefile:6 integer.c:6 button.c:6
Sally对integer.c的改变会出现在您的工作拷贝,您对button.c的改变还在,在这个例子里,Makefile在4、5、6修订版本都是相同的,但是Subversion会把他的Makefile的修订号设为6来表明他是最新的,所以您在工作拷贝顶级目录作一次干净的更新,会使得任何内容对应版本库的同一修订版本。
   svn update 同步本地工作目录

修订版本号
当您新建了一个Subversion版本库,从修订版本号0开始,每一次成功的提交加1,当您提交成功,Subversion告诉客户端这个新版本号。
修订版本日期
注意在日期中有空格时需要使用引号
$ svn checkout --revision {2002-02-17}
$ svn checkout --revision {15:30}
$ svn checkout --revision {15:30:00.200000}
$ svn checkout --revision {"2002-02-17 15:30"}
$ svn checkout --revision {"2002-02-17 15:30 +0230"}
$ svn checkout --revision {2002-02-17T15:30}
$ svn checkout --revision {2002-02-17T15:30Z}
$ svn checkout --revision {2002-02-17T15:30-04:00}
$ svn checkout --revision {20020217T1530}
$ svn checkout --revision {20020217T1530Z}
$ svn checkout --revision {20020217T1530-0500}

基本的工作周期
Subversion有许多特性、选项和华而不实的高级功能,但日常的工作中您只使用其中的一小部分,有一些只在特别情况才会使用,在这一节里,我们会介绍许多您在日常工作中常见的命令。
典型的工作周期是这样的:

  • 更新您的工作拷贝

  • svn update

  • 做出修改

  • svn add
    预定将文档、目录或符号链foo添加到版本库,当您下次提交后,foo会成为其父目录的一个子对象。注意,假如foo是目录,任何foo中的内容也会预定添加进去,假如您只想添加foo本身,使用--non-recursive(-N)参数。

  • svn delete
    预定将文档、目录或符号链foo从版本库中删除掉,假如foo是文档,他马上从工作拷贝中删除,假如是目录,不会被删除,但是Subversion准备好删除了,当您提交您的修改,foo就会在您的工作拷贝和版本库中被删除。

  • svn copy
    建立一个新的项目bar作为foo的复制品,当在下次提交时会将bar添加到版本库,这种拷贝历史会记录下来(按照来自foo的方式记录),svn copy并不建立中介目录

  • svn move

  • 这个命令和和运行svn copy foo bar; svn delete foo完全相同,bar作为foo的拷贝准备添加,foo已预定要被删除,svn move不建立中介的目录

  • 检验修改

  • svn status

  • svn diff

  • svn revert

  • 合并别人的修改到工作拷贝

  • svn update

  • svn resolved

  • 提交您的修改

  • svn commit



    本文来自ChinaUnix博客,假如查看原文请点:http://blog.chinaunix.net/u/16015/showart_445247.html
  • 喜欢本文,那就收藏到:

      Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
    相关评论  我也要评论
    还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅