陈伟俊老师编写的SVN教程文档格式.docx
《陈伟俊老师编写的SVN教程文档格式.docx》由会员分享,可在线阅读,更多相关《陈伟俊老师编写的SVN教程文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
![陈伟俊老师编写的SVN教程文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/31/50439099-219c-426c-a479-9710d667e27b/50439099-219c-426c-a479-9710d667e27b1.gif)
在命令行进入mysvnlib库目录的父目录,执行以下命令
其中-d表示后台运行,-r表示root管理员执行,mysvnlib表示库名
注意:
这个命令行窗口不能关,关闭服务就停止了!
!
SVN可以和apache服务器绑定,通过HTTP服务访问
客户端配置:
客户端是TortoiseSVN,是和windows外壳绑定在一起的,也就是安装之后在windows菜单中会出现它的命令菜单
查看库内容:
在我的电脑某个目录中右键——TortoiseSVN——Repo-browser
其中localhost可以换成服务器固定IP地址
之后会打开资源浏览器,我们甚至可以通过公网IP去访问一些SVN服务器,例如struts,spring的源代码
我们可以把服务器端的资源下载下来,这个过程叫做checkout
首先我们要在本地硬盘新建一个目录,例如mysvnclient,然后在这个目录中右键——SVNCheckout…
会产生一个隐藏的配置文件目录,由于服务器没有东西,所有Checkout下来的什么也没有
顺便说一下,如果要解除svn关联,把这个隐藏配置目录删了就行了
我们可以上传一些东西到服务器,在本地目录中创建一些目录和文件,例如创建project1目录,然后在project1中创建hello.txt
在project1目录中右键——TortoiseSVN——Add
然后右键——SVNCommit,在对话框中输入本次提交注释
会提示登陆,用服务器端存在的用户名密码登陆
提交成功
在资源浏览器中就应该可以看到服务器资源中已经有了刚才提交的东西
然后在另外一个位置创建一个mysvnclient2,在目录中右键——SVNCheckOut
选择需要CheckOut的目录,把内容CheckOut到本地目录,当然也可以选择根目录,把所有内容checkout到本地目录
也可以在mysvnclient2目录中新增或者修改文件,然后commit,这样在mysvnclient目录中update就可以看到最新内容了
但是如果出现并发操作,即一个人修改文件commit,然后另外一个人对同一个文件也做修改,试图提交时会发生文件超时错误
这时候就update会出错
可以在文件上右键——TortoiseSVN——Revert(把冲突文件还原),可以更新到最新版本
然后再重新修改,再commit就可以了
为了防止自己在修改文件的时候和别人冲突,也可以给文件加锁:
在文件中右键——TortoiseSVN——Getlock,这样就是文件独占了(比较像VSS)
在编辑之后可以解除锁定:
在文件中右键——TortoiseSVN——Releaselock
比较和上一版本的不同,在文件中右键——TortoiseSVN——diffwithpreviousversion
把文件切换到历史某一版本,在文件中右键——TortoiseSVN——switch
以上是切换到第10版
如果想切换回最新版,在对话框中默认选中“HEADrevision”即可
MyEclipse7.0安装SVN插件
1.下载site-1.6.18.zip,解压缩后,把plugins目录拷贝到MyEclipse安装目录中,例如放到D:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins
2.在随便哪个项目中创建一个类,类代码如下:
importjava.io.File;
importjava.util.ArrayList;
importjava.util.List;
/**
*MyEclipse7.0G安装插件代码生成器
*
*@authorAdministrator
*/
publicclassCreateSVN{
privateStringpath;
publicCreateSVN(Stringpath){
this.path=path;
}
@SuppressWarnings("
unchecked"
)
publicvoidprint(){
Listlist=getFileList(path);
if(list==null){
return;
}
intlength=list.size();
for(inti=0;
i<
length;
i++){
Stringresult="
"
;
StringthePath=getFormatPath(getString(list.get(i)));
Filefile=newFile(thePath);
if(file.isDirectory()){
StringfileName=file.getName();
if(fileName.indexOf("
_"
)<
0){
continue;
}
String[]filenames=fileName.split("
);
Stringfilename1=filenames[0];
Stringfilename2=filenames[1];
result=filename1+"
"
+filename2+"
file:
/"
+path+"
\\"
+fileName+"
\\,4,false"
System.out.println(result);
}elseif(file.isFile()){
Stringfilename2=filenames[1].substring(0,filenames[1]
.lastIndexOf("
."
));
4,false"
}
publicListgetFileList(Stringpath){
path=getFormatPath(path);
path=path+"
FilefilePath=newFile(path);
if(!
filePath.isDirectory()){
returnnull;
String[]filelist=filePath.list();
ListfilelistFilter=newArrayList();
filelist.length;
Stringtempfilename=getFormatPath(path+filelist[i]);
filelistFilter.add(tempfilename);
returnfilelistFilter;
publicStringgetString(Objectobject){
if(object==null){
return"
returnString.valueOf(object);
publicStringgetFormatPath(Stringpath){
path=path.replaceAll("
\\\\"
"
//"
returnpath;
publicstaticvoidmain(String[]args){
System.out.println("
===========jad=========="
newCreateSVN(
"
D:
\\ProgramFiles\\Genuitec\\MyEclipse7.0\\subversion\\plugins"
.print();
//插件路径
}
其中D:
\\ProgramFiles\\Genuitec\\MyEclipse7.0\\subversion\\plugins就是刚才plugins目录的路径
3.运行这个类,在控制台输出以下结果
===========jad==========
com.collabnet.subversion.merge,2.2.4,file:
/D:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\com.collabnet.subversion.merge_2.2.4.jar,4,false
com.sun.jna,3.2.7,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\com.sun.jna_3.2.7.jar,4,false
org.tigris.subversion.clientadapter.javahl.win32,1.6.17,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.clientadapter.javahl.win32_1.6.17.jar,4,false
org.tigris.subversion.clientadapter.javahl,1.6.17,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.clientadapter.javahl_1.6.17.jar,4,false
org.tigris.subversion.clientadapter.svnkit,1.6.15,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.clientadapter.svnkit_1.6.15.jar,4,false
org.tigris.subversion.clientadapter,1.6.12,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.clientadapter_1.6.12.jar,4,false
org.tigris.subversion.subclipse.core,1.6.18,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.core_1.6.18.jar,4,false
org.tigris.subversion.subclipse.doc,1.3.0,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.doc_1.3.0.jar,4,false
org.tigris.subversion.subclipse.graph,1.0.9,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.graph_1.0.9.jar,4,false
org.tigris.subversion.subclipse.mylyn,3.0.0,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.mylyn_3.0.0.jar,4,false
org.tigris.subversion.subclipse.tools.usage,1.0.1,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.tools.usage_1.0.1.jar,4,false
org.tigris.subversion.subclipse.ui,1.6.18,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tigris.subversion.subclipse.ui_1.6.18.jar,4,false
org.tmatesoft.svnkit,1.3.5.7406,file:
\ProgramFiles\Genuitec\MyEclipse7.0\subversion\plugins\org.tmatesoft.svnkit_1.3.5.7406.jar,4,false
4.把输出的文本内容复制到以下文件末尾
\ProgramFiles\Genuitec\MyEclipse7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info
5.启动MyEclipse,就会发现有SVN的视图
在MyEclipse中使用SVN客户端
和CVS的使用差不多,首先在视图中右键——新建——资源库位置
一般来说项目负责任会把原型项目创建出来,然后共享到SVN资源库中,其他人可以从资源库中检出项目到本地
将工程项目共享到SVN资源库
在MyEclipse中的项目中右键——Team——ShareProject,在对话框中选择SVN
选择已经存在的资源库位置
可以默认使用项目名作为SVN库的目录名
编写注释,完成共享
但是在共享项目之后,SVN库中并不会出现真正的项目内容,还需要把这个项目进行提交
提交项目:
在项目中右键——Team——提交。
。
从SVN资源库中检出(导出)项目
当有一个人在SVN资源库共享项目后,其他人就可以通过SVN资源库检出导出项目,在myeclipse中的SVN资源库视图,在项目中右键——检出为…
一般都选择默认工作空间
Team菜单中的常用操作命令
提交:
对当前文件或者当前目录的修改或者新建操作,持久化到SVN服务器中
更新:
获得当前目录或者文件的服务器最新版本
ShowRevisionGraph:
用图形方式显示历史版本,还可以同时显示注释
切换:
切换到某个历史版本,或者是当前最新版本,下例是切换到版本19
显示资源历史记录:
可以看到文件的修改历史版本,双击某个版本可以直接打开这个版本的内容
锁定:
给目录或者文件加独占锁,别人无法操作
解锁:
不解释!
还原:
当出现并发冲突时,更新之后会出现合并之后的内容,可以还原到目前资源库最新的内容,当然修改全部丢失
以下是并发冲突错误提示
导出:
在项目中右键执行此命令,可以将项目导出到指定本地目录
断开连接:
在项目中右键执行此命令,可以让本地项目脱离SVN服务器关联,还可以选择脱离SVN同时删除所有本地SVN配置
Comparewith——修订版:
可以让当前文件和历史某一个版本做对比
Eclipse安装SVN插件,以Eclipse3.6为例
下载svn-eclipse-site-1.6.10.zip
打开Eclipse,help——InstallNewSoftware
选择svn-eclipse-site-1.6.10.zip文件,随便起一个name
全部打勾
重启Eclipse3.6,安装成功
其他操作和MyEclipse工具使用一样,不赘述