linux SVN 客户端操作

一、svn客户端安装及环境配置.

果所在的linux机器上没有安装svn客户端,则首先安装svn客户端:

1. subversion-1.4.3.tar.bz2  subversion-deps-1.4.3.tar.bz2

2. 使用

tar xvfj subversion-1.4.3.tar.bz2 
tar xvfj subversion-deps-1.4.3.tar.bz2

解压这两个文件(不要乱了顺序),此时在当前目录下会出现subversion-1.4.3文件夹,

3. 进入subversion-1.4.3文件夹:

# cd subversion-1.4.3 
#./configure 
# make               #编译,如果提示错误, 则可能需要root权限 
# make install       #安装,此时可能需要root用户权限

安装好客户端之后, 默认安装目录是/usr/local/subversion.

4. 将svn命令链接到/usr/local/bin目录下(需要root权限):

ln –s /usr/local/subversion/bin/svn /usr/local/bin

测试是否已经可以在用户目录下使用svn:

svn help 如果出现命令列表,则表示已经链接成功。

5. 使用chmod命令,使 list checkout commit这三个命令脚本有执行权限:

chmod 777 list checkout commit 
cp list checkout commit /usr/bin

svn客户端安装成功

二、svn命令操作

假设svn服务端上有如下库目录:

不显示了。。。

Steven在他的用户目录中有workplace目录,他想把DemoProject签出到他的workplace目录中,并进行操作:

0、 进入workplace目录,使用checkout命令签出:

cd workplace 
checkout DemoProject    

此时注意: 如果你的登陆的linux终端登陆用户和你的svn操作用户名同名(比如都是steven),则会提示你输入svn操作用户的密码,否则会先提示你输入linux终端用户密码,然后提示你输入svn操作用户名和密码

进行完上面操作后, 在workplace目录中就会出现DemoProject目录。

1、 单个文件的操作(hello.cpp) 进入到目录DemoProject/src/demo

A) 更新到本地

svn up

B) 修改后提交到库

commit hello.cpp 
svn up

C) 新增一个文件到库(进入src/include目录)

svn up                  #更新本地工作目录 
svn add hello.h         #添加到库 
commit hello.h          #提交hello.h到库 
svn up                  #更新本地工作目录

D)删除库上一个文件(进入src/demo目录)

# svn del hello.cpp          删除库中的hello.cpp文件 
# commit hello.cpp          提交到库 
# svn up                   更新本地工作目录

2、 文件夹的操作(这里需要考虑文件夹中还有子文件夹的情况)(src目录)

A) 更新指定文件夹到本地(进入DemoProject目录)

# svn up src //则src目录及目录下的所有子文件夹更新到DemoProject目录下

B) 提交修改过的整个文件夹到库(修改了文件夹include

# svn up 
# commit include 
# svn up

C) 新增一个文件夹到库(DemoProject/lib)

进入DemoProject目录:

# svn mkdir lib             创建lib包 
# commit lib               提交到库 
# svn up                   更新本地工作目录

D)删除库上一个文件夹(demo) 进入DemoProject/src/目录

# svn up 更新本地工作目录

# svn del demo 删除demo文件夹

# commit demo 将删除提交到库

3、 本地与库之间的操作

A) 查看库上目录结构(查看DemoProject目录结构)

# list DemoProject

B) 对比本地与库上某个文件或者整个文件夹(进入src/demo目录):

# svn diff hello.cpp

C) 查看库上某个文件提交记录(什么时间、什么人提交过)

# svn log –v hello.cpp

4、 其他操作

A) 查看src/demo目录下的文件的状态(是否修改后没有提交等)

# svn st

如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。

B) 查看svn命令的帮助

# svn help update 查看update命令的帮助.

C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:

(1) 想使用项目仓库中的版本,而放弃本地拷贝的修改:

# svn revert hello.cpp

# svn up

(2) 想保留本地工作拷贝的修改,而放弃项目仓库中版本的修改:

# 当你解决了冲突的文件,就可以使用resolved

# svn resolved

# svn commit hello.cpp

D)checkout下来库的老版本

首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:

# svn log DemoProject 查看老版本,比如是4330版本

# checkout DemoProject –r 4330

 

--------------------------------------------------------------------------

其他命令

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

zlib官方网站: 
http://www.zlib.net 
上下载源码来安装zlib软件包。 
目前最新版本zlib是zlib1.2.3,安装开始; 
$wget http://www.zlib.net/zlib-1.2.3.tar.gz 
$tar -xvzf zlib-1.2.3.tar.gz 
$cd zlib-1.2.3.tar.gz 
$./configure 
$make 
$sudo make install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值