|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/ R9 P- s7 M4 k, F& R
一个简单的命令: sudo apt-get install subversion0 N! E( ]- R% k6 W% _' S, x
4 H5 J0 B6 m/ C4 f* Q
假设你的项目工作路径(你刚开始建立的项目工作路径,没有进行过任何svn操作)为:/home/zzm/myproject8 [- B$ G$ {1 T; {
3 ~7 K5 A2 Z# ^$ Q
#建立一个名为 myproject 的 repository2 \* O& X' W& Y5 f
svnadmin create /home/zzm/svn-repo/myproject' `4 y2 q6 y. C$ S8 p; h5 v' }3 M" W
7 {" u/ R- U& p. c/ N1 Y9 ^( s* I#把 /home/zzm/myproject 下的内容导入到svn的版本库中,并建立一个本项目的版本库,版本号是 1。
5 i+ ]0 @. U# } u( lsvn import -m "这是大爷的项目的第一个版本,刚刚导入的" /home/zzm/myproject file:///home/zzm/svn-repo/myproject" N5 @& v! u9 x
- T6 Y" M2 B1 u+ N$ H# h
现在我想跟你说一个概念,就是svn中的working copy,实际上我们在上面一共建立了两个文件夹,一个是你的项目文件夹:/home/zzm/myproject,另一个是你的项目的版本库文件夹:/home/zzm/svn-repo/myproject,这两个文件夹都不是所谓的working copy,真正的working copy是负责直接和版本库进行同步和记录操作的,在working copy文件夹内,有一个隐藏的.svn文件夹。通常我都不是在working copy文件夹里面直接操作,而是另一个地方编辑文件等,然后把在另一个地方改动的东西直接拷贝到working copy里面,然后执行commit命令进行版本的维护。要建立你的working copy只有使用checkout命令:# n. A$ t0 g. m2 P/ h. C
8 i8 G" s0 U9 I6 b5 {
#建立一个名为 my_working_copy 的 working copy7 k2 E: d4 z* @
svn checkout file:///home/zzm/svn-repo/myproject my_working_copy% C, D! B+ j6 P+ }
(根据你文件多少会有很多的输出,最后会告诉你当前你checkout的版本)
5 \- j J! A, E2 Z- Y1 p7 Q U" ^& q( J0 ]. p
#实际上你可以使用checkout命令获得项目的任意一个版本的全部内容,执行命令:7 k3 T( c$ U& n; E Q# y: ?
svn checkout file:///home/zzm/svn-repo/myproject my_working_copy_version_number -r version_number
F8 Y4 ]; Q d: \/ B% ^: v(version_number即是你所要获得的项目版本的版本号,比如1,2或者3等)
. ~( O7 f* @$ B$ [
& c# G* f* }( n% S#如果你改变了你的working copy里面的内容,需要保存这次改变,即向版本库中添加一个版本,使用commit命令:$ R& B# u; o/ P
svn commit -m "大爷我添加了几张图片,更新了项目的企划"% ~ g/ ~: ?4 O) y {& a; m
(确保你终端当中的当前路径是你的working copy的路径,才能正确的执行本次命令)
& W+ W2 s) l+ ]' v8 ~& M: z6 x$ `# |( l
#经过几次commit之后,你可能有很多的版本在版本库里面,通过输入下面的命令可以查看各个版本的情况:. P$ N$ W, J' `
svn log path1 z) K0 q4 Y: z' b: M
(path是你想要查询的working copy的路径,如果你在这个路径下面输入的命令,可以省略path)
4 M9 Q+ @, \! w- i# H G6 E+ H( E) G' g o& b! |# C2 I- }
----------------------------------6 H' `/ V- Y1 r! v9 M- B
千万注意的内容:
& w+ l9 j' n5 B8 s$ i3 ~6 k. |你在你的working copy目录中作文件操作时,比如删除或移动文件,不能直接用终端当中的命令 rm, mv 来进行,这样 svn 不能追踪到文件的变化,当你使用commit命令提交的时候,你不会得到任何的结果,想要让svn追踪你的变化你必须使用 svn del 或是 svn move 来完成删除或移动的操作,比如:
2 b; g( U, X- A+ C3 c' x- `0 I: b9 j2 S Z) A. q
# 我拷贝了一个文件到working copy中,需要让svn知道我拷贝了一个文件:* g/ I& f/ x4 M' H
svn add filename: l( e* S" ~8 L3 J, N$ Q D/ d1 V
: p0 @ r8 Y) _# 其他的:: s3 m% L$ w. q+ N- P9 y5 W) _6 \
svn move filename /home/zzm/my_working_copy/new_folder/aa, ]6 m! k. Q$ z! h% K. a7 ?
svn rename filename1 filename2
$ S7 p/ h* h; z+ j! ? Fsvn del filename" Q5 s P! N& l; |* y
$ Q- g4 p$ i2 y$ o1 L2 Y
差不多了,上面的东西已经足够个人用户使用了,楼主还有什么问题的话可以回帖询问。+ l) Z. V g9 U, i: Y% o/ E
希望上面的内容对你有所帮助! |
|