zoukankan      html  css  js  c++  java
  • svn基础入门

    1.什么是svn

    svn是一种用于版本管理的工具,类似于cvs与git,但较git有一些的不足,现在逐渐被git取代。

    2.svn的安装

    下载地址:https://sourceforge.net/projects/win32svn/files/latest/download 

    安装教程:http://www.runoob.com/svn/svn-install.html

    3.版本库的访问方式

    file:///直接访问版本库

    http://通过配置svnapache服务器的webdav协议

    https:// 与http://类似,但是在http上添加了协议

    svn+ssh://与svn://相似 但通过ssh封装

    4.拷贝-修改-合并-方案与锁定-修改-解锁方案

    4.1锁定-修改-解锁方案:在一个时间段内同一个文件不能被多个人修改,只允许一个人修改。

    4.2拷贝-修改-合并-方案:svn采用的方案,合并的正确和错误需要人工去判断正确与错误,对于一些二进制文件仍需要采用锁机制,从服务仓库拷贝到私有地址后的文件属于私有空间,不会对公有空间产生任何影响。

    5.svn操作中的一些命令

    创建:在第一次提交的时候,需要采用创建的方式提交到一个仓库已经存在的仓库与之关联。

    提交:提交的前提是该项目已经与服务仓库中存在这个项目已经产生关联(需要已经存在.svn文件),提交时都是以本次版本中最高的版本为基准进行版本升级,文件夹内没有被提交的文件不会升级,仅仅是对于修改后的版本进行升级,提交是一个原子性的操作,成功就都成功,失败就都失败。

    检出:从公有空间复制到私有空间的过程。

    更新:更新可以分为几种情况,假设我没有对私有空间内的文件进行修改直接更新,那么对应更新后的版本,假如我已经修改了,但是修改的地方和需要更新修改的地方不是同一行,那么会相应的采取合并的方式更新,假如是同一行,那么会产生相应的冲突,需要相应的解决冲突。

    冲突:当发生冲突的时候会相应的产生3个文件,一个表示原来的版本,一个表示现在自己的版本,一个表示需要更新的版本,编辑完冲突以后,需要使用解决冲突后才可以提交,当使用解决冲突后3个文件也会相应的消失。

    分支和标签:标签功能是某个时刻的快照,标签是给某个特定的历史版本取一个友好的名字,以便于使用和维护,分支是创建多个并行的工作线程,在没有被修改之前不会产生一个新的副本,产生新的副本是在修改之后产生的,这也被叫做缓式拷贝

     6.svn记录是否被修改的原理

    通过一个隐藏的.svn文件来跟进。

     7.在windows的命令窗口中使用

    svnadmin create  路径 :创建服务仓库

    svnserve –r –d 路径(同上): -d表示后台运行 –r指定服务器的相对路径  含义是在后台运行服务

    svn  import svn://localhost/import (svn://localhost 表示create  路径的路径,import表示在create  路径的路径下添加import文件),在这之前需要允许匿名登录(在svn指定的create 路径下conf中senserve.conf进行修改,去掉anon-access=read前面的注释,添加anon-access=write),或者svn指定的create 路径下conf中senserve.conf进行修改,添加anon-access=none,然后去掉password-db = passwd前面的#,在passwd文件中按照文件中的例子添加账号和密码,在一次登录之后,svn会将相应的登录信息保存起来存放在c:documents and settings 登录系统的用户名application data subversion 如果想要删除该信息,只需要将该目录中的auth文件夹删除即可,passwd以键值对的形式表达 ,键表示账号,值表示密码,配置文件都需要顶格书写。在运行这个命令之前(写入),需要添加变量名:SVN_EDITOR 变量值:notepad,或者指定的方式 例如svn  import  svn://localhost/import -F G:SVNeclipseclient2log.txt, -f表示指定文件中读取日志文件。

    svn mkdir svn://localhost/project 创建一个空的文件夹。

    svn commit  文件路径 ,提交(需要已经存在.svn文件)

    其它的命令请查看 svn help  例如检出(svn  checkout svn://localhost/import,检出到当前文件夹)

    8.整合apache

    Apache的下载:http://down.admin5.com/fuwuqi/Apache_Windows.html

    Apache的安装:https://jingyan.baidu.com/article/0eb457e53c019f03f1a905c7.html

    进入svn的bin目录下复制mod_authz_svn.so与mod_dav_svn.so两个文件,拷贝到Apache的安装目录下的modules下,打开apache的安装目录下httpd.conf文件,去掉LoadModule dav_module modules/mod_dav.so以及LoadModule dav_fs_module modules/mod_dav_fs.so前面的#号注释。然后在其下添加LoadModule dav_svn_module modules/mod_dav_svn.so

    假如出现错误请将svn的bin下的libsvn_repos-1.dll,libsvn_subr-1.dll,libsvn_delta-1.dll,libsvn_fs-1.dll添加到apache的bin目录下

    然后在httpd.conf文件下添加

    <Location /svn>

    DAV svn

    SVNPath G:SVNrepositoryserve

    </Location>

    备注:G:SVNrepositoryserve已经存在的服务仓库 访问localhost:端口(配置中的listen,默认为 80,建议更改为1024以上的端口,防止已被占用)/svn(这里的svn来自<Location /svn>)。

    还可以配置访问权限以及MD5加密

    9.在eclipse中使用

    安装:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240  将这个插件复制粘贴到eclipse安装目录下的dropins文件中。

    创建服务仓库

    打开open perspective 选择svn资源库研究,切换到svn视图,然后建立相应的资源Create  SVN Repository选择创建一个资源库

    常用图标的意义

    小瓶表示与svn库一致,*号表示已经修改还未保存,?表示版本不在控制之下 C表示更新得到的数据冲突

    常用命令

    提交,检出,更新,分支与标签,冲突上面已经说明

    10.tortoisesvn的使用

    下载地址:https://sourceforge.net/projects/tortoisesvn/files/

    安装:https://jingyan.baidu.com/article/0eb457e537f9a403f1a905bf.html

    使用跟上述类似

    11.svn迁移到git上

    https://blog.csdn.net/xueshanhaizi/article/details/54929365

  • 相关阅读:
    Data truncation: Out of range value for column 'quanity' at row 问题解决方案
    nginx 提示the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    集合源码分析[3]-ArrayList 源码分析
    集合源码分析[2]-AbstractList 源码分析
    IDEA升级版本后界面出现变小,字体变细的问题解决
    集合源码分析[1]-Collection 源码分析
    kubernetes学习第一篇-k8s安装以及HelloWorld
    shiro多Realm第一次调用不生效问题
    设计模式学习(二)-简单工厂模式
    根据具体的地址解析出对应的地区码
  • 原文地址:https://www.cnblogs.com/gg128/p/9194742.html
Copyright © 2011-2022 走看看