-
Svnserve
–
d
–
r
路径
名
+
文件名
Svn://IP
SVN
使用和
p>
SVN
常用命令
之前比较少接触
linux
,今天参考网上的资料实践了一下如
何建立
svn
仓库,包括简单的授
权设
置。
假设要建立一个
svn
项目:
new_project
一、创建
svn
仓库
去到
svn
服务的根目录,
(
这个目录
是在启动
svn
服务的时候指定的,
启
动的命令如:
svnserve
-d -r /usr/lo
cal/svnrepos
)执行创建仓库命令:
svnadmin create new_project
这样在
/usr/local/svnrepos/
里面就多了一个
new_project
目录出
来,
进入
new_project/conf/
目
录
vi
将下面几行的注释去掉
[general]
anon-access = read
#
匿名的用户可读
auth_access = write
#
有授权的用户可写
password-db = passwd #
表示
svn
用户的授权资料保存在
passwd
p>
文件里面
在<
/p>
conf/
目录里面
vi
passwd
,添加授权资料。格式如下:
[user]
your_name
= your_password
二、导入源码
(导入源码的过程不一
定要按照下面说的来做,
关于
svn
目
录管理其实可以很灵活,
适合自
己就行)
现在先准备一个临时文件夹,用来构建仓库中的基本目录结构:
mkdir temp
mkdir
temp/trunk
mkdir temp/tags
mkdir temp/branches
这时可以将
temp
目录导入的仓库中:
svn import temp
svn://localhost/new_project -m 'initial'
如果
new_project
已经开发到一定程度,我们只需要将源码导入到仓库中的
trunk<
/p>
就行了。
假设源码的根目录是
~/new_project
进入
~
目录
,把源码导入到
trunk
中:
svn import new_project
svn://localhost/new_project/trunk -m 'initial
again'
========
==================================================
============
=========
1
、将文件
checkout
到本地目录
svn
checkout path
(
path
是服务器上的目录)
例如:
svn checkout
svn://192.168.1.1/pro/domain
简写:
svn co
2
、往版本库中添加新的文件
svn
add file
例如:
svn
add (
添加
)
svn add *.php(
添加当前目录下所有的
php
文件
)
3
、将改动的文件提交到版本库
svn
commit
-m
“
LogMessage
“
[-N]
[
–
no-unlock]
PA
TH(
如果选择了保持锁,就使用–
no-unlock
开关
)
例如:
svn commit -m
“
add test file for my
test
“
简写:
svn ci
4
、加锁
/
解锁
svn lock -
m
“LockMessage“ [–
force] PATH
例如:
svn lock -m
“
lock test
file
“
svn unlock PATH
5
、更新到某个版本
svn
update -r m path
例如:
svn update
如果后面没有目录,
默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 (
< br>将版本库中的文件
还原到版本
2
00)
svn update (
更新,
于版本库同步。如果在提交的时候提示过期的话,
是因为
冲突,
需
要先
update
,修改文件,然后清除
svn
resolved
,最后再提交
commit)
简写:
svn up
6
、查看文件或者目录状态
1
)
svn status
path
(目录下的文件和子目录的状态,正常状态不显示)
【
?
:不在
svn
的控制中;
M
< br>:内容被修改;
C
:发生冲突;
A
:预定加入到版本库;
K
:被
锁定】
2
)
svn status -v
path(
显示文件和子目录状态
)
第一列保持相同,
第二列显示工作版本号,
第三和第四列显示最后一次修改的版本号和修改
人。
注:
svn
status
、
svn
diff
和
svn revert<
/p>
这三条命令在没有网络的情况下也可以执行的,
原因是
svn
在本地的
.svn
中保留了本地版本的原始拷贝。
简写:
svn st
7
、删除文件
svn
delete path -m
“delete test
fle“
例如:
svn delete
svn://192.168.1.1/pro/domain/ -m
“
delete test
file
”
或者直接
svn delete
然后再
svn ci -m
‘
delete test
file
‘,推荐使用这种
简写:
svn (del, remove, rm)
8
、查看日志
svn
log path
例如:
svn
log
显示这个文件的所有修改记录,及其版本号的变化
9
、查看文件详细信息
svn
info path
例如:
svn
info
10
、比较差异
svn
diff path(
将修改的文件与基础版本比较
)
例如:
svn diff
svn diff -r m:n path(
对版本
m
和版本
n
比较差异
)
例如:
svn diff -r 200:201
简写:
svn di
11
、将两个版本之间的差异合并到
当前文件
svn merge -r m:n path
例如:
svn merge -r
200:205
(将版本
200
与<
/p>
205
之间的差异合并到当前文件,
但是
一
般都会产生冲突,需要处理一下)
12
、
SVN
帮助
svn help
svn help ci
——————————————————————————
以上是常用命令,下面写几个不经常用的
——————————————————————————
13
、版本库下的文件和目录列表
svn
list path
显示
path
目录下的所有属于版本库的文件和目录
简写:
svn ls
14
、创建纳入版本控制下的新目录
svn mkdir:
创建纳入版本控制下的新目录。
用法
:
1
、
mkdir
PATH
?
2
、
mkdir
URL
?
创建版本控制的目录。
1
、每一个以工作副本
PATH
指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2
、每个以
URL
指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15
、恢复本地修改
svn revert:
恢复原始未改变的工作副本文件
(<
/p>
恢复大部份的本地修改
)
。
revert:
用法
:
revert PATH
?
注意
:
本子命令不会存取网络,并且
会解除冲突的状况。但是它不会恢复
被删除的目录
16
、代码库
URL
变更
svn switch (sw):
p>
更新工作副本至不同的
URL
。
用法
:
1
、
switch URL [PATH]
2
、
switch
–
relocate FROM TO
[PATH
?
]
< br>1
、更新你的工作副本,映射到一个新的
URL
,其行为跟“
svn
update
”很像,也会将
p>
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2
、改写工作副本的
URL
元数据,以反映单纯的
URL
< br>上的改变。当仓库的根
URL
变动
(
比如方案名或是主机名称变动
)
,但是工作副本仍旧对映到同一仓库的同一目录时使用
这个命令更新工作副本与仓库的对应关系。
17
、解决冲突
svn resolved:
移除工作副本的目录或文件的“冲突”状态。
用法
: resolved
PATH
?
注意
:
本子命令不会依语法来解决冲
突或是移除冲突标记;它只是移除冲突的
相关文件,然后让
PATH
可以再次提交。
< br>18
、输出指定文件或
URL
的
内容。
svn cat
目标
[@
版本
]
?如果指定了版本,将从指定的版本开始查找。
svn cat -r PREV filename >
filename (PREV
是上一版本
,
也可以写具体版本号
,
这样输出结果
< br>是可以提交的
)
本
文
来
自
CSDN
博
客
,
转
载
请
标
明
出
处
:
/wssxy/arc
hive/2009/05/27/
本
文
来
自
CSDN
博
客
,
转
载
请
标
明
出
处
:
/an
gelflying928/archive/2010/01/15/
svn
常用命令整理
2009-06-12
作者:狂风
来源:狂风的
blog
svn
命令
通常都有帮助
,
可通过如下方式查询:
$$ svn help
知道了子命令,但是不知道子命令的用法,还可以查询:
$$ svn help add
开发人员常用命令
(1)
导入项目
$$ cd ~/project$$ mkdir -p
svntest/{trunk,branches,tags}
$$ svn import svntest
https://localhost/test/svntest --message
...
$$ rm -rf svntest
我们新建一个项目
svntest
,在该项目下新建三个子目
录:
trunk
,开发主干;
bran
ches
,开发
分支;
tags
,开发阶段性标签。然后导入到版本库
test
下,然后把
svntest
拿掉。
(2)
导出项目
$$ svn checkout
https://localhost/test/svntest/trunk
<
/p>
修订版本号的指定方式是每个开发人员必须了解的,以下是几个参考例子,说明可参考
p>
svn
推荐书。
$$ svn diff --revision PREV:COMMITTED
foo.c
# shows the last
change committed to foo.c
$$
svn log --revision HEAD
#
shows log message for the latest repository commit
$$ svn diff --revision HEAD
-
-
-
-
-
-
-
-
-
上一篇:Proteus软件常见问题解决办法
下一篇:错误代码分享解析