一、e svn简介esvn是一个开源的项目,作为Surbversion版本控制工具在Linux操作系统下的客户端软件。
它也是一个图形化界面的软件,同时也可以通过输入命令行来进行SVN操作。
二、esvn安装1.在linux中安装esvn 步骤(1)、下载安装包:esvn-0.6.12-1.tar.gz(2)、解压得到esvn文件(3)、在esvn文件目录中打开终端(4)、“make”命令运行安装前的esvn文件内容安装后的esvn文件内容:2、打开esvn软件双击启动esvn,也可通过命令行窗口“esvn”打开,还可以在桌面应用程序中找到esvn打开(如果失败的话,把这个文件复制到usr/bin目录下即可)。
esvn主窗口如下图所示:三、esvn的使用1、esvn菜单介绍(1)“File”菜单,如下图:●File --> Open working directory 在浏览窗口中打开一个本地目录(可以是不被版本控制的目录文件)。
●File --> Workspace 显示管理工作拷贝的对话框。
●File --> Checkout…检出一个版本库。
●File --> Browse Repository 浏览版本库。
●File --> Import…导入文件到服务器版本库中。
●File --> Export…从服务器版本库中导出数据,导出的内容不受版本控制。
●File --> Options 该选项对话框用于设置eSvn属性等。
●File --> Recent workspaces 最近打开的工作拷贝清单。
●File --> Exit 退出esvn软件。
●View --> Refresh local 刷新本地目录树中的文件。
●View --> Refresh workspace 刷新工作拷贝目录。
●View --> Refresh online 在线刷新目录文件。
●View --> Flat view 显示文件查看窗口中文件的全路径。
●View --> Hide unknown files 隐藏未知文件。
●View --> Clear output log 清除命令输出窗口。
●View --> Toolbars 在工具栏中显示的菜单列表。
●Modify --> Add 添加一个目录或文件到变更列表中,在下次提交后,目录或文件被纳入版本库。
●Modify --> Add recursive 添加一个目录及其包含的文件和子目录到本地版本库中,在下次提交后,加入到服务器版本库中。
●Modify --> copy(local)在本地工作拷贝中复制文件。
●Modify --> copy(remote)在远程版本库中复制文件或目录,此项用于创建分支。
●Modify --> Make directory 创建一个受版本控制的新目录。
●Modify --> Merge 合并操作,可以合并不同的版本,或者两个目录树。
●Modify --> Switch 切换,用于分支和主干的相互切换。
●Modify --> Revert 回退,用于回退修改等操作。
●Modify --> Revert recursive 递归回退,回退目录及其子目录文件。
●Modify --> Cleanup 递归清理工作拷贝,删除未完成的工作拷贝锁定,并恢复未完成的操作。
如果你得到一个“工作拷贝已锁定”的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。
●Modify --> Resolved删除工作拷贝文件或目录的“conflicted”状态。
●Modify --> Edit 打开选中的文件,进入编辑状态。
●Query--> Log 显示提交日志信息。
●Query--> Info 显示工作拷贝的相关信息(版本库URL、版本号、修改作者、时间等)。
●Query--> Status 显示文件的状态。
●Query--> Properties 显示选中文件的属性,在属性对话框中可以添加、修改、删除属性。
●Query--> Diff 比较窗口,不同版本间的比较,或不同目录树的比较。
●Query--> Quick Diff●Query--> Diff-3(confict)外置比较工具●Query--> Show changed items●Query--> Blame 显示选中目录或文件的作者、修订版本信息。
●Query--> View (cat)显示版本库中文件的最新版本内容。
选择Help--> Contents,可打开用户手册。
如下所示:(6)文件右键菜单选项右键文件,可以看到有如下快捷选项。
(7)工具栏快捷选项。
通过“Toolbars”增加工具栏菜单。
2、esvn面板介绍在文件窗口中,主要显示了以下的信息。
Filename 文件名Status 文件状态,包括四种:up-to-date(已更新)modified(已修改)out of date (已过期,需要更新)unknown(未知,未受版本控制文件)missing(丢失文件)Revision 版本库中的最新版本Last revision 最近修改过的版本Last updated 最近更新的版本Modified(local)最后一次修改的日期和时间Author 进行修改和提交操作的SVN用户。
Tag/Branch 文件所在的位置,标签或是分支。
文件图标意义如下:未知文件,未受版本控制已更新,可写。
文件添加到变更列表中,在下次提交后进入版本库。
进行合并或者更新操作时出现冲突。
文件在本地被修改。
文件相对于版本库已过期。
文件在本地被移动(删除)。
目录内容在版本库中被修改,工作拷贝目录内容已过时,需要更新。
文件被添加到目录中,但还没有提交到版本库中。
命令输入输出框如下:3、esvn日常使用1)检出一个版本库:File --> Checkout…2)工作拷贝管理窗口File --> Workspace … 打开如下对话框此对话框中New 按钮用于添加一个新的工作拷贝。
Edit 按钮用于为工作拷贝指定本地路径。
Rename 可以为工作拷贝的名称进行改名。
Delete 在esvn中删除一个工作拷贝。
Load 打开指定工作拷贝。
Close 关闭对话框。
3)版本库浏览File --> Browse Repository…打开版本库浏览窗口。
4)导入版本库File --> Import…5)导出版本库File --> Export…导出操作和检出操作类似,唯一的不同是导出的版本库为干净的目录树,即不受版本控制,目录里没有.svn的隐藏目录。
6)选项设置File --> Options…一般选项都采用默认值7)更新工作拷贝Modify --> Update 该选项是将指定文件更新到最新版本。
Modify --> Update revision…该选项可以将指定文件更新到最新版本或者任何一个历史版本。
8)添加、删除文件Modify --> Add 在工作拷贝中添加一个新文件,提交后,文件纳入版本库。
Modify --> Add recursive 在工作拷贝中递归添加一个目录,提交后纳入版本库。
Modify --> Delete 删除一个文件或目录,提交后在版本库中删除。
(在当前版本中删除,但仍存在于历史版本中)。
9)提交Modify --> Commit 在工作拷贝中对文件进行添加、删除、修改等操作,要纳入到服务器版本库中,必须使用提交。
10)本地复制文件Modify --> Copy (local)11)远程复制文件(用于创建分支)Modify --> Copy (remote)提交后,分支创建成功。
如下图:12)合并Modify --> Merge…esvn合并有两种方式:一种是不同版本的合并,包括本地工作拷贝的合并,如下图:远程版本库中目录的合并。
另一种是两个目录树的合并(一般是分支与主干的合并)。
13)切换操作Modify --> Switch切换成功后,刷新本地工作拷贝,可以看到目录树中只有分支的目录。
可以用同样的方法切换到主干目录。
需要注意的是,在工作拷贝中如果有修改的文件还未提交,切换后可能会丢失修改,所以在切换之前应对工作拷贝中修改的文件进行一次提交。
14)回退操作Modify --> Revert 放弃对文件的修改,添加和删除操作。
必须在文件未提交前才能进行回退。
Modify --> Revert recursive 递归对目录及其内容进行回退操作。
15)追溯Query --> Blame 显示指定文件的作者和修订版本信息。
16)比较Query --> Diff 填写正确的文件路径,及文件的版本号,可以对两个文件进行比较,比较内容如下图所示:四、esvn常见问题1、删除文件会出现树冲突使用esvn删除文件。
删除分支branch3。
右键“Delete”,然后提交“Commit”,branch3文件的内容被删除,若删除branch3这个文件再提交,会出现树冲突,如下图所示:解决办法:选中branch3,点击Modify——>resolve,在弹出的对话框中选“Yes”,表示对branch3解决冲突。
然后再提交。
成功。
2、用TortoiseSVN删除的目录仍在esvn中显示使用Windows客户端软件TortoiseSVN删除了一个目录,并提交到版本库中。
但在esvn下更新后,该目录仍存在。
如下图:解决办法: 只能手动在工作拷贝中删除这个目录。
3、esvn 中没有改名操作。