免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3667 | 回复: 0
打印 上一主题 下一主题

[转载]SVN快速入门 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-29 12:58 |只看该作者 |倒序浏览
转自
http://www.blogjava.net/gdhqs/
一、安装及常用操作
  
SVN相信大家都有使用过或者听说过吧?它的好处我这里就不说了,网上介绍多的是。因为是版本控制,所以个人认为其设计的原理不需要懂得太多,只需要了解
常识即可。小弟google了许久,也没找到一篇介绍快速入门的文章。无奈之下,看了几篇长篇大论,终于学了点点的皮毛。下面我将写一个svn快速入门系
列,因为是快速入门,所以一般只讲操作。(这里有些内容都是参考 深入浅出系列之二_SubVersion)
    首先,我们下载svn安装文件,输入网址:
http://subversion.tigris.org
,找到
...more downloads...
,然后找到windows那一块下载,注意,有两个版本
Apache 2.0
or
Apache 2.2
,可以选择和你电脑里面apache服务器同样的版本下载。

    安装完成后,可在命令行输入svn --version查看是否安装成功,以及在系统变量里查看path是否增加了svn的安装目录。如下图:



    接着,在服务器端创立创库(repository)。a.手动在硬盘上创建一个文件夹。

   


    b.在命令行输入svnadmin create + 仓库目录。  创建版本库。如图:




    此时。仓库所在文件夹会多出几个文件,说明仓库创建成功。

    SVN此时已经在你的电脑里准备就绪,下面将介绍SVN的几个常用命令:import ,checkout,commit,update以及mkdir。

   
在执行import,commit,update,mkdir的时候,svn需要记录操作日志,方法一:在系统环境变量增加一个SVN_EDITOR变
量,该变量的值取为系统自带的记事本:notepad。方法二,建立一个log.txt,作为日志。(一般建议用方法二,所以我下面将用方法二)。

   
为了便于在命令行下的操作,先设置svn为允许匿名帐号进行读写的操作:在仓库的conf目录下有一个文件svnserve.conf,用记事本打开,可
以看到一行:#anon-access =
read,意思为匿名用户有读的权限。将其前面的注释符#去掉。这一行即生效。再加上一行:anon-access =
write,赋予匿名用户写的操作。如图:

  
    首先,启动服务: svnserve –d –r k:\repository,该命令含义为让SVN将此目录作为仓库,并侦听客户端的请求。其中-d的作用为后台模式,而-r的作用为指定服务器的仓库路径。

  
    建立新的命令提示符,执行mkdir命令在svn创建一个test的虚拟目录:  svn mkdir svn://localhost/test1 –F k:\log.txt   如图  
  



  接着,创建一个test目录,里面新建一个text1.txt文件。:




    命令行转到test目录,执行import命令,将test上传到svn服务器。



   下面讲述checkout命令。

   首先新建一个文件夹test2,在命令行转到这个文件夹,执行:  svn checkout svn://localhost/test1。注意,check操作不需要写入log




   

   接着讲述commit命令.

   如图,更改checkout下来的text1.txt文件




在命令行执行commit命令:  svn commit text1.txt –F k:\log.txt




    最后讲述update命令:执行svm update text1.txt 取出text1.txt的最新版本。
   



到此.svn的基本命令讲完了,大家是不是觉得比较麻烦?没关系,下一篇将会介绍svn在windows下的操作.
二、window下的操作
    上一篇文章介绍了如果用命令行执行svn命令,比较繁琐,下面将介绍在windows下进行svn操作。

   
为了安全着想,一般不允许匿名用户。所以将repository\conf目录下的svnserve.conf文件的anon-access =
read和anon-access = write加上#注释掉,并将password-db =
passwd前面的#去掉。意思为使同目录下的passwd文件生效。




    在同目录下的passwd文件里创建用户:qishan = qishan123   其中等号左边是用户名,右边是密码。




   
注意:在一次登录后,SVN会将我们的登录信息保存起来存放在硬盘上的文件中,其存放位置为:C:\Documents and
Settings\[你的登录系统用户名] \Application
Data\Subversion,如果想要删除该信息,只需要将该目录中的auth文件夹删除即可。

    安装TortoiseSVN
http://tortoisesvn.tigris.org
   的下载地址如下:
http://tortoisesvn.net/downloads

    import命令

    安装成功后,新建一个文件夹,里面建一个文件,在次文件夹点击鼠标右键,出现TortoiseSVN的命令菜单,然后选择import命令。将该目录导入服务器中。纳入svn的管理之下。







宿儒服务器地址及其说明




import成功!




checkout命令

新建一个文件夹test4,点击鼠标右键,选择checklou




输入要checkout的目录。




绿色图标表示文件版本和svn服务器版本一致.




修改text2.txt文件,保存后图标变成红色,表示与服务器版本不一致.







若确认修改,使svn服务器版本的文件和你所修改的文件一直,则需要commit命令








  



commit成功,图标又变成绿色,说明svn服务器里文件的版本已经更新为和你所修改的一致。




当别人提交修改后的text2.txt后.你原先checkout的是图标变成红色。
  



如果你想更新至svn服务器最新的版本。这个时候用update命令

注意:此时应该在text2.txt所在的文件夹鼠标右键点击svn update




此时图标将变回绿色,说明你的文件版本和服务器最新版本一致。

这个时候有个地方需要注意的是,如果你修改文件后,没有commit,但是想回复以前的版本,这个时候不能用update,只能删掉这个文件,重新checkout你想要的版本。

最后讲述add命令

在checkout的文件夹里新建一个文件。




执行add命令:





        
此时图标变成蓝色,说明此文件是新增的文件,但还没在服务器里面更新。




若要是svn服务器更新次文件,则对次文件执行commit命令。然后文件图标变成绿色。





  






到此,windows下的svn操作已经描述完了。敬请期待下一篇哈!
三、整合Eclipse
    相信大部分javaee的开发人员是用eclipse作为开发工具的,前两篇文章写的是仅有SVN的基本操作,现在这篇文章将会写SVN如何整合eclipse的。让大家真正感受到SVN的好处。

    我的eclipse版本是Version: 3.4.2。本身没有内置对sub的支持,需要去下载svn插件。




    在
http://subclipse.tigris.org
找到符合自己eclipse版本的插件的下载地址。




    我下载的是
site-1.4.8.zip


    然后在eclipse下安装SVN插件。(SVN下载页面也有安装的图解教程。不过我这个版本的和它的稍有不同。)




点击ADD Site。




点击 Archive。选择下载的压缩包。




还有另外一种更方便的安装方法。svnclipse网页上给出了Eclipse update site URL:
http://subclipse.tigris.org/update_1.6.x

我们直接在这里把link输入,eclipse就会帮我们下载和安装。(由于我已经安装了,所以它提示已存在完全一样的插件)




安装成功后,重启eclipse。查看是否有Preferences->Team->SVN,有则说明安装成功。




新建一个项目。




新建一个类,写上一些代码。




在eclipse中打开SVN视图




在左边新建一个资源库位置









回到JAVAEE视图,将项目import到服务器服务器上:鼠标右键点击项目->Team->Share Project




选择SVN




使用刚才定位的仓库




在SVN视图里可以看到,项目已经导入




先写到这里,下一篇将写一些基本操作。
    上一篇写了在eclipse里如何把project import到svn服务器里面,这篇将介绍在ecipse里执行svn的基本操作。

     这个是上次在eclipse里import后的项目截图:




    发现出现了问号,意思是unversioned。我们执行commit命令。右击项目-》Team-》提交




    提交后,项目右下方的小图标变成黄色的小瓶子,说明eclipse里面项目的版本和服务器里面项目的版本一致。如图:




    既然是版本控制,那仅仅在一个eclipse里面测试svn是没有意义的。所以我在本机安装了第二个eclipse模仿同个工作组的其他用户。

    第一个eclipse简称为A,第二个eclipse简称为B。

    如图,现在B建立svn服务器连接。




然后把svn服务器里面A上传的项目checkout到B上。


   



切换到javaee试图,发现项目已经checkout成功。




在B里添加一行代码,commit




这时候我们看A,它还没提示版本出现不同,但是代码还是原来那个。
   



这时候我们可以主动去比较A里面的HelloWorld文件和版本库的最新文件。




现在版本库的HelloWorld文件多了一行代码:




此时我们在A里面执行update命令,将A的项目更新到和版本库一致。




我们再修改A里面的HelloWorld,执行commit命令




然后我们在B里面修改HelloWorld.大家注意,此时B里面的HelloWorld并没有update到A的修改.




执行commit命令




提示commit失败,所以我们只能先update.执行update命令:




我们会发现,多出了一些代码.其中.mine表示是我们自己修改的,版本库里面并没有的代码,我们只能手动删掉这些提示,如图:




再执行commit命令.




此时还是提示错误,再看一下文件,会发现多出了三个文件.



            
执行Team->标记为解决,消除这三个文件.




再次执行commit命令,终于成功了.




此时,我们可以把HelloWorld作为稳定文件,对其进行锁定.Team->锁定




此时,图标变成灰色的勾.




在解锁之前,不能再对其进行任何的修改操作.

我们对A惊醒update的操作.

若要将文件恢复到update之前的版本,先将HelloWorld解锁,然后Team->还原




若要将HelloWorld恢复到以前提交的版本,右键点击文件,replace with->Local History




选择我们需要的版本,可以查看两者的代码,然后replace




大家去eclipse的工作目录会发现,svn版本控制的项目子目录下都会有一个.svn的隐藏文件夹,如果我们要导出没有.svn的文件夹的项目,可以在项目里Team->导出




到此,eclipse下运行svn的基本命令已经讲完.
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21344/showart_2134232.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP