• SVN


    SVN服务器端:

    http://www.visualsvn.com/

    客户端:

    http://tortoisesvn.net/downloads

    SVN解决了:

    1.协同开发;2.远程开发;3.版本回退。

    SVN工作原理:

    1.首先SVN服务器端,安装在一个服务器上。

    2.项目经理在服务端上,新建一个项目目录。

    3.开发人员将服务端上项目的相关数据,下载到自己的开发机器中。第一次的相关操作,叫CheckOut,检出。

    4.以后,开发人员要更新服务器的数据到本地的操作,叫Update,更新。

    5.将本地的数据上传到服务器,叫Commit。

    项目经理:

    1.在SVN服务器上,建立一个项目目录;2.执行一次CheckOut操作,将项目初始数据下载到本地;3.针对项目,新建一些代码文件,定义好接口,或初始化文件,执行一次Commit操作。

    程序员:

    1.根据项目经理给得地址(形如svn://192.168.1.1/项目名),通过svn客户端,执行一次Checkout,建立与服务器相关连接以及下载相关数据。(如果以后还想更新服务器数据到本地,使用update)。

    2.开发完一个功能后,使用Commit上交。

    (来自传智播客)

    第1步,只需要在客户端操作一次;2,3步,根据开发需要,可以执行多次。


    服务器端软件安装VisualSVN-Server-x.x.x.msi

    (来自传智播客)


    服务器配置工作:

    1.创建一个项目目录

    • 首先在SVN服务上,添加一个公有的目录,例如FMOS作为项目目录。(可以存储多个项目)
    • 在FMOS目录下,创建FMOS_WPF文件夹,作为FMOS_WPF的版本仓库。
    • 直接去到SVN的安装目录下,添加FMOS文件夹,然后在FMOS目录下,在添加FMOS_WPF文件夹。
    • 创建项目版本仓库。(可以在DOS环境下,执行svnadmin create D:/SVN/FMOS/FMOS_WPF),如果创建成功,会在FMOS_WPF下,产生一些目录。
    • conf是项目的配置数据,db数据的存储目录,hooks开发过程使用同步复制,同步更新的配置,locks用于追踪用户。

    2.进行服务端监管

    svn://localhost或ip地址,访问到相关数据仓库。

    在DOS下,执行:svnserve -d -r D:/svn/FMOS/FMOS_WPF(不要关闭DOS窗口,否则相当于关闭了服务,否则客户端无法checkout)

    -d(后台运行) -r(监管目录)

    那么,当在客户端输入svn://localhost或ip地址/FMOS_WPF就能访问到。

    3.权限控制

    默认情况下,SVN服务器是不允许匿名用户上传文件到服务器端的,所以必须更改相关配置。

    在版本仓库下,conf中,authz(授权文件),hooks-env.tmpl(hooks模板文件),passwd(登录密码文件),svnserve.conf是核心配置文件。

    有一行:anon-access =read(表示可以浏览,可以更新到本地,但是不能上传到服务器)

    要删除前面#号,修改anon-access = write。


    注意:在SVN中,是没有项目的概念,只有文件仓库的概念。如果我们有多个项目,那么要创建多个文件仓库。步骤:

    1.创建一个总目录,例如:D:/SVN/Projects,用于放置多个文件仓库。

    2.使用svnadmin create D:/SVN/Projects/project1 为项目1,创建一个文件仓库;使用svnadmin create D:/SVN/Projects/project2,为项目2,创建一个文件仓库。

    3.使用svnserve -d -r D:/SVN/Projects,监管 D:/SVN/Projects下的所有文件仓库。


    客户端软件安装

    客户端安装完毕后,要重启电脑,否则SVN图标无法看到。

     安装成功标志,就是在桌面右击,看到SVN的两个工具。

    (如果安装了汉化包,可以桌面右击-TortoiseSVN-setting中设置语言)


    新建项目时,对于项目经理:

    服务器部分:

    1.如果服务器中,有D:/svn/Projects目录,用于存放所有的文件仓库,那么,使用svnadmin create D:/SVN/Projects/project1 为项目1,创建一个文件仓库。

    2.使用svnserve -d -r D:/SVN/Projects,监管 D:/SVN/Projects下的所有文件仓库。

    项目经理本机部分:

    1.在本地新建一个工作目录,然后,右键---检出(checkout,输入svn://服务器IP//project1),完成与服务的关联。(一般来说,全新的项目耗时很低,因为并没有文件上传过,只会在本地创建.svn文件夹(默认是隐藏的))。

    2.在此工作目录下,使用IDE新建一些项目,或编写一些开发文档。

    3.在此工作目录下,右击----提交,即可完成项目的v1.0版本的上传。

    对于开发人员:

    1.在本地新建一个工作目录,然后,右键---检出(checkout,输入svn://服务器IP//project1),完成与服务的关联。(如果是开发中途的话,会下载整个项目的文件,比较耗时;如果是全新的项目,那么仅能获得项目经理上传的v1.0全部文件,以及.svn文件夹)。

    2.当日编写好的代码文件,右键提交(commit)即可。如果要上传整个项目中,修改过的文件,在工作目录下,右击上传即可。

    3.次日,如果项目是多人开发的,那么要使用更新(Update)命令,将项目重新下载(其实仅仅下载更新与本机不一致的文件,由其他开发人员修改的文件),然后继续开发。

    注意:在首次CheckOut的时候

     


    常用图标:

     

    忽略功能:

     版本回退功能:版本递增上传是,仅保留增加和修改的部分。

    版本回退办法:在工作目录下(即有.svn隐藏文件的目录下),右击---TortoiseSVN----更新至版本 即可。

    版本冲突:

    1.小强和旺财都共同开发Shop项目,在9:30开始,都Update自己的项目,然后开始开发。

    2.小强和旺财都要修改index.php文件。

    3.旺财9:30分修改完index.php文件,然后commit

    4.小强10:30分修改完index.php文件,然后commit,此时,服务器面临着小强的修改后的index.php会压盖旺财在9:30粉上传的index.php。此时:

    (估计是SVN自带算法,判断是冲突还是普通的commit,毕竟commit和冲突都是存在内容不一致)

    然后,操作:

    1.删除除了index.php以外的文件。

    2.修改index.php文件。注意:

    svn会在index.php文件中,注明旺财修改的内容;如果小强觉得没有冲突的话,就应该整合进去(按编程语法);否则应该删除。

    3.最后commit。


    在多人协同开发的项目中,对于版本冲突问题:

    1.尽量避免多人开发同一程序文件。

    2.如果一定要开发同一文件那么:

    一. 沟通好开发时间,例如旺财开发完后commit这个文件,然后小强update这个文件,然后再开发,最后提交;

    二.如果一定要在同一时间开发同一文件,那么避免开发同一个函数。


    注意:在IDE中,添加新建每一个文件,都要找到对应目录,TortoiseSVN-增加。否则,是不能上传到服务器的。如果第二天更新本地,新建的文件将丢失。除非下载了IDE的SVN插件!!!

    Vs的Svn插件: https://www.visualsvn.com/visualsvn/download/

    重点:对于加入到SVN版本控制的文件,不能随便删除!!!!!要使用 右击---TortoiseSVN---删除来删除。

    将文件放到其他目录的时候,也要先复制,然后删除,放到其他目录中,再添加到SVN中。


    SVN添加账号秘密:

     

    authz文件

  • 相关阅读:
    JS基础18-网站效果
    JS基础17-网站效果
    JS基础16-轮播图的实现(二维数组实现多变量同时滚动)
    JS基础15-事件监听
    JS基础14-对DOM的增改和删除工作
    JS基础13-DOM访问表格子元素的常用属性和方法
    python之路--装饰器函数
    python之路 函数进阶
    python之路 初始函数
    python之字符编码
  • 原文地址:https://www.cnblogs.com/pylblog/p/8672113.html
Copyright © 2020-2023  润新知