SVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。
SVN中的一些概念 :
a. repository(源代码库)
源代码统一存放的地方。
b. Checkout (提取)
当你手上没有源代码的时候,你需要从repository checkout一份。
c. Commit (提交)
当你已经修改了代码,你就需要Commit到repository。
d. Update (更新)
当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更。
Centos 搭建SVN服务,有效的管理代码,以下三步可以快速搞定。
1、安装
[root@www ~]# yum install subversion
[root@www ~]# svn -v 判断是否安装成功 svnserve, version 1.6.11 (r934486) 出现类型提示,说明安装成功。
有了SVN软件后还需要建立SVN库。 [root@www ~]# mkdir /opt/svn/repos [root@www ~]# svnadmin create /opt/svn/repos 执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。
|
2、配置
上面的操作很简单,几个命令就搞定, 下面的操作也不难。
进入上面生成的文件夹conf下,进行配置, 有以下几个文件authz, passwd, svnserve.conf
其中authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的, svnserve是设置svn相关的操作。
2 .1先设置passwd [root@www ~]# vi passwd [users] # harry = harryssecret # sally = sallyssecret hello=123 用户名=密码
这样我们就建立了hello用户, 123密码
2.2 再设置权限authz [root@www ~]# vi authz
[/] hello= rw
意思是hello用户对所有的目录有读写权限,当然也可以限定。 如果是自己用,就直接是读写吧。
2.3最后设定snvserv.conf [root@www ~]# vi snsvserv.conf
anon-access = none # 使非授权用户无法访问 auth-access = write # 使授权用户有写权限 password-db = password #authz-db = authz # 访问控制文件 realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。 采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
|
好了,通过以上配置,你的svn就可以了。
3、连接
[root@www ~]# svnserve -d -r /opt/svn/repos 启动svn:
如果已经有svn在运行,可以换一个端口运行 [root@www ~]# svnserve -d -r /opt/svn/repos --listen-port 3391
这样同一台服务器可以运行多个svnserver
好了,启动成功后,就可以使用了。 建议采用TortoiseSVN, 连接地址为: svn://your server address (如果指定端口需要添加端口 :端口号)
连接后可以上传本地的文件,有效的管理你的代码。
|
svn 命令详解
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
分享到:
相关推荐
在Linux环境中,Subversion(简称SVN)是一个版本控制系统,用于管理软件项目中的源代码、文档等文件的版本。在没有网络连接的情况下,即离线状态下安装Linux SVN,需要提前下载好所有必要的依赖包,然后在本地进行...
在Linux环境中,Subversion(简称svn)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更。本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和...
3. "SVN使用说明.doc" - 这是SVN的基础操作指南,可能包含如何添加、提交、更新、比较文件等基本命令的说明。 4. "svn-apache安装.doc" - 这部分可能涉及将SVN与Apache web服务器集成的教程,以便通过HTTP/HTTPS协议...
Linux SVN版是针对Linux操作系统的一个版本控制工具,主要用于软件开发中的源代码管理。SVN,全称Subversion,是一个开放源代码的版本控制系统,能够跟踪文件和目录的修改历史,支持分支合并等操作,便于团队协作...
linux 搭建svn 直接根据我这个就能搭建好完全能使用 linux 搭建svn 直接根据我这个就能搭建好完全能使用 linux 搭建svn 直接根据我这个就能搭建好完全能使用 linux 搭建svn 直接根据我这个就能搭建好完全能使用 ...
在linux下的svn英文版使用手册,包括一些常用命令和基本操作
Linux SVN的安装使用笔记 .
在Linux环境中,版本控制系统Subversion(SVN)广泛用于团队协作和代码管理。为了确保数据安全,定期备份SVN库是至关重要的。本篇将详细解释如何在Linux下创建一个自动备份SVN仓库的shell脚本,并将其设置为计划任务...
linux 下 SVN 1.6.1 的安装部署流程,包含软件下载的路径。后续我会在我的CSDN中提供相关软件下载。 tag 均以 linux SVN 1.6.1 开头。
Linux SVN安装手册旨在指导用户在Linux环境中安装Subversion(SVN)版本控制系统。Subversion是一个开源的版本控制系统,用于管理文件和目录版本的历史记录,便于团队协作开发。以下是详细的安装步骤: 1. 首先,...
### Linux 下 SVN 的使用 #### 一、简介 Subversion(简称 SVN)是一种分布式版本控制系统,主要用于软件开发项目中管理源代码的历史版本。SVN 是 CVS 的替代品,在功能性和性能方面进行了改进,使得它成为了现代...
### Linux 下使用 SVN 客户端重要知识点详解 #### 一、概述 Subversion (SVN) 是一种广泛使用的版本控制系统,主要用于软件开发过程中管理源代码。在 Linux 系统中,用户可以通过命令行工具来操作 SVN,进行版本库...
本文将详细介绍如何在Linux系统下安装和使用SmartSVN安装包。 首先,你需要下载SmartSVN的Linux安装包,这里我们假设你已经得到了名为`smartsvn-7_6_4`的压缩文件。这个版本号表示的是SmartSVN的7.6.4版,它可能是...
安装完成后,你就可以在Linux环境下使用SVN客户端进行版本控制操作,如`svn co`(checkout)获取项目代码,`svn commit`提交更改,`svn update`同步更新,以及使用其他丰富的SVN命令。 总之,安装Linux版SVN全量包...
博文链接提及的是一个关于在Linux上使用SVN的博客,可能涵盖了安装、配置、使用SVN的基本操作和最佳实践。 【标签】:“源码”、“工具” 这里,“源码”指的是通过SVN管理的软件项目中的源代码文件,而“工具”则...
创建一个测试仓库,然后使用SVN客户端(如`svn`命令行或TortoiseSVN)连接并操作。 ```bash sudo svnadmin create /var/lib/svn/testrepo ``` 五、用户管理和权限控制 Subversion支持多种认证方式,包括简单的...
根据给定的文件信息,我们可以提炼出以下关于在SUSE Linux环境下配置SVN(Subversion)服务器的关键知识点,尽管原始内容提及的是在Red Hat Linux 5.5下的配置流程,但核心步骤和概念同样适用于SUSE Linux系统。...
linux下SVN的一些常用的命令,比如常用的导入导出命令
本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `yum install subversion` 安装完成后,...
SVN使用Apache HTTPD服务器作为其前端,因此我们需要配置Apache的 `httpd.conf` 文件。打开配置文件并添加以下内容: ```apacheconf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_...