Linux下SVN命令手册
SVN命令操作手册
SVN导出(export)
• export的目录不带TSVN的绿色标记,也没有.svn目录, 是一份干净的目录。相当于复制了一份服务器中的资料, 导出的文件不受版本控制。
• • • •
svn svn svn svn )
export export export export
svn://192.168.230.140/test - -username test1(账号) -r10 svn://192.168.230.140/test - -username test1(账号) svn://192.168.230.140/test@10 - -username test1(账号) test(受版本控制的本地工作副本) work(导出副本存放的路径
SVN解决冲突(resolve)
• 产生冲突主要有两种情况,一种是分支合并时产生,一种是多个用户 对同一个文件进行了修改提交时产生。
SVN切换(SwitБайду номын сангаасh)
注意:切换后的目录要进行svn up更新,这个工作副本以下 的目录及文件不能进行递归切换。
SVN属性(Properties)
• svn proplist (plist, pl)
SVN合并(Merge)
• 合并方法: 1、用svn log -v查看分支基于主干的哪个修订号创建,记下主干基准修订号和分支最初创 建的修订号。 2、用svn diff 检查自创建起到现在的最新版本有哪些文件有修改。 eg:svn diff -r10:20 |grep Index(假设10是分支最初创建的修订号,20是要合并的版 本) 3、用svn diff 检查自从拉分支到现在最新的版本是否有修改。 eg:svn diff -r9:HEAD |grep Index (假设9是分支创建时基于主干基准修订号, HEAD为主干最新版本) 4、再比较下分支和主干两边的差异,如果有差异的文件要逐一排查。否则在用merge合并 时会有冲突产生。 eg:diff -qr branch trunk 5、如果是分支多余主干的要用svn cp 过去。如果是主干多余的要询问详情,谨慎删除 6、将会产生冲突的文件处理完成后这时可以用svn merge以目录树的形式合并。 eg: svn merge branch@10 branch@HEAD trunk(将分支的最新版本与最初版本之 间的修改合并到主干的最新版本) 7、确定合并没问题后再进行提交。
SVN命令使用手册
SVN命令使用手册修改版本记录M:修改A:添加D:删除SVN命令使用一、常用命令1.Svnadmin create创建库svnadmin create path在windows版本上:D:\>svnadmin create test2D:\>通过dir来列出目录中文件,已经包含test2,如图1所示:图1说明此时已经成功建立2.Svn import导入项目svn import project_path svn_lib_path -m “comment”举例:假设有一个工程名称unismg,代码的文件目录是unicom;A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示:图2trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。
B、我们将代码unicom放到d:\unismg\trunk\中C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg"结果如图3所示:图3这样我们就将工程代码导入svn库中管理。
此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。
有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。
之后你可以使用后续的命令来工作了。
多说一句,关于svn_lib_path的几种形式:file:///直接版本访问(本地磁盘)http://通过配置subversion的Apache服务器的WebDAV协议https://与http://相似,只不过增加了ssh协议Svn://通过svnserver服务自定义的协议Svn+ssh://与svn://相似,但是通过SSH协议封装比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是:svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg"3.Svn co: 将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co举例:svn co svn://192.168.30.251:3482/trunk/unicom下面信息就是从库中下载的代码信息。
linux下搭建SVN手册
linux下搭建SVN服务器完全手册ubuntu14.0 + ssh + yum一,安装必须的软件包.yum install subversion (SVN服务器)mysql-server (用于codestriker)httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)sendmail (用于配置用户提交代码后发邮件提醒)wget gcc-c++ make unzip perl* (必备软件包)ntsysv vim-enhanced (可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件# mkdir /home/svn2,新建一个版本仓库# svnadmin create /home/svn/project3,初始化版本仓库中的目录# mkdir project project/serverproject/client project/test (建立临时目录)# svn import project/file:///home/svn/project -m "初始化SVN目录"# rm -rf project (删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]# harry = harryssecret# sally = sallyssecretpm = pm_pwserver_group = server_pwclient_group = client_pwtest_group = test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p = pmproject_s =server_groupproject_c =client_groupproject_t = test_group[project:/]@project_p = rw* =[project:/server]@project_p = rw@project_s = rw* =[project:/client]@project_p = rw@project_c = rw* =[project:/doc]@project_p = rw@project_s = rw@project_c = rw@project_t = rw* =以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.6,修改svnserve.conf文件,让用户和策略配置升效.svnserve.conf内容如下:[general]anon-access = noneauth-access = writepassword-db =/home/svn/project/conf/passwdauthz-db =/home/svn/project/conf/authz7,启动服务器# svnserve -d -r /home/svn8,测试服务器# svn co svn://192.168.60.10/projectAuthentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for 'server_group':svn: Authorization failed ( server_group 没用根目录的访问权 )# svn co svn://192.168.60.10/projectAuthentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for 'pm':A project/testA project/serverA project/clientChecked out revision 1. ( 测试提取成功 )# cd project/server# vim main.c# svn add main.c# svn commit main.c -m "测试一下我的C 程序,看什么看,不行啊??"Adding main.cTransmitting file data .Committed revision 2. ( 测试提交成功 )三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。
Linux下SVN命令使用大全
Linux下SVN命令使用大全版本号V0.1 修订内容详细修订日期文件性质备注正在继续添加和完善...1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件、目录或符号链svn add PATH...例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)●文件、目录或符号链到你的工作拷贝并且预定添加到版本库。
它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。
●是否访问版本库否●选项--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force●例子添加一个文件到工作拷贝:$ svn add foo.cA foo.c当添加一个目录,svn add缺省的行为方式是递归的:$ svn add testdirA testdirA testdir/aA testdir/bA testdir/cA testdir/d你可以只添加一个目录而不包括其内容:$ svn add --non-recursive otherdirA otherdir通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:$ svn add * --forceA foo.cA somedir/bar.cA otherdir/docs/baz.doc…3、将改动的文件提交到版本库svn commit -m ―LogMessage― [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关)例如:svn commit -m ―add test file for my test― test.php简写:svn ci4、加锁/解锁svn lock -m ―LockMessage― [--force] PATH例如:svn lock -m ―lock test file― test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn用户操作手册
svn用户操作手册SVN(Subversion)是一个版本控制系统,用于管理文件的版本和变更历史。
以下是SVN用户操作手册:1. 检出代码:打开控制台,输入“svn checkout [服务目录] [本地目录全路径] --username 用户名 --password 密码”。
其中,[服务目录]是你要检出的代码所在的SVN仓库地址,[本地目录全路径]是你要将代码检出到的本地路径。
2. 添加新文件:使用“svn add 文件名”命令将新文件添加到版本库中。
如果要添加多个文件,可以使用通配符“.扩展名”来批量添加,例如“svn add .txt”将添加所有扩展名为.txt的文件。
3. 提交修改:使用“svn commit -m 提交信息”命令将修改的代码提交到仓库中。
其中,“-m”参数后面跟着提交信息,简要描述你做了哪些修改。
4. 更新代码:使用“svn update”命令将当前目录以及子目录下的所有文件都更新到最新版本。
如果要更新特定文件,可以使用“svn update [文件路径]”命令。
5. 比较代码:使用“svn diff”命令比较当前文件与版本库中的文件差异。
如果要比较不同版本的差异,可以使用“svn diff -r [版本号] [文件路径]”命令。
6. 分支操作:创建分支使用“svn copy [源路径] [目标路径] -m 创建分支信息”。
其中,[源路径]是你要创建分支的分支或主线的位置,[目标路径]是分支的名称。
合并分支使用“svn merge [源分支路径] [目标分支路径]”。
其中,[源分支路径]是要合并的分支的路径,[目标分支路径]是合并的目标位置。
7. 查看历史记录:使用“svn log [文件或目录路径]”命令查看指定文件或目录的历史记录。
8. 标签操作:创建标签使用“svn copy [源路径] [目标路径] -m 创建标签信息”。
其中,[源路径]是你要创建标签的分支或主线的位置,[目标路径]是标签的名称。
linux下常用的svn操作
1:checkout命令:从svn版本库中取代码时可以先查看具体代码的路径,windows下右键单击Tortoise->repo_browser 可直接查看,linux下可以输入命令:svn list 版本库地址如图:Checkout时命令是:Svn checkout 版本库地址如图:注意在目前的svn版本中必须checkout一个文件夹下来,只checkout单个文件会提示失败。
如图:若想查看svn上某个具体文件,从而决定是否要checkout当前版本下来,可以执行命令:svn cat 文件在版本库上的地址。
下载好代码后可以通过执行ll –a 命令查看文件信息,可以看到在下载好的文件夹下有一个.svn 文件夹,该文件夹是用来维护工作拷贝信息的,保证拥有该文件夹的读写权限,就可以对下载的代码进行commit等一系列操作。
如图:2:commit命令:将本地的修改工作拷贝上传到svn 服务器中,保证版本库的一致具体命令是:svn commit 要上传的文件路径–m “日志信息”如图:日志信息可以为空。
注意提交时需将该文件更新,在上传,否则出错。
若当前上传的文件不是从svn上checkout下来的文件,会提示不是工作副本,无法上传。
3:import 命令:将本地代码上传到版本库中进入到需要上传代码的目录,执行命令:Svn import 想要上传到svn的路径-m “上传的日志信息”–no-ignore如图:注意上传时需添加日志选项-m ,可以为空,并且需要添加选项—no-ignore因为svn上传时会默认屏蔽掉so .o 等文件,导致上传上去的代码不完整,若上传一半出错提示某些文件无法识别,最好将该文件的父文件夹打包上传,就可以成功传上去了。
4:log 命令查看svn版本库的日志信息,具体命令是:Svn log 查看日志信息的文件名如图:5:update命令:将当前文件更新到版本库上某个具体版本文件具体命令是:Svn update –r 要更新的版本号文件路径如图:6:add 命令:往版本库中添加新的文件add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。
SVN搭建和使用手册
在 URL of repository 一栏中输入 svn 服务器的 checkout 地址
在新的项目里面添加一个文件然后提交,查看/www/drug/ 里面有没有添加的文 件,来证实 svn 库能够同步更新到 linux 下面那个虚拟主机的没。
三、SVN 管理命令
发展开源精神,普及 Linux 教育
SVN+APACHE 整合使用手册
一、SVN 介绍
SVN 是一个版本控制工具,Subversion 的版本库(repository),就是位于服务器端,统 一管理和储存数据的地方。
要创建一个版本库,首先要确定采用哪种数据存储方式。在 Subversion 中,版本库的 数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件, 采用自定义的格式来储存,称为 FSFS。
测试域名绑定成功 4、SVN 使用
创建 svn 项目仓库
# mkdir /data/svn
创建 svn 根目录
# svnadmin create /data/svn/drug //创建项目仓库 drug
# /usr/local/svn/bin/svn import /www/drug file:///data/svn/drug -mx 教育
/houzaicun
Crazylinux 工作室
SVN 第 2 版本
SVN=/usr/local/svn/bin/svn
指定 svn 路径
WEB=/www/drug
指定 apache 虚拟主机路径
$SVN update $WEB –username www –password xywyxywy
[groups]
//这个表示群组设置
linux的svn之checkout命令
linux的svn之checkout命令linux的checkout命令是linux的svn的常用命令之一。
下面由店铺为大家搜集整理了linux的svn之checkout命令的相关知识,希望对大家有帮助!linux的svn之checkout命令常用检出命令:svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
其中 username 与 password前是两个短线,不是一个。
不指定本地目录全路径,则检出到当前目录下。
svn的checkout命令实例svn co svn://192.168.0.3/测试工具/home/testtools --username lukesvn co http://192.168.0.3/test/testapp --username lukesvn checkout svn://192.168.0.3/测试工具 /home/testtools --username lukesvn checkout http://192.168.0.3/test/testapp --username luke标注自己实验过的代码:svn checkout http://XXXX/cxb/weijifen/code/trunk/web/XXX /home/cxb/src/XXXsvn checkout http://XXXXX/cxb/weijifen/code/trunk/web/trunk . /home/cxb/src/XXX检出指定具体版本:svn co http://路径(目录或文件的全路径) [本地目录全路径] [--revision] --username 用户名 --password 密码svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] [--revision] --username 用户名svn co [--revision] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn checkout [--revision] svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名svn checkout /svn/trunk/ siphon -r r791svn checkout -r r791 /svn/trunk/ siphon检出不包括源文件夹根目录:比如我要checkout trunk/ 下面的所有文件,但是不包括trunk 文件夹我们可以在svn文件夹后面打个空格,在加个“.”就行了svn co http://192.168.1.10/svn/project/trunk/ /home/DSP-OPEN改为:svn co http://192.168.1.10/svn/project/trunk/ . /home/DSP-OPEN查看更多关于checkout参数使用的命令:svn help checkout[root@ltegr ~]# svn help checkoutcheckout (co): Check out a working copy from a repository.usage: checkout URL[@REV]... [PATH]If specified, REV determines in which revision the URL is firstlooked up.If PATH is omitted, the basename of the URL will be used as the destination. If multiple URLs are given each will be checkedout into a sub-directory of PATH, with the name of the sub-directorybeing the basename of the URL.If --force is used, unversioned obstructing paths in the workingcopy destination do not automatically cause the check out to fail.If the obstructing path is the same type (file or directory) as thecorresponding path in the repository it becomes versioned but itscontents are left 'as-is' in the working copy. This means that anobstructing directory's unversioned children may also obstruct andbecome versioned. For files, any content differences between theobstruction and the repository are treated like a local modificationto the working copy. All properties from the repository are appliedto the obstructing path.See also 'svn help update' for a list of possible charactersreporting the action taken.Valid options:-r [--revision] ARG : ARG (some commands also takeARG1:ARG2 range)A revision argument can be one of:NUMBER revision number'{' DATE '}' revision at start of the date'HEAD' latest in repository'BASE' base rev of item's working copy'COMMITTED' last commit at or before BASE'PREV' revision just before COMMITTED-q [--quiet] : print nothing, or only summary information-N [--non-recursive] : obsolete; try --depth=files or --depth=immediates--depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity')--force : force operation to run--ignore-externals : ignore externals definitionsGlobal options:--username ARG : specify a username ARG--password ARG : specify a password ARG--no-auth-cache : do not cache authentication tokens--non-interactive : do no interactive prompting--trust-server-cert : accept unknown SSL server certificates withoutprompting (but only with '--non-interactive')--config-dir ARG : read user configuration files from directory ARG--config-option ARG : set user configuration option in the format:FILE:SECTION:OPTION=[VALUE]For example:servers:global:http-library=serf知识扩展:check out跟check in对应,export跟import对应check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit 操作。
linux ubuntu下svn命令使用指南
Linux ubuntu下svn的命令使用指南Svn简介:Svn的全名是Subversion,它使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。
在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为工作副本)。
在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。
这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
Subversion是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。
不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。
此外,它支持非ASCII文本和二进制数据,所有这一切都使Subversion不仅对传统的编程任务非常有用,同时也适于Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域.Subversion的官方网站是:/大部分的发行版都已经提供Subversion套件,ubuntu下安装subversion客户端:sudo apt-get install subversion使用SubversionSubversion一般使用两种后台服务模式:一种是其自己实现的svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn模块,由Apache http服务器来实现,然后通过HTTP或HTTPS协议来访问。
1、通过svn协议访问svn协议客户端若要通过svn协议访问仓库,必须在存放仓库的机器上运行svnserve服务程序。
启动该程序后,会监听在3690端口,以响应客户端的访问工作。
2、通过HTTP协议访问版本库通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活。
linux环境svn使用方法
linux环境svn使用方法
一、SVN简介与安装
1.SVN(Subversion)是一个开源的版本控制系统,用于管理分布式团队之间的源代码。
2.安装SVN:在Linux环境下,可以通过软件包管理器(如apt、yum 等)安装SVN。
二、配置SVN客户端
1.设置SVN代理:在客户端机器上配置SVN代理,以便访问远程仓库。
2.配置SVN用户名和密码:在客户端机器上设置SVN用户名和密码,以备后续使用。
三、创建与克隆仓库
1.创建本地仓库:在本地机器上创建一个新的SVN仓库。
2.克隆远程仓库:通过SVN客户端克隆远程仓库到本地机器。
四、提交与更新代码
1.提交代码:将本地仓库的修改提交到远程仓库。
2.更新代码:从远程仓库拉取最新代码到本地仓库。
五、合并与解决冲突
1.合并代码:将不同团队成员的修改合并到同一个分支。
2.解决冲突:在合并过程中遇到冲突时,学会使用SVN的冲突解决机制。
六、团队协作与权限管理
1.创建分支:为不同团队成员创建单独的分支,以便并行开发。
2.权限管理:通过SVN对仓库和分支进行权限控制,保障团队协作的安全性。
七、常见问题与解决方法
1.无法连接远程仓库:检查网络连接、SVN服务器配置等问题。
2.代码冲突:使用SVN的冲突解决机制,或切换到其他分支进行开发。
八、实战案例分享
1.以实际项目为例,分享SVN在团队协作中的具体应用。
2.介绍SVN在不同场景下的优势和劣势。
通过以上步骤,您可以更好地在Linux环境下使用SVN进行版本控制和团队协作。
svn linux下常用命令
在Linux下使用Subversion(SVN)进行版本控制,你可以使用以下常用命令:1. `svn checkout`:从服务器上检出(checkout)一个目录,作为你本地的副本。
语法为`svn checkout path`,其中`path`是服务器的目录路径。
例如:`svn checkout svn://192.168.1.1/pro/domain`。
2. `svn update`:将本地的目录更新到最新的版本。
如果在提交的时候提示过期的话,是因为冲突,需要先`update`,修改文件,然后清除`svn resolved`,最后再提交`commit`。
例如:`svn update test.php`。
3. `svn add`:将新的文件添加到版本库。
语法为`svn add filename`,其中`filename`是要添加的文件名。
例如:`svn add test.cpp`。
4. `svn commit`:将修改的内容提交到版本库。
语法为`svn commit -m "注释"`,其中`-m "注释"`是提交的注释信息。
例如:`svn commit -m "注释" test.cpp`。
5. `svn lock`:给文件加锁,防止其他用户修改。
语法为`svn lock -m "注释" path`,其中`path`是要锁定的文件路径,`-m "注释"`是锁定的注释信息。
例如:`svn lock -m "注释" test.cpp`。
6. `svn unlock`:解锁文件,允许其他用户修改。
语法为`svn unlock path`,其中`path`是要解锁的文件路径。
例如:`svn unlock test.cpp`。
7. `svn status`:查看文件或者目录状态。
可以查看正常状态(例如`svn status path`)和详细状态(例如`svn status -v path`)这些是Linux 下使用Subversion 的常用命令,可以根据实际情况选择适合的命令来操作。
linux下svn的import命令
linux下svn的import命令linux svn的import命令主要是将文件导入版本库的功能。
下面由店铺为大家搜集整理了linux svn的import命令的相关知识,希望对大家有帮助!linux svn的import命令svn import是将未版本化文件导入版本库的最快方法,会根据需要创建中介目录。
svn import不需要一个工作拷贝,你的文件会直接提交到版本库,这通常用在你希望将一组文件加入到Subversion版本库时,例如:linux svn的import命令实例1)首先,服务器管理员在SVN服务器上创建项目版本库newrepos$ svnadmin create /usr/local/svn/newrepos2)然后,在客户端使用svn命令把本地文件导入到服务器上的项目版本库$ svn import mytree file:///usr/local/svn/newrepos/some/project -m "Initial import"Adding mytree/foo.cAdding mytree/bar.cAdding mytree/subdirAdding mytree/subdir/quux.hCommitted revision 1.在上一个例子里,将会拷贝目录mytree到版本库的some/project下:$ svn list file:///usr/local/svn/newrepos/some/projectbar.cfoo.csubdir/注意,在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,你还是需要运行svn checkout导出一个工作拷贝。
推荐的版本库布局尽管Subversion的灵活性允许你自由布局版本库,但我们有一套推荐的方式,创建一个trunk目录来保存开发的“主线”,一个branches目录存放分支拷贝,tags目录保存标签拷贝,例如:$ svn list file:///usr/local/svn/repos/trunk/branches/tags。
SVN使用手册(简易版)
SVN使用手册——命令行模式1SVN概述SVN的全称Subversion,和VSS一样用来有效地管理代码和版本。
同样我们可以进行修改、对比版本、获得版本的历史信息等操作。
1.1 SVN使用环境及安装SVN的使用环境:SVN可在Linux系统使用,安装系统时如果选择了自带Subversion,无需安装即可使用命令行。
Windows系统需安装Subversion以便在命令行中使用SVN命令;也可安装TortoiseSVN(“小乌龟”),不用敲SVN命令直接通过右键菜单执行。
目前北研所的SVN使用基于TCP/IP协议的Apache服务器,使我们可以通过http地址来访问版本库。
平台Linux系统Windows平台操作方法命令行浏览器命令行界面/右键浏览器安装方式安装Linux的时候选择“开发用”则自带,否则需另安装SVN包。
无需安装,直接在地址栏输入版本库的http地址安装Subversion安装TortoiseSVN(“小乌龟”)无需安装,直接在地址栏输入版本库的http地址优缺点能查看最新及历史版本,能修改只能查看最新版本,不能修改能查看最新及历史版本,能修改能查看最新及历史版本,能修改,右键直接操作。
只能查看最新版本,不能修改本文介绍在Windows平台下SVN命令行工具svn的使用。
安装文件:Subversion ——svn-1.4.6-setup.exe TortoiseSVN——TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.rar文件的具体地址,请参考下文“2.1”章节的介绍。
1.2SVN工作原理说明1.2.1版本库(repository)SVN所有的数据都存储在版本库中并被任意客户端用户分享。
客户端用户通过网络连接到版本库,读写这些文件并使其他人可以看到这些修改。
1.2.2工作拷贝(workcopy)工作拷贝是版本库中文件和目录在本地的映射。
用户并行工作,各自修改本机的私有目录和文件,最终把修改“提交”至版本库成为最终的版本。
linux下搭建SVN
linux下搭建SVN查看系统下有没有安装过⽼版本的svn:rpm -qa subversion,如果没安装过则什么都不显⽰如果有⽼版本先运⾏⼀下yum -y remove subversion,删除⽼版本。
第⼀步:通过yum命令安装svnserve,命令:yum -y install subversion此命令会全⾃动安装svn服务器相关服务和依赖,安装完成会⾃动停⽌命令运⾏若需查看svn安装位置,可以⽤命令:rpm -ql subversion第⼆步:创建版本库⽬录(此仅为⽬录,为后⾯创建版本库提供存放位置,subversion默认是把/var/svn作为数据根⽬录的,开机启动默认也是从这⾥):mkdir /var/svn/svnrepos第三步:创建svn版本库在第⼆步建⽴的路径基础上,创建版本库:svnadmin create /var/svn/test(test为⽬录(项⽬或版本库)名称,后⾯checkout项⽬时会⽤到。
)创建成功后,进⼊test⽬录下,可以看见如下⽂件信息:cd /var/svn/testconf:是这个仓库配置⽂件(仓库⽤户访问账户,权限)format:是⼀个⽂本⽂件,⾥边只放了⼀个整数,表⽰当前⽂件库配置的版本号hooks:放置hook脚步⽂件的⽬录locks:⽤来放置subversion的db锁⽂件和db_logs锁⽂件的⽬录,⽤来追踪存取⽂件库的客户端第四步:配置修改进⼊conf,conf⽬录下,⼀共存放三份重要的配置⽂件,如下:authz:负责账号权限的管理,控制账号是否读写权限passwd:负责账号和密码的⽤户名单管理svnserve.conf:svn服务器配置⽂件修改svnserve.conf:vim svnserve.conf原始⽂件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:[general]anon-access = none #控制⾮鉴权⽤户访问版本库的权限auth-access = write #控制鉴权⽤户访问版本库的权限password-db = passwd #指定⽤户名⼝令⽂件名,即访问时要输⽤户名和密码realm = test #指定版本库的认证域,即在登录时提⽰的认证域名称,改成⾃⼰的版本库修改authz⽂件信息:vim authz在⽂件内容的末尾,添加如下:rw表⽰赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这⾥如果斜杠反了,authz-db = authz ⼀直会提⽰“认证失败”第⼀种⽅式:单个添加:# 按账号分权限[test/]admin = rwtest = r第⼆种⽅式(后⾯采⽤此⽅式配置):⽤户分组,再设权限[groups]# 按⽤户组分权限admin = admin,admin1 # admin为⽤户组,等号之后的为⽤户test = test1, test2 # test为⽤户组,等号之后的为⽤户[/] # 表⽰svn仓库⽬录(/var/svn/test),test: 对应前⾯配置的realm = test@admin = rw # 表⽰admin组对仓库(/var/svn/test)⽬录有读写权限,r为读,w为写@test = r # 表⽰test组的⽤户对对仓库(/var/svn/test)⽬录只有读的权限[/test1] # 表⽰test1⽬录(/var/svn/test/test1)@test = rw # 表⽰test组对test1⽬录有读写权限* =备注:版本库的⽬录格式如下:[<版本库>:/项⽬/⽬录]@<⽤户组名> = 权限<⽤户名> = 权限其中[]內容有許多写法:[/],表⽰根⽬录及其⼀下的路径,根⽬录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表⽰对全部版本设置的权限[test:/],表⽰对版本库test设置权限;[test:/svnadmin],表⽰对版本库test中的svnadmin项⽬设置权限;[test:/svnadmin/second],表⽰对版本库test中的svnadmin项⽬的⽬录设置权限;权限的主体可以是⽤户组,⽤户或者*,⽤户组在前⾯要以@开头,*表⽰全部⽤户权限分为:r ,w, rw和null ,null空表⽰没有任何权限。
linux下安装svn详解
前言SVN服务器有2种运行方式:独立服务器和借助apache。
2种方式各有利弊,独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议。
这是比较快捷的SVN服务器配置方法。
本次安装时使用的是独立用品方式。
SVN存储版本数据也有2种方式:BDB和FSFS。
因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点,我安装时也使用的是FSFS方式。
一下载工具1. subversion-1.6.17.tar.gz2. subversion-deps-1.6.17.tar.gz这两个包可以直接到CSDN去下载,版本要一样,都是必须下载的,否则单独下载第一个包编译时就会提示缺少模块。
这两个包下载解压后会解压到同一个目录下,不需要特别指定。
二解压安装1. 解压两个包:在此之前,我已经创建了一个用户svnadmin专门用来安装管理svn的,就解压在/home/svnadmin/目录下tar -xzvf subversion-1.6.17.tar.gztar -xzvf subversion-deps-1.6.17.tar.gz2. 编译安装./configure --prefix=/home/svnadmin/subversion --without-berkeley-db //prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库//在这一步有可能不成功,是因为有一些依赖的软件没装,具体见下面“遇到的问题”makemake install//也许要sudo,看情况3. 查看是否安装成功/home/svnadmin/subversion/bin/svnserve --version//如果出现SVN的版本则证明安装成功三添加环境变量可以在/etc/profile中添加,这是全局的。
其实最好是专门添加一个svnadmin 用户,在~/.bashrc中添加即可:exprot PATH=$PATH:/home/svnadmin/subversion/bin四建立仓库1. 创建目录mkdir -p /home/svnadmin/svndata/repos1加上参数P,是如果没有父目录则自动创建注意: /home/svnadmin/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。
Linux部署SVN详解(含备份与还原)
Linux部署SVN详解1安装操作系统安装系统采用CentOS-6.2/Database Server2安装配置apache与SVN1)数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到)a)apr-1.3.9-3.el6_1.2.i686.rpmb)apr-util-1.3.9-3.el6_0.1.i686.rpmc)httpd-2.2.15-15.el6.centos.i686.rpm依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpmd)sqlite-3.6.20-1.el6.i686.rpme)subversion-1.6.11-2.el6_1.4.i686.rpm依赖文件:neon-0.29.3-1.2.el6.i686.rpmneon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm安装libproxy命令:三个包同时安装rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpmf)mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm安装后将生成文件:/etc/httpd/conf.d/subversion.conf2)修改apache(即httpd)配置文件#vi /etc/httpd/conf/httpd.conf执行上述命令后,对文件进行以下修改:ServerName localhost:80localhost表示自己的IP地址(找到上面一行并做类似修改后保存退出)#service httpd start#chkconfig httpd on文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。
linux下svn的配置及svn常用命令
linux下svn的配置及svn常用命令SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。
右图是一个svn的工作流程,它可以很方便用户的代码编写。
1.首先安装SVN:”sudo apt-get install subversion”.查看svn的版本和确定是否安装成功:”svnserve –version”.2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。
这里说明一下:版本库之间是独立的。
(下图为msm的目录)3.增加用户修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。
包括只读r,读写rw。
没有列出的用户,则不允许访问。
还可以对用户分组,列子如下用户组格式:[groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:[<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>,其中,方框号内部分可以有多种写法:/,表示根目录(仓储目录)及以下。
根目录是svnserve启动时指定的,我们指定/opt/svndata。
这样,/就是表示对全部版本库设置权限。
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
下图是我增加的用户组:(注意:等号后留有空格)增加后:4.修改用户密码添加用户后就要为用户设置密码了,打开conf/passwd文件:输入格式为,[users]<用户1> = <密码1> 如: admin = admin<用户2> = <密码2> 如: username2 = password2…...左边是我的添加:5.启动svn对用户权限、密码的控制需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。
linux svn客户端安装及使用
测试是否已经可以在用户目录下使用svn:
svn help 如果出现命令列表,则表示已经链接成功。
5. 使用chmod命令,使 list checkout commit这三个命令脚本有执行权限:
chmod 777 list checkout commit
cp list checkout commit /usr/bin
# svn up 更新本地工作目录
D)删除库上一个文件夹(demo) 进入DemoProject/src/目录
# svn up 更新本地工作目录
# svn del demo 删除demo文件夹
# commit demo 将删除提交到库
3、 本地与库之间的操作
A) 查看库上目录结构(查看DemoProject目录结构)
# svn st
如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。
B) 查看svn命令的帮助
# svn help update 查看update命令的帮助.
C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:
B) 提交修改过的整个文件夹到库(修改了文件夹include
# svn up
# commit include
# svn up
C) 新增一个文件夹到库(DemoProject/lib)
进入DemoProject目录:
# svn mkdir lib 创建lib包
# commit lib 提交到库
D)checkout下来库的老版本
首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:
SVN命令大全
目录1、将文件CHECKOUT到本地目录 (2)2、往版本库中添加新的文件 (2)3、将改动的文件提交到版本库 (2)4、加锁/解锁 (2)5、更新到某个版本 (2)6、查看文件或者目录状态 (2)7、删除文件 (3)8、查看日志 (3)9、查看文件详细信息 (3)10、比较差异 (3)11、将两个版本之间的差异合并到当前文件 (3)12、SVN帮助 (3)13、版本库下的文件和目录列表 (4)14、创建纳入版本控制下的新目录 (4)15、恢复本地修改 (4)16、代码库URL变更 (4)17、解决冲突 (4)18、输出指定文件或URL的内容。
(5)1、将文件CHECKOUT到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件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 ci4、加锁/解锁svn lock -m “LockMessage” [--force] PATH例如:svn lock -m “lock test file” test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux下SVN操作命令手册
1. 创建版本库(服务器端或本地创建版本库)
# mkdir SVN 在根目录下/root 创建空文件SVN
# cd SVN 进入SVN文件目录下
# svnadmin create --fs-type fsfs MyNewRepository //创建版本库MyNewRepository
# cd MyNewRepository 进入MyNewRepository文件目录下
注:svnadmin是有用的subversion系统管理命令,使用svnadmin help查看在线帮助信息。
subversion的手册推荐的项目目录结构,
project/
+ branches/
+ tags/
+ trunk/
+ dir1/
+ file1
+ file2
+ dir2/
2. 导入、导出文件或项目
svn import/export svn://192.168.10.81/ecu
svn import project file:///repository_name/project -m "Comment"
svn import project http://host/svn_dir/repository_name/project -m "Comment"
检出文件或项目
svn checkout(co) --username *** --password *** svn://192.168.10.81/ecu //远程服务器检出
svn checkout file:///home/xie/repositoryname/project/trunk project //本地服务器检出
3. 将新的代码或文件提交到版本库
a. svn add file //将文件标记为要增加的. 例如:svn add test.php(添加test.php)
b. svn commit(ci) filename –m “logmessage” [-N] [–no-unlock] path //如果选择了保持锁,就使用–no-unlock开关
4. 加锁解锁
svn lock PATH -m “LockMessage“ [–force] //例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5. 更新本地副本到某个版本
svn update(up) filepath –r m(版本m)
例如:
svn update //如果后面没有目录,默认将当前目录以及子目录下所有文件都更新到最新版本
svn update test.php -r 200 //将版本库中的文件test.php还原到版本200
svn update test.php //更新与版本库同步。
如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit
6、查看文件或者目录状态
a. svn status(st) path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
b. svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
7、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.10.81/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 test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info filepath
例如: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
标签和特殊版本项目
使用copy命令,用于创建某个特定版本的快照(snapshot)
svn copy svn://192.168.10.81/repos/project/trunk svn://192.168.10.81/repos/project/tags/1.0.0
查看某个版本的内容
svn list svn://192.168.10.81/repos/project/tags/1.0.0
——————————————————————————
以上是常用命令,下面写几个不经常用的
——————————————————————————
13、版本库下的文件和目录列表
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。
revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。
但是它不会恢复被删除的目录
16、代码库URL变更
svn switch (sw) //更新工作副本至不同的URL
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH…]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。
这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。
当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
17、解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
18、输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename > filename //PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)。