Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64455
  • 博文数量: 15
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-22 09:09
文章分类

全部博文(15)

文章存档

2009年(15)

我的朋友
最近访客

分类: LINUX

2009-04-17 17:08:35

 
 
 
文件: subversion-deps-1.4.3.tar.bz2
大小: 2244KB
下载: 下载
 

文件: subversion-1.4.3.tar.bz2
大小: 4610KB
下载: 下载
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   拷贝到/usr/bin目录下(需要root权限)

 

到现在, 我们就可以使用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

阅读(1783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~