1、SVN学习
SVN(Subversion)是一种开源的版本控制系统,多个开发人员通过一个中心版本控制系统来记录文件版本。从而达到保证文件同步的目的。
SVN可架设在Apache(web服务器)上,使用http或https协议进行访问,也可以使用内置的svn协议访问,主要有B/S和C/S两种工作模式,B/S是使用浏览器只能进行读操作,C/S需要专用的客户端软件,一般集成了较多功能,可以进行读、写操作。
2、对于SVN主要针对Linux用户和Windows用户。针对以上两种用户可按照侧重不同参考阅读,Linux用户参考4.3.1节命令,Windows用户参考4.3.2节
4.3.1命令行操作
**1。检出** 可以从服务器导出选中的目录到本地,得到一个工作拷贝。检出与导出的区别是检出的工作拷贝是受版本控制的,可以进行一些SVN操作,而导出的只是“单纯”的文件。
2.版本库浏览器
svn list path
显示path 目录下的所有属于版本库的文件和目录
简写: svn ls
3.更新
svn update -r v path
注: v为要还原的版本号
例如:
svn update 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 20 test.php(将版本库中的文件test.php还原到版本20)
svn update test.php(更新,与版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除2 svn resolved,最后在提交commit)
简写 svn up
4.增加
往版本库中增加新的文件。
svn add file
例如:svn add test.php(添加test.php文件)
svn add *.php(添加当前目录下所有的php文件)5.删除文件 svn delete path -m "delete test file" 注: --m后“ ” 里面为日志信息 例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file" 或者直接 svn delete test.php 然后 svn ci -m 'delete test file',推荐使用这种, 简写:svn(del,remove,rm) 6.提交 svn commit -m "LogMessage" [-N][--no-unlock] PATH...(如果选择了保持锁,就使用-no-unlock开关)例如:svn commit -m "add test file for my test"test.php
简写:svn ci7.SVN帮助 如果要了解更多svn命令,可以使用svn help命令查看。4.3.4TSVN窗体菜单的具体操作
4.3.4.1 版本库浏览器
会弹出一个对话框,输入你要链接的版本库即可,如:svn://服务器IP/版本库名称
确定好再输入分配好的用户名和密码。
4.3.4.2导入
将文件导入到版本库。在你的硬盘上创建一个空的文件夹,在那个文件夹下创建你想要导入的文件夹。
通过右击新建空文件夹,选择Tsvn->导入…将这个结构导入到版本库中。
注意:你所导入的那个文件夹名字并不存在于版本库中,仅仅是它所包含的内容。4.3.4.3 检出 “检出”用于客户端第一次从SVN服务器上下载版本数据。、 ——在客户端新建一个文件夹用于存放下载的数据 ——在新建文件夹上点右键,选择"SVN检出..." ——在弹出窗口的“版本库URL”处填入版本库的访问地址,如:svn://192.0.0.140//XXX库/XXXX项目/ ——点“确定”开始从SVN服务器下载数据 检出与导出的区别是检出的工作拷贝是受到版本控制的,可以进行一些SVN操作,而导出的只是“单纯”的文件,是不受控制的 4.3.4.4 SVN更新 “更新”用于客户端从SVN服务器下载最新版本。 ——在受SVN控制的某层文件夹上(或文件夹内空白处)点右击,选择“SVN更新”,TSVN自动比较该文件夹客户端与服务器的版本差异,并下载最新版本到客户端。 4.3.4.5 SVN提交 “提交”用于将客户端的改动上传到SVN服务器。 ——在受SVN控制的某层文件夹上(或者文件夹内空白处,或某文件上)点右击,选择“SVN...” ——TSVN自动检查该文件夹客户端的改动,并将其列在弹出窗口的“变更列表”栏 ——点击“确定”将客户端的改动上传到服务器 4.3.4.6增加 **“增加”用于将新文件或文件夹纳入SVN的控制下**。 ——在受SVN控制的某层文件夹上(或文件夹内空白处,或新增的某文件上)点右击,选择“TSVN—增加” ——如果“增加”是对文件夹进行操作,则会弹出窗口列出该文件夹下未受控制的文件,点击“确定”将其纳入SVN控制。 ——“增加”后文件图标从?变成+ 注意:“增加”仅是对客户段的文件进行标注,并不上传到服务器,需要执行提交操作才会上传 4.3.4.7 删除 “删除”用于从当前版本中删除文件或文件夹 ——在受SVN控制的文件夹中,通过Windows直接删除子文件夹或文件 ——或:在受SVN控制的某层文件夹或文件上点右键,选择ToroiseSVN—删除 注意: ——“删除”仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行“提交”操作才会将删除操作上传到服务器 ——将“删除”操作“提交到服务器”。仅是从服务器的最新版本中删除此文件或文件夹,在历史版本中仍可找回此文件或文件夹 4.3.4.8改名 “改名”用于在受SVN控制的状态下,对文件名或文件夹进行改名。 ——在受到SVN控制的某层文件夹或文件上点右键,选择TSVN-改名 注意:改名仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行“提交”操作才会将改名操作上传到服务器 不要用Windows“重命名”来实现改名,因为这个操作不受SVN控制,SVN会将其理解为删除源文件、增加一个新文件,从而导致文件改名后不能跟踪到改名前的状态 改名的另一种方法: ——在受SVN控制的某层文件夹或文件点右击,选择TSVN-版本库浏览器 ——在弹出窗口右键点击要改名的文件夹或文件,选择“改名” ——由于是对服务器版本库直接操作,改名后将自动执行一次“提交”操作 ——改名完成后需要客户端执行一次“更新”,以下载最新状态。注意:不要用Windows的拖动操作或者“剪切”、“黏贴”来实现移动,因为这些操作不受SVN控制。
4.3.4.10更新至版本 “更新至版本”,用于取出文件的某历史版本。 ——在受SVN控制的某层文件夹或文件上点右键,选择TSVN-更新至版本... ——在弹出的窗口中填写要取的版本号,点“确定”取回该版本 4.3.4.11SVN还原 “还原”是用于放弃增加、删除、改名以及修改文件内容等客户端本地操作,将客户端的数据恢复到改动前的版本状态。 ——在受SVN控制的某层文件夹或文件上点右击,选择TSVN-SVU还原.... ——在弹出窗口中查看要还原的内容,点击确定还原客户端数据 注意:还原只能用于执行“提交”操作之前,即未将客户端的改变上传到服务器之前。 4.3.4.12复原(回滚) 复原(回滚)用于将项目恢复到之前的某个版本状态,并在此版本基础上继续后面的工作。 ——在受SVN控制的某层文件夹或文件点击右键,选择TSVN-显示日志



