svn 订阅
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 [1] 展开全文
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 [1]
信息
学    科
软件工程
应    用
软件程序开发
外文名
Subversion
优    势
速度快、安全性高等
中文名
SVN
实    质
开放源代码的版本控制系统
SVN版本控制
一个软件开发试行后,最关键的问题就是能够有效的实现软件版本系统的控制,而作为版本控制系统的核心任务,能否完成成功的查阅历史操作记录和实现协同开发才是公司研发团队关注的问题。版本控制(Version control)是项目开发与管理的标准做法,能追踪项目从开始到结束的整个过程,常被应用于软件程序开发。对编程人员而言,版本控制技术是团队协作开发的桥梁,有助于多人同步进行大型程序开发。由于在多人协作开发的模式下,每个人都向服务器提交自己的文件,就可能存在着代码被多次修改、替换的风险,但是版本控制能够在每次更新操作后进行相应的记录。一旦发生误操作,开发者能够根据服务器中的版本记录,将项目恢复到出现问题之前的其他版本。因此,借助版本控制技术,软件开发项目可以被分割为若干模块,每个模块并行地进行开发工作,从而有效地提高了整体编程效率。版本控制技术对文件进行管理主要有两种模式:Lock-Modify-Unlock(锁-修改-解锁)和Copy-Modify-Merge(拷贝-修改-合并)。在Lock-Modify-Unlock工作模式下,若用户想对某文件进行修改,必须先锁定该文件再进行修改,修改操作完成之后再对其解锁。这种文档管理模式能够有效避免多人对某文件同时进行修改而造成的冲突,但是它减少了用户并发操作。除此之外,该模式还有一个非常明显的缺点,即如果前面的用户完成修改后,忘了对文件进行解锁操作,则会导致后面想修改此文件的用户将永远处于等待解锁状态。采用这种管理模式的版本控制工具主要有Visual Source Safe(VSS)。Copy-Modify-Merge工作模式下,当某一用户想修改文件时,可以先将服务器文件update到本地端,然后在本地端对副本进行修改,修改操作完成后,再将副本commit到服务器。如果在此用户commit之前,原文件已经被其他用户修改并提交过,那么服务器上的版本号与本地端上的版本号不同,二者将产生冲突,服务器将中止提交。此用户只有将服务器上的新版本update到本地端,将其与自己修改的文件进行合并,才能重新commit到服务器。在实际编程中,文件的合并过程一般需要编程人员共同协商决定。这种“拷贝-修改-合并”虽然需要花费一定的时间,但却比“锁-修改-解锁”等待的时间短,能够增加操作的并发度,大大提高团队的编程效率。大多数版本控制系统采用的是第二种方式,如Concurrent Versions System(CVS)和Subversion(SVN),而这其中SVN是最为流行的版本控制软件,许多开源软件都采用了SVN作为源码版本控制服务器。在SVN版本控制软件的管理下,不管是在局域网还是在Internet上都可以对文件和目录进行管理,它突破了时间与空间的限制,促进了团队协作开发。 [2] 
收起全文
精华内容
下载资源
问答
  • Centos7安装svn服务 万次阅读 热门讨论
    2020-12-05 15:04:31

    Centos7安装svn

    最新更新:2020-12-09 22:38:32
    2020-11-18 16:54:08+0800 chenxizhan new

    • 在Centos上安装SVN服务器的步骤

    • 简单介绍每个安装步骤的原理

    • CentOS Linux release 7.9

    • svn, version 1.7.14

    公司项目使用svn做管理,但我用惯了git,好在有git-svn命令。
    只是以前没用过git-svn,想先找个地方练习一下,所以趁着周末在本地虚拟机上搭建了svn 服务。
    把搭建过程记录一下。

    安装

    完整的安装和启动步骤。复制并执行即可。

    # 1. 安装服务
    sudo yum install subversion
    # 2. 创建存放仓库的目录
    sudo mkdir -p /var/svn
    # 3. 创建名为 rep1 的仓库
    pth=/var/svn/rep1
    sudo svnadmin create $pth
    # 4. 添加一个访问仓库的账号密码
    #   4.1 先启用账号密码认证
    sudo sed -iE -e 's/# password-db = passwd/password-db = passwd/' $pth/conf/svnserve.conf
    #    4.2 再添加用户名 bob,密码 cpc2020*
    sudo sed '/^\[users\]/abob=cpc2020*' -i $pth/conf/passwd
    # 5. 启动服务
    sudo systemctl start svnserve.service
    #   5.1 确认服务启动成功
    sudo systemctl status svnserve.service
    # 6. 设置服务开机启动
    sudo systemctl enable svnserve.service
    

    客户端访问

    在客户端实际访问一下,测试服务是否搭建正常。

    # 1. 检出仓库
    $ svn co svn://localhost/rep1
    Checked out revision 0.
    # 2. 测试提交文件
    #   2.1
    $ cd rep1
    #   2.2 新建文件并提交
    $ touch foo
    $ svn add foo
    $ svn commit -m test # 这时会提示输入用户名和密码
    Adding         foo
    Transmitting file data .
    Committed revision 1.
    # 3. 查看提交历史
    $ svn up # 先更新
    Updating '.':
    At revision 1.
    $ svn log # 查看历史
    ------------------------------------------------------------------------
    r1 | bob | 2020-12-05 11:14:44 +0800 (六, 05 122020) | 1 line
    
    test
    ------------------------------------------------------------------------
    

    安装步骤解释

    步骤 1,2,5,6 是操作系统相关的内容。
    步骤 3,4是svn中的知识点。

    1. 安装服务

    sudo yum install subversion
    这条命令用来安装 subversion 软件包,该软件包同时包含服务器和客户端程序。

    安装完成之后,机器上会多出来 svn, svnadmin, svnserve 等命令。
    svn 是 subversion 的客户端命令行工具。
    svnadmin 和 svnserve 是服务器端程序。
    执行 svn 命令,有类似输出说明安装成功。

    $ svn --version
    svn, version 1.7.14 (r1542130)
       compiled Sep 30 2020, 17:44:04
    
    Copyright (C) 2013 The Apache Software Foundation.
    This software consists of contributions made by many people; see the NOTICE
    file for more information.
    Subversion is open source software, see http://subversion.apache.org/
    ……
    

    安装过程会在背后处理很多事情,其中一个就是“注册”了subversion服务,只不过是处于禁用状态。

    $ systemctl list-unit-files --all | grep svn
    svnserve.service                              disabled
    

    简单分析一下这个服务。

    1. centos 使用 systemd 作为 init 进程,它是个大管家。一个系统服务就是特定位置的一个 .service 文件。
    $ systemctl show svnserve.service | grep Path
    FragmentPath=/usr/lib/systemd/system/svnserve.service
    

    所以 subversion 服务对应的文件就是/usr/lib/systemd/system/svnserve.service

    1. 查看 .service 文件内容
    # 2.1 可以用 cat 命令
    $ cat /usr/lib/systemd/system/svnserve.service
    [Unit]
    Description=Subversion protocol daemon
    After=syslog.target network.target
    
    [Service]
    Type=forking
    EnvironmentFile=/etc/sysconfig/svnserve
    ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
    
    [Install]
    WantedBy=multi-user.target
    # 2.2 也可以使用 systemctl cat 命令
    $ systemctl cat svnserve.service
    # /usr/lib/systemd/system/svnserve.service
    [Unit]
    Description=Subversion protocol daemon
    After=syslog.target network.target
    
    [Service]
    Type=forking
    EnvironmentFile=/etc/sysconfig/svnserve
    ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
    
    [Install]
    WantedBy=multi-user.target
    

    .service 文件中各个字段的含义,查阅man systemd.service,或者看中文翻译:
    systemd.service 中文手册 [金步国]

    2. 创建存放仓库的目录

    sudo mkdir -p /var/svn

    svnserve.service文件内容很简单。看一下[Service]小节。

    [Service]
    Type=forking
    EnvironmentFile=/etc/sysconfig/svnserve
    ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
    

    [Service]表明这是一个系统服务,
    ExecStart 给出了启动服务的命令。
    EnvironmentFile给出了环境变量设置,cat 一下,这个文件只设置了一个环境变量 OPTIONS

    $ cat /etc/sysconfig/svnserve
    # OPTIONS is used to pass command-line arguments to svnserve.
    #
    # Specify the repository location in -r parameter:
    OPTIONS="-r /var/svn"
    

    所以启动服务实际执行的命令就会是:
    /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /var/svn
    这里的 -r /var/svn 是指定了 svn 服务存放仓库的路径。
    一个 svn 服务可以同时管理多个仓库,每个仓库就是 /var/svn 下的一个子目录。
    安装svn不会自动创建这个目录,所以需要手动创建。

    3. 创建名为 rep1 的仓库

    pth=/var/svn/rep1
    sudo svnadmin create $pth
    

    一个 svn 服务可以同时管理多个仓库,每个仓库就是 /var/svn 下的一个子目录。
    比如,如果svn服务管理了 rep1,rep2 两个仓库,则 /var/svn 下就会有两个子目录。

    $ ls /var/svn/
    rep1/  rep2/
    

    从文件系统的角度看,一个svn服务端的仓库就是 /var/svn 目录下一个具备特定结构的子目录。

    $ ls /var/svn/rep1 -F
    conf/  db/  format  hooks/  locks/  README.txt
    

    svnadmin 是服务端辅助管理工具,它可以创建空仓库。
    项目中使用的仓库一般有 trunk/, tags/, branches/ 三个子目录。这里只简单创建空的目录。
    svn 仓库布局和svn的使用参考 svn-book(svn 官网的一本书)。

    4. 添加一个访问仓库的账号密码

    #    4.1 先启用账号密码认证
    sudo sed -iE -e 's/# password-db = passwd/password-db = passwd/' $pth/conf/svnserve.conf
    #    4.2 再添加用户名 bob,密码 cpc2020*
    sudo sed '/^\[users\]/abob=cpc2020*' -i $pth/conf/passwd
    

    每个仓库下都有 conf/svnserve.conf 文件,它是所在仓库的主配置文件,账号密码和访问权限的设置都是在这里。
    该文件默认的内容提供了文件格式说明、可用的选项及其含义、选项默认值。

    默认权限设置是:允许匿名用户读取仓库,但必须有账号密码才能做提交。

    相关的设置是这两行:

    # read 权限只能读取,不能提交;write 可以读取和提交;设置为anno则禁止访问。
    # 等号两侧的空格是可选的。
    # anon-access = read
    # auth-access = write
    

    因为是默认值,所以svn就放在了注释中,如果需要修改默认行为,去掉井号,设置特定的值就行了.

    这一步骤的第一条命令执行完毕后,去掉注释(井号开头的行),有实际意义的行只有两行:

    [general]
    password-db = passwd
    

    password-db = passwd指定存放账号密码的文件是passwd

    第二条命令就在 passwd 文件中添加了一个账号。紧挨着[users]下面那一行就是。

    [users]
    bob = vhJd2bbV
    # harry = harryssecret
    # sally = sallyssecret
    

    conf/svnserve.conf 文件中还有个authz-db = authz选项,放开这一行可以开启基于仓库
    路径的访问控制(默认是对整个仓库授权),只要在 authz 文件中设置权限即可。

    5. 启动服务

    sudo systemctl start svnserve.service
    这是 systemd 工具链中的组件。

    验证服务是否成功启动:

    $ sudo systemctl status svnserve.service
    ● svnserve.service - Subversion protocol daemon
       Loaded: loaded (/usr/lib/systemd/system/svnserve.service; disabled; vendor preset: disabled)
       Active: active (running) since 六 2020-12-05 12:27:33 CST; 5s ago
    

    看到 active (running) 表示启动成功。

    6. 设置服务开机启动

    sudo systemctl enable svnserve.service

    # 创建存放svn仓库的目录
    sudo mkdir /var/svn
    # 创建一个svn仓库
    sudo svnadmin create /var/svn/rep1
    
    

    从 rep1/svnserve.conf 文件可以看到,
    默认,svn仓库允许匿名用户读取,允许登录用户完整的读/写权限。

    • 指定 authz-db 选项,可以开启基于路径的权限管理。默认是不开启的。

    让svn服务以非特权用户启动

    安装svn之后,查看 svnserve 服务是以 root 身份运行的。
    通常来说这是有安全隐患的。所以把它改成非特权用户。

    先查看 svnserve.service 的当前运行身份

    $ systemctl show svnserve.service  -p User,Group
    User=
    Group=
    

    User=表示没有指定身份,又因为该服务直接由 systemd 启动,所以svn服务的有效用户id就是root用户。
    man systemd.exec

    User=, Group= 设置进程在执行时使用的用户与组。 既可以设为一个数字形式的 UID/GID 也可以设为一个字符串形式的名称。 对于系统服务(由 PID=1 的 systemd 系统实例管理)以及由 root 运行的用户服务(由 root 用户启动的 systemd --user 用户实例管理), User= 的默认值是 “root” ,同时亦可明确将 User= 设为其他用户。 对于普通用户运行的用户服务,User= 的默认值就是该用户自身,并且禁止将 User= 切换为其他用户。 如果没有明确设置 Group= 选项,则使用 User= 所属的默认组。 此选项不影响 带有 “+” 前缀的命令。

    下面是具体的操作步骤:

    # 添加 svn 用户(系统用户)
    $ sudo useradd svn --system
    # 把相关文件的所有权转移到 svn
    $ sudo chown -R svn:svn /var/svn
    $ sudo chown -R svn:svn /run/svnserve
    
    # 对 svnserve.service 文件做一些定制
    $ sudo EDITOR=$(which vim) systemctl edit svnserve.service
    

    这里的 EDITOR=$(which vim) 是为了让 systemctl 使用 vim 编辑器打开,否则它会使用
    古老的 nano 编辑器。
    然后在编辑器界面输入如下三行内容:

    [Service]
    User=svn
    Group=svn
    
    # 通知systemd,svnserve.service 服务配置发生了变化
    $ sudo sytemctl daemon-reload
    # 重新启动服务
    $ sudo systemctl start svnserve.service
    

    到此,设置完成。

    关于 systemctl edit 命令

    为了避免和包管理软件(如yum)冲突,不应该直接编辑软件包提供的文件(如 svnserve.serivce)。
    有两种方法可以在不改动原始文件的情况下修改单元文件:创建一个优先级更高的本地单元文件
    或创建一个片段,应用到原始单元文件之上。
    systemctl edit 实际是创建了 /etc/systemd/system/svnserve.service.d/override.conf 文件,
    目录 /etc/systemd/system/svnserve.service.d/ 下的文件配置的同名选项会具有比
    /etc/systemd/system/svnserve.service 更高的优先级。
    而目录 /etc/systemd/system/svnserve.service.d/ 不是软件包的一部分,把自定义配置放在这里
    可以防止更新 svn 软件包的时候被覆盖掉。

    用 systemctl cat 可以查看最终的配置效果:

    $ sudo systemctl cat svnserve.service
    # /etc/systemd/system/svnserve.service
    [Unit]
    Description=Subversion protocol daemon
    After=syslog.target network.target
    
    [Service]
    Type=forking
    EnvironmentFile=/etc/sysconfig/svnserve
    ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
    
    [Install]
    WantedBy=multi-user.target
    
    # /etc/systemd/system/svnserve.service.d/override.conf
    [Service]
    User=svn
    Group=svn
    

    这个再看服务对应的用户和组,已经都是 svn 了。

    $ systemctl show svnserve.service  -p User,Group
    User=svn
    Group=svn
    
    更多相关内容
  • svn命令行工具

    热门讨论 2014-08-06 20:24:20
    当windows命令行不存在svn 命令时候,可以使用此安装包解决之。
  • SmartSVN注册机(支持9.1版)

    热门讨论 2016-04-29 11:03:41
    此注册机支持以下产品:Syntevo SmartCVS、Syntevo SmartSVN、Syntevo SmartSynchronize、Syntevo SmartGit等 官网下载地址:http://www.smartsvn.com/download Windows版SmartSVN下载地址:...
  • 什么是SVN,Linux环境如何安装最新版Svn服务(yum安装1.14.1)

    前言

    SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

    1、安装及卸载

    2.1 查看安装情况

    rpm -qa subversion
    

    在这里插入图片描述

    2.2 直接安装(不推荐)

    安装方式有两种,一种是yum直接安装,另外一个是通过修改yum安装的方式进行安装;

    如果直接使用yum,那么安装的默认版本为1.7.14,如下:

    2.3 最新版本安装(推荐)

    如果已经按照过了老版本,一定要进行卸载操作;

    查看版本号:https://opensource.wandisco.com/centos/
    在这里插入图片描述
    在这里插入图片描述

    1、配置WandiscoSVN

    vim /etc/yum.repos.d/wandisco-svn.repo
    

    内容如下:

    [WandiscoSVN]
    name=Wandisco SVN Repo
    baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/
    enabled=1
    gpgcheck=0
    

    其中svn-1.14表示安装的svn版本号,通过这样的方式就可以覆盖原有的yum安装版本,直接安装最新的1.4.1版本

    2、安装:

    yum -y install subversion
    

    在这里插入图片描述

    2.4 卸载

    如果服务器已经安装过了svn,通过以下命令进行卸载:

    yum remove subversion
    

    2、创建svn工作目录

    mkdir -p /opt/svn/repos/
    

    3、创建svn项目仓库

    比如:新增了一个项目名称叫做:svn-demo,创建仓库的命令如下:

    svnadmin create /opt/svn/repos/svn-demo
    

    目录结构:
    当创建完,项目仓库后,目录结构如下图所示:
    在这里插入图片描述
    在这里插入图片描述

    目录含义:

    • conf:文件夹,存放配置文件
      • authz:授权文件
      • passwd:用户信息,包含用户名与密码
      • svnserve.conf:svn配置文件,配置账号和权限文件
    • db:版本数据存储目录
    • hooks:版本库勾子目录
    • locks:存储库锁目录,用来跟踪库的访问

    4、为svn仓库设置用户权限

    4.1 新增用户

    passwd文件中,设置用户密码,格式为userName=Password,比如:

    admin=123456
    

    在这里插入图片描述

    4.2 配置用户权限

    authz文件中,设置用户权限,格式为userName=Auth

    如果设置为*=则表示其他用户无任何权限

    权限由权限目录用户映射关系组成

    • [/]: 表示用户可以访问整个目录;
    • [/test] :表示用户只能访问test目录;
    • userName=Auth:表示用户对应的权限值;

    权限值分为三类:

    • r: 表示读权限
    • w: 表示写权限
    • rw: 表示可读可写权限

    比如:

    # admin 具有读写权限,并且可以操作所有目录
    [/]
    admin = rw;
    *=
    
    # admin 具有读写权限,只能操作test目录
    [/test]
    zhangsan = rw;
    *=
    

    5、配置svnserve.conf

    vim svnserve.conf
    

    内容如下:

    [general]
    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz
    

    6、启动

    svnserve -d -r /opt/svn/repos  --listen-port=3690 --config-file=/opt/svn/repos/svn-demo/conf/svnserve.conf
    

    /opt/svn/repos为svn根目录

    测试:
    访问地址:svn://ip:3690/svn-demo,svn-demo为svn项目仓库名称;

    7、新增仓库及用户

    如果新增一个svn仓库,只需要重复上述的3、4、5、6这四个步骤即可;
    可以不用重启svn服务;

    8、配置开机自启

    1、创建svnserver.service文件:

    vim /lib/systemd/system/svnserve.service
    

    2、内容:

    [Unit]
    Description=SVN Server service  
    After=network.target
     
    [Service]
    Type=forking
    ExecStart= /usr/bin/svnserve -d -r /opt/svn/repos  --listen-port=3690 --config-file=/opt/svn/repos/svn-demo/conf/svnserve.conf
     
    [Install]
    WantedBy=multi-user.target
    

    3、开启自启与启动:

    systemctl enable svnserve.service
    
    systemctl start svnserve.service
    

    9、配置http服务(非必须)

    完成上述前8步配置后,已经可以正常使用;通过配置http服务后,可以直接在浏览器端进行访问,但是如果要使用http服务,那么需要配置额外的用户和权限;

    9.1 查看http-svn安装情况

    ls /etc/httpd/modules/ | grep svn
    

    在这里插入图片描述

    ls: cannot access /etc/httpd/modules/: No such file or directory表示没有安装

    9.2 安装

    yum  -y install mod_dav_svn
    

    在这里插入图片描述
    查看安装结果:

    ls /etc/httpd/modules/ | grep svn
    

    在这里插入图片描述

    9.3 修改subversion.conf配置

    vim /etc/httpd/conf.d/subversion.conf
    

    修改<Location />标签设置与http与svn的映射,一个<Location />标签表示一个项目仓库,比如:

    <Location /svn-demo>  
        DAV svn  
        SVNPath /opt/svn/repos/svn-demo/          
        AuthType Basic  
        AuthName "Subversion repos"
        AuthUserFile /opt/svn/repos/svn-demo/conf/httpPasswd
        AuthzSVNAccessFile /opt/svn/repos/svn-demo/conf/authz
        Require valid-user  
    </Location>
    
    • svn-demo:svn仓库名称;
    • SVNPath:svn仓库路径;
    • AuthType:认证类型;
    • AuthName: 描述名称,任意值即可;
    • AuthUserFile:这个是http协议的访问账户密码文件,通过htpasswd命令创建;
    • AuthzSVNAccessFile:http权限认证文件,与svn的默认权限设置一样;
    • Require: 需要认证用户才可以访问;

    9.4 创建第一个用户(新增后需要设置权限)

    创建命令:

    # 创建用户
    htpasswd -c -m /opt/svn/repos/svn-demo/conf/httpPasswd root
    
    • -c:创建一个加密文件;只有第一次创建账户密码时使用;
    • -m:默认采用MD5算法对密码进行加密;
    • /opt/svn/repos/svn-demo/conf/httpPasswd:为AuthUserFile配置的路径;
    • root:创建的用户名称;

    创建用户步骤:
    在这里插入图片描述

    9.5 新增、删除用户(新增后需要设置权限)

    新增用户:

    #  username:用户名, password:密码
    htpasswd -mb /opt/svn/repos/svn-demo/conf/httpPasswd username password
    

    在这里插入图片描述

    删除用户:

    # root为用户名
    htpasswd -D root
    

    9.6 设置用户权限

    authz文件中,设置用户权限,格式为userName=Auth

    如果设置为*=则表示其他用户无任何权限

    权限由权限目录用户映射关系组成

    • [/]: 表示用户可以访问整个目录;
    • [/test] :表示用户只能访问test目录;
    • userName=Auth:表示用户对应的权限值;

    权限值分为三类:

    • r: 表示读权限
    • w: 表示写权限
    • rw: 表示可读可写权限

    比如:

    /opt/svn/repos/svn-demo/conf/authz
    

    内容:

    # admin 具有读写权限,并且可以操作所有目录
    [/]
    root= rw;
    *=
    
    # admin 具有读写权限,只能操作test目录
    [/test]
    zhangsan = rw;
    *=
    

    9.7 配置httpd权限

    创建一个新的仓库后,也需要重新配置httpd权限

    chown -R apache:apache /opt/svn/repos/svn-demo/
    

    重启httpd服务:

    service httpd restart
    

    9.9 修改http端口

    默认情况下,httpd的默认的端口为80,通过修改httpd.conf进行设置端口;

    # 修改
    vim /etc/httpd/conf/httpd.conf
    
    # 内容,比如修改端口为90
    Listen 90
    

    重启httpd服务:

    service httpd restart
    

    9.9 测试

    配置http后,可以直接在浏览器中访问svn项目,比如访问svn-demo;

    地址:http://162.14.119.135:90/svn-demo/
    在这里插入图片描述

    展开全文
  • eclipse svn 插件

    千次下载 热门讨论 2012-06-12 16:11:33
    eclipse编辑器用的svn 插件,我直接从网上下的插件包,不方便上外网的童鞋有福气了
  • svn——svn commit 用法

    千次阅读 2020-10-27 22:07:56
    使用svn进行代码的提交有两种方法:一种是通过TortoiseSVN客户端界面进行提交,另一种是通过svn commit指令提交。

    转载   原文:https://blog.csdn.net/qq_39790633/article/details/103700391

    使用svn进行代码的提交有两种方法:一种是通过TortoiseSVN客户端界面进行提交,另一种是通过svn commit指令提交。

    方法一:通过TortoiseSVN客户端界面提交代码

    • 在需要提交代码的目录下右键,点击SVN Commit…

    在这里插入图片描述


    • 此时会进入SVN的Commit界面,在[Message]处填写需要备注的信息,在Changes made区域选中需要提交的文件,最后点击OK即可提交。提交后会弹出一个框提示是否提交成功。

    在这里插入图片描述
    在这里插入图片描述

    • 提交完成后若想查看是否提交成功,可以在提交目录下右键 -> TortoisesSVN -> show log 查看代码提交记录,有提交记录即为提交成功。

    在这里插入图片描述
    在这里插入图片描述


    方法二:通过 svn commit命令提交

    svn commit  path -m "Message"
    
    • path:要提交的文件路径
    • “Message”:提交文件说明

    具体提交过程如下:

    • 切换到要提交文件路径,然后执行 svn status(查看本地文件未提交的变更)

    在这里插入图片描述
    从上图可以看出本地的MainActivity.java文件和main.xml文件相对于服务器中的版本是修改过的。

    而第一行的png图片在服务器中的版本是没有的,状态显示为?则为未加到版本控制中的意思。如果此时svn commit,main.xml和MainActivity.java文件会上传,而png图片则不会上传。

    • 如果png图片也想要上传,首先要将png图片加入版本库:svn add path1 path2(多个路径)
      在这里插入图片描述
      svn add path就是将path下的文件加入到本地的版本库中,此时再次执行svn status的话会看到刚才svn add的文件前面的标记不是?而是A了,表示已经成功把此文件添加到版本控制中。

    • 最后一步提交文件:svn commit path1 path2 -m"Message"(可以提交多个路径的文件)

    在这里插入图片描述
    执行后会显示出结果,如上图,Adding就是已添加,Sending就是已替换文件。

    在完成提交之后,就可以通过 svn log 来查看提交日志信息。

    在这里插入图片描述
    可以看到刚才提交的741版本已经显示出来了。

    :如果svn status后看到有的文件已经被自己修改,或者被自己手动纳入版本控制了,但是不想commit到服务器中的话可以使用svn revert(将本地文件恢复到服务器中的同名文件)

    例子:

    svn status查看状态 此时本地文件夹中有三个服务器中没有的文件

    在这里插入图片描述
    如果想把.project文件纳入svn版本控制,执行svn add .project,然后再svn status查看状态,.project已被纳入版本控制

    在这里插入图片描述
    但是如果不想把.project文件纳入版本控制了,那么可以执行 svn revert .project(回滚到服务器上最新的版本,如果需要整个文件夹回滚,则执行 svn revert -R path

    在这里插入图片描述
    这样就可以恢复了,后面如果要提交的话再参考上面的方法一二进行操作。


    扩展:svn add 相关指令

    svn add path —— 把path路径下的文件/文件夹(里面的文件也包含)全部纳入版本控制

    svn add folder --non-recursive —— 把文件夹folder纳入版本控制,但是folder文件夹里的文件不添加(non-revursive 不递归)

    ==svn add * == —— 把当前目录所以未添加到版本控制的文件全部添加进去 (如果有文件夹是non-revursive的则不添加该文件夹里的文件)

    svm add * --force —— 把当前目录所以未添加到版本控制的文件全部添加进去(包括non-revursive的文件夹里的文件,包括和服务器中存在的相同的文件(将会覆盖))

    svn add . --no-ignore --force —— 把当前目录下所以未添加的文件(包括.project文件等,不忽略任何文件)添加到版本控制中

    展开全文
  • Idea配置SVN

    千次阅读 2022-03-10 15:43:02
    idea配置SVN 1. 配置svn.exe路径 2. 启用版本控制 VCS–enable version control integration 3. 设置Version Control Settings–Version Control 4. 在工程上右键可以看到 此时项目已经变更颜色了. 5. 提交maven...

    idea配置SVN

    1. 配置svn.exe路径
    在这里插入图片描述
    2. 启用版本控制
    VCS–enable version control integration

    在这里插入图片描述

    3. 设置Version Control
    Settings–Version Control

    在这里插入图片描述
    4. 在工程上右键可以看到
    此时项目已经变更颜色了.

    在这里插入图片描述

    5. 提交maven工程到svn仓库
    首先工程右键—subversion–share Directory ,先将工程 share到 svn服务器,先执行步骤4,再操作下图所示

    在这里插入图片描述
    点击share按钮, 默认1.8format --点击OK
    在这里插入图片描述成功后,看到弹框

    在这里插入图片描述

    此时查看仓库,里面是空的
    在这里插入图片描述
    手动取消不上传文件 , 也就是被”忽略”的文件: 以.iml;*.idea;target; 结尾的都可以去掉*
    在这里插入图片描述
    如果工程有xx.iml文件,取消提交该文件, 它属于开发工具配置文件,在项目导入ide的过程中生成的配置文件,每个人开发环境是不一样的,所以这个文件没必要提交。而且如果提交之后,出现冲突,还需要解决比较麻烦。

    6. 针对忽略提交的文件,也可以采用统一配置
    在这里插入图片描述
    7. 另外一个员工从svn检出项目(到自己电脑上)
    方式1: 直接利用小乌龟,桌面空白位置右键—检出,最方便
    方式2: 使用idea工具

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    7.1 A员工新增1个类(冲突问题)
    新增代码后,需要提交到svn,此处 该员工应该先”update”–然后再”提交” . update作用是,一定程度上避免代码冲突 , update相当于和svn服务端代码先同步一下.

    在这里插入图片描述
    当A点击”update” ,没有任何提示, 说明此时没有代码冲突, 直接提交即可

    当A点击”update”,有冲突提示,说明 A员工修改的类,B员工也同时修改了,此处需要解决冲突,然后再提交.

    为避免冲突 ,任何一个员工在提交新代码时,都要先update ,可以将其他员工提交的新代码,先现在过来.

    展开全文
  • eclipse svn 离线插件 site-1.10.13-1.8.x.zip

    千次下载 热门讨论 2016-05-15 09:51:19
    eclipse svn 离线插件 本地安装 方便快捷安装 site-1.10.13-1.8.x.zip
  • TortoiseSVN-1.9.1.26747-x64-svn-1.9.1含中文包

    千次下载 热门讨论 2015-09-21 19:24:57
    官方版svn 64位,全英文,用于集成开发,有兴趣的朋友可以下一下, 也可以去官网下载:http://tortoisesvn.net/downloads.html
  • SVN使用教程

    万次阅读 多人点赞 2021-08-31 20:54:24
    SVN使用教程 一、svn的介绍 全称Subversion,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开 发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一...
  • TortoiseSVN-1.9.5.27581-x64-svn-1.9.5 中文语言包(64位)
  • eclipse SVN_1.8.20离线安装包

    千次下载 热门讨论 2013-04-24 10:51:46
    Eclipse SVN 1.8.20 离线安装包,内有简单的安装方法,下载后需要解压
  • 什么是SVN,Docker环境如何安装Svn服务(http协议)
  • GNU开发工具——SVN简介

    千次阅读 2022-02-22 21:21:47
    一、SVN简介 SVN是Subversion的简称,是一个开放源代码的集中式版本控制系统,是CVS的改进版,采用了分支管理系统,设计目标就是取代CVS。 1、SVN服务器 SVN服务器支持linux和windows,有两种运行方式:独立...
  • 【图文详解】入职必备——SVN使用教程

    万次阅读 多人点赞 2021-07-03 14:55:51
    文章目录前言1、SVN简介2、SVN仓库3、SVN客户端4、SVN基础操作5、撤销和恢复6、添加忽略7、解决冲突8、分支9、代码暂存 前言 又是一年毕业季,不少小伙伴纷纷入职,我也找到了理想的工作。 正式进入公司后并不会像...
  • TortoiseSVN-1.9.4.27285-x64-svn-1.9.4 中文语言包(64位)工具

    千次下载 热门讨论 2016-05-11 09:41:08
    TortoiseSVN-1.9.4.27285-x64-svn-1.9.4 中文语言包(64位)
  • svn 命令行使用总结

    千次阅读 2019-04-04 10:18:49
    1、上传项目到SVN服务器上 svn import project_dir(本地项目全路径)http://192.168.1.242:8080/svn/IOS/Ben/remote_dir(svn项目全路径) -m "必填, 不填此命令执行不会成功." 注: 服务器上remote_dir若不...
  • IDEA中使用SVN IDEA配置SVN步骤

    万次阅读 多人点赞 2021-01-12 13:02:56
    Idea集成使⽤SVN 文章目录Idea集成使⽤SVN1. 配置SVN环境2. 检出Checkout项⽬3. 提交Commit代码4. 更新Update代码5. 导出import项⽬至服务器6. 版本冲突问题7. 恢复历史版本 1. 配置SVN环境 1.File —> Other ...
  • SVN使用使用教程

    千次阅读 多人点赞 2021-01-14 19:38:31
    SVN的安装与使用 前言 本人在公司孤儿式开发,是用不到svn这种工具的,但是怕突然某一天电脑坏掉,代码消失所以还是使用上代码管理工具。 之前使用过svn工具,但是由于在这家公司孤儿式的开发,几乎忘完了svn的使用...
  • SVN:本地项目与SVN项目进行关联

    千次阅读 2022-03-29 10:22:03
    SVN
  • svn客户端无法连接SVN服务器,主机积极拒绝一、出现的情况二、原因三、解决办法1. 确定SVN的地址有没有输入错误2. 被访问的SVN服务有没有启动成功;3. HTTP服务有没有启动4. 防火墙没有SVN的端口号3690的解决方法 一...
  • AnkhSVN 2.5.12128 简体中文版 (2013年09月16日)

    千次下载 热门讨论 2013-09-16 12:04:54
    AnkhSVN 2.5.12128 简体中文版 (2013年09月16日)
  • svn常用命令以及冲突解决

    千次阅读 2020-08-12 17:56:32
    例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co Linux命令行下往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) Linux...
  • SVN客户端——SmartSVN功能详解

    千次阅读 2019-05-14 16:54:34
    SmartSVN 11 for Mac是SVN客户端,SmartSVN可让您及时了解团队成员和项目的SVN活动。SmartSVN相对其他客户端更注意细节的变化,是一款非常使用的SVN客户端软件,支持标签和分支处理,操作非常简单和方便,大多数操作...
  • SVN常用命令详解

    千次阅读 2019-01-15 15:58:18
    今天翻了一下博客,突然发现好像忘了写SVN的常用命令了,现在就补充一下。 SVN常用的命令 【1】拉取代码 将代码checkout到本地,又名检出 基本格式:svn checkout 代码路径 常用格式:svn checkout ...
  • 卸载SVN

    千次阅读 2021-01-30 17:52:14
    SVN卸载
  • SVN安装及使用+SVN汉化

    万次阅读 2019-05-08 14:17:45
    第一步下载SVNSVN汉化包 SVN下载: SVN汉化语言包下载网址: 第二步安装SVN及汉化包 使用说明检出项目 导入项目 关于项目的提交 更新: 解决冲突有三种选择: 如何降低冲突解决的复杂度: 查看日志 ...
  • 如何卸载SVN

    千次阅读 2021-10-09 11:38:49
    问题:当需要格式化硬盘时,发现SVN文件总有一个进程无法关闭,所以导致SVN的安装文件无法删除也无法移动;所以无法赶紧的卸载SVN 解决:找到自己下载SVN的安装包,或者重新下载一个SVN的安装包,双击安装包,你会...
  • SVN创建分支

    千次阅读 2021-09-13 17:08:18
    2)点击需要创建分支的SVN本地文件夹,选择Branch/Tag 3)输入分支文件夹名字 方式二:Repo-Browser->copy to 1)打开Repo-Browser 2)输入Repository的URL 手动添加子文件...
  • Linux下svn服务端安装配置

    千次阅读 2021-02-03 09:22:32
    早上看到一篇文章把VC(版本控制)讲的很好,狂神聊Git,SVN是集中式版本控制中心,git是分布式版本控制,Svn配置和使用; 安装svn yum -y install subversion 输入svnserve --version 查看是否安装成功 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 315,282
精华内容 126,112
关键字:

svn