SVN学习总结

上一篇 / 下一篇  2008-10-03 12:24:20 / 个人分类:配置管理

一、svn安装51Testing软件测试网*s.G2Wfg

Windows

M'~#_Cp{ `$F d-s.y0

--subversion

J+{xHdH E0

--Tortoisesvn客户端

P:Qp'[3\~+ZZ0

1.安装tortoisesvn,按提示步骤执行51Testing软件测试网 G{ V5K f

2.安装subversion时候必须在安装时选择complete,因为只有选complete后在SlikSvn\bin下才会出现svnserver.exe

U+yn%G&u,N{0

3.安装完成后,要在自己的机上建立版本库E:\svndemo\repository

D/PY Hj"x+`P0

4.sliksvn\bin下输入命令行svnserve  -d r E:\svndemo\repository

j+x*y&g6Th0

5.repository\conf\svnserve.conf文件修改权限

lP&@TPz(LNe0

这时我们先采用匿名方式登录进去将#anon-access=read改成  anon-access=write51Testing软件测试网J U_t,`i

后面第四点会讲到如何进行用户管理.51Testing软件测试网 ^c.j$Y3F_2@o1iP lf

二、建立版本库(Repository51Testing软件测试网8{6I jokw}&~ay?u

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放

p"W.W Vl%@QB/p!A0

创建SVN版本库51Testing软件测试网em+[`5W3|T
# svnadmin create E:\svndemo\repository

f,W^K?X$l| d0

数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:51Testing软件测试网*c7[!qs3c6g2m

svnadmin create就会在目录E:\svndemo\repository下创建一个版本库。我们也可以使用TortoiseSVN图形化

b ~H!W$Hq'i!Tkp0

的完成这一步:51Testing软件测试网| XS}*Cb Z
在目录E:\svndemo\repository"右键->TortoiseSVN->Create Repository here...“, 然

W#f ^e9n0

后可以选择版本库模式, 这里使用默认即可,然后就创建了一系列目录和文件。51Testing软件测试网%\#LN&B&{Q&I

三、运行独立服务器51Testing软件测试网Kr8u7H*U)T9O

在任意目录下运行:51Testing软件测试网;tH7XR*d r*i

svnserve -d -r E:\svndemo\repository
yVaS^q rtxp1C0
我们的服务器程序就已经启动了。

u;Hhj4a9?a0

四、初始化导入

w`&N]#K4r8U"xT0

来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个

VmBQ8[V2x/@0

readme.txt文件:51Testing软件测试网x'cP{9?4G8~

右键->TortoiseSVN->Import...
~4Y c cJ8}tZ/MA0URL of repository
输入“svn://localhost/trunk51Testing软件测试网j.D^vP$~d#gE
ok
B9w8i^Fs L(zL+W+q8p0
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本
51Testing软件测试网3Y4I#G+[#}1z

库中。51Testing软件测试网/q YyRebx

五、基本客户端操作

*Wm4^ eLi0

取出版本库到一个工作拷贝:

#Y,^)a E+U0v4}rKA0

来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of

"ByU:l2`%V3u%ZQ0

repository中输入svn://localhost/trunk(版本库中要拷贝的文件所在的目录),这样我们就得到了一份工作拷贝。

%o.E$ha#M&@%V[0

在工作拷贝中作出修改并提交:51Testing软件测试网}-gsh(i CPZ-c;G r

打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我51Testing软件测试网I6^ V3]$p6BC^%}

们可以运行。51Testing软件测试网c5G)Z`6CjgN6B0xN

察看所作的修改:

|%ns#Zt~ iBp0

readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。

KS?5}0D6I0

 51Testing软件测试网D-|%b!F7tj7x L_ nv

六、配置仓库,用户及权限管理

4{!H*He A2l0

SVNsvnserve对于每个仓库,有一个独立的配置文件和独立的用户、权限管理。51Testing软件测试网)Gy]:Qyc
在这里仍然要保持配置文件svnserve.conf的独立,但是用户、权限管理是用统一的一个文件来存储。
)E,m?gW1\l~0
这样方便以后的管理和维护。51Testing软件测试网,@^0L `}Q
另外要注意,即使svnserve服务已经运行,修改配置文件或者用户、权限管理文件,保存后马上生效,不需要重启服务。

8R]q9c p u0

svnserve下的配置文件51Testing软件测试网 p,c}CQ1S

E:\svndemo\repository
Eh4Z4l lFb0
├─conf
iusCE0
├─dav
6S!S2fV*A:p+yJ0
├─db
3?4fl Ppc0
│ ├─revprops51Testing软件测试网&Z p] W3Ns
│ ├─revs
\,y1b0m A*s0
│ └─transactions51Testing软件测试网\iu7lp:l
├─hooks51Testing软件测试网vX7[v(I(N~"o(m+\)|/Q
└─locks

Pw X~` i Pz t0

   conf目录下有三个文件authzpasswdsvnserve.conf

G u(w`G |Qc0

其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件

#o*V Ik8I0

password-db = passwd51Testing软件测试网c;[:Z\ V$W~
authz-db = authz
51Testing软件测试网9oI N2u {:N?[o

下面一个例子是使用用户登录,但没有给用户分组,也没有设置权限.

.p`LU^Th0

来到E:\svndemo\repository\conf目录,修改svnserve.conf51Testing软件测试网 W(| iP$h pO#@CR

# [general]
Q9BO q-r oT Y0# password-db = passwd

1\'hY9_$a0

改为:51Testing软件测试网%D'k vS$FH_

[general]
mD/v3q7H eWx0password-db = passwd
51Testing软件测试网)?q*\4e]7S

然后修改同目录的passwd文件,去掉下面三行的注释:51Testing软件测试网x,g-V9W8M*NU6S)U

# [users]51Testing软件测试网8bIM8VoW
# harry = harryssecret51Testing软件测试网7t w}'xy7j1R d([
# sally = sallyssecret
51Testing软件测试网,S9Cd+o`&NI

最后变成:51Testing软件测试网9\HdH:g

[users]51Testing软件测试网3TY.p7Anl$P
harry = harryssecret51Testing软件测试网d0Z7i'G1i
sally = sallyssecret
51Testing软件测试网'NT A!SUr"^` ?g

采用上面的修改之后,你再进行操作,这时候进行操作都需要输入用户,密码.51Testing软件测试网/P+lf)RQY

 

2~;c |oF X8^)I0

另一种方法,可以不用版本库中已经有的passwd,authz,svnserve.conf文件

r5l:k5?e(u"p%Z0iA:J0

全部自己重新创建

s#W$Wfp iI:U|0

 51Testing软件测试网p&n8i k#} Mc@

你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:51Testing软件测试网_m4_S%?"os
# vi svnserve.conf51Testing软件测试网{/ezG ~n
[general]51Testing软件测试网C;J4xy:UZ zV ^iz
anon-access = none51Testing软件测试网UO{e-?/M
auth-access = write51Testing软件测试网.t4w4C kL
password-db =svn-user.conf51Testing软件测试网IV$|9SbgP*NSDY
authz-db = svn-authz.conf

!NJ:aW)k`;_M|0

说明:51Testing软件测试网z*FU.S B
anon-access = none #
不允许匿名用户访问
KO"D(e @0auth-access = write #
通过验证的用户可以读和写51Testing软件测试网:dd9M.]V j
password-db =svn-user.conf #
用户保存文件
_f{0uV0authz-db = svn-authz.conf #
权限管理文件

sp&[s g }0

创建用户存储文件

dE;a(h4Bt*@0

# vi   svn-user.conf51Testing软件测试网5Rd"Yd[1|tvXL

设置用户帐号51Testing软件测试网:s5f4q nlE
[users]51Testing软件测试网5}-gZ#V m;R3K
harry = harryssecret51Testing软件测试网%YB1U H ^ [ Ia,`UF3I
sally = sallyssecret
fA7h%k\)W#^x5^0bote = botessecret

Cn I9s%DRE'i0

说明:51Testing软件测试网?T$Z4D"gL+r6s
[users] //
是必须的,标记为用户配置开始51Testing软件测试网.I_9OK&P$V
harry = harryssecret //harry
是用户名 ,harryssecret是密码。注意,是明文密码
,b:AiC$X a:~ s0sally = sallyssecret //
同上51Testing软件测试网3yq3~|OAk
bote = botessecret //
同上
51Testing软件测试网:k*a9uG;Q/s,n

往后所以仓库的用户都在这里记录就可以了。至于那个用户,允许访问那个仓库,在权限管理里限制。51Testing软件测试网)V,i.dd[-]0ui7D8HW

创建权限管理文件51Testing软件测试网RQB+Ea
# vi  svn-authz.conf

FV1]/N,Xrx0

设置权限管理51Testing软件测试网{f1wqmF[9D:G
[groups]51Testing软件测试网ruO8a-Zs
source1 = harry
4I,Q1O!D,@~e#P2^'h,M h0source2 = sally

jr afr(uo0

[source1:/]51Testing软件测试网&~f XbR@0p

@source1 = rw
f}j3DK.R&G0@source2 = r
51Testing软件测试网h {,Az6Qh

51Testing软件测试网-B2h(a5I8rRg:eY|)w
[source2:/]51Testing软件测试网 Y9`J v:k eW^w
@source2 = rw
]-}%dft!z/\7k0@source1=r

Nlx'A)|&dL#~ z0

 51Testing软件测试网6b|J7Xw:g*r-p+C

  对于管理多个不同的版本库,使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-dbauthz-db文件。下面是一个多版本库的目录:

Ej&[B |0

E:\svndemo\repository51Testing软件测试网U-IF)A*N/Z5X
├─project151Testing软件测试网/FO/n![ X*l)p
│ ├─conf
#w;B"jv,FWJc8w0
│ ├─dav51Testing软件测试网su]N1kn'xR:sg
│ ├─db
3q4GU0f5YG#Z_0
│ │ ├─revprops51Testing软件测试网.YOLH NKj
│ │ ├─revs
^} xO)[CL0
│ │ └─transactions51Testing软件测试网c(s7z-D(R8cJ
│ ├─hooks51Testing软件测试网%o:i \7`%F:y K
│ └─locks
E5N@`e!T`W0
└─project2
8ekKv6}(\(b(Od3\0
├─conf51Testing软件测试网 o/b*d&{;Wc,}
├─dav
g uK9Y?N*mT0
├─db
}(@,Oz;c0
│ ├─revprops
5J{HOY og7Js^0
│ ├─revs
7D0T k5qhA@-R7c8F0
│ └─transactions
V1a wu9w(o [A0
├─hooks
2r-RKa#m:~3`0
└─locks
51Testing软件测试网/`E `!f+Cy3v

Project1project2是两个不同的版本库,它们有着相同的文件结构,如果要统一管理,我们可以将它们的验证和认证文件指到一个相同的地方;在E:\svndemo\repository目录下拷贝authzpasswd,修改两个版本库的svnserve.conf文件,使其验证文件都指到E:\svndemo\repository下的authzpasswd

FHO!_V;s;@0

password-db =.. /.. /../passwd

0oGh$j,m X~] U(I0

authz-db =.. / ../../authz

)Q d!D!\q.R!wT0

修改passwd文件添加新的用户,格式为:用户名=密码  例如:user1=user151Testing软件测试网1}V0I6j(_(~

[users]51Testing软件测试网v-IR3L8A)O8fr} x:Q C

user1=user151Testing软件测试网'V&^t3W8J)O+R#E
user2=user251Testing软件测试网%_ e o E'\M }
user3=user3
*dPw\ o)@6Y0user4=user4
?.A$B8P!P0user5=user551Testing软件测试网q&}4h~4phgkd-Z
user6=user6
51Testing软件测试网%_ z D9P4tF

修改authz文件可以为用户赋予相应的访问权限51Testing软件测试网0k#nU&s0uG

[groups]
8S'_#e_+j0#
定义组信息51Testing软件测试网,P\ dIc4R;U6fB R

group1 = user151Testing软件测试网;h/jF%~4BVCf
group2 = user251Testing软件测试网 n oz5h.W
group3 = user351Testing软件测试网/|;~z!oe\
group4 = user451Testing软件测试网 u6s)W4h4B Uu^
group5 = user5
H | mf6W$VQ&Tr En B0group6 = user6

q_6e@5Sf"Ll0

 [/]51Testing软件测试网!\ \ J-}EH)t*^'` }
#
指定所有的版本库默认只读,root可读写
,q,k7{f`k(X9JK1O0* = r51Testing软件测试网x+}1TB c7]
root = rw
51Testing软件测试网OY:a!jze_*CQG

[project1:/]51Testing软件测试网/d[r!w3o kB+b8Q Y2i@
#
指定对版本库project1根目录的权限51Testing软件测试网;Qo2X8Kn f:{0M
@group1 = rw   #
读写51Testing软件测试网5HRBS4~
@group2 = r      #

,lZ$T Q/[0

[project1:/trunk]
R!n+jSK.M6A%x0#
指定对版本库project1/trunk根目录的权限,
WLR2yZ9qf.w0@group2 = rw51Testing软件测试网p L!Kpe`p
@group3 = r
51Testing软件测试网y+T!|:`"]3S4E j,aP/m

如果希望管理的目录结构中包含有中文目录,使用UltraEdit-3213.10aauthz文件另存为UTF-8BOM格式,SVN就可以对中文目录进行权限管理了!例如:51Testing软件测试网,_O R&R5J

[groups]51Testing软件测试网 kElD;H
# harry_and_sally = harry,sally
/@k3pXLU.xV BD0group1 = user151Testing软件测试网%q |+W2D%|V/^A
group2 = user2
0C.A'j)u%Y$A s/Z,|0group3 = user3
"_3U9DzvFQ0group4 = user451Testing软件测试网4y|\)N9yN
group5 = user551Testing软件测试网D0sV|qZw
group6 = user6
51Testing软件测试网4y G}1QC0S/ea0J#?

[/]51Testing软件测试网:s+`_&L]-QKM'V,I
* = r51Testing软件测试网VO8Y+V5nW
root = rw
51Testing软件测试网 VKIq T5Z{

 51Testing软件测试网7T.T+t#]Lb%QK

 [project1:/]51Testing软件测试网 { dg7o P;af
@group1 = rw51Testing软件测试网"?'MRh'_ @a5}X
@group2 = r

3viV~6T"Z0

[project1:/01项目]
F+F6]l%{ _;J^\,t)U0@group2 = rw
{eY-LFQ#Z(w`$Zp0@group3 = r

l0jG%LBI@W m0

[project1:/01项目/会议纪要]
R!q~8h:|V,B+B:K8O0@group3 = rw51Testing软件测试网7W3js8s@b\K
@group4 = r

Z(k;m wqsB1N0

[project1:/03私有分支]51Testing软件测试网P7k uY9K[1M2wU
@group4 = rw
E-d;x/C#\O0@group5 = r
51Testing软件测试网*i(Ic"}xh8S&V&ex

[project2:/]
G1vQ(rb0@group1 = rw51Testing软件测试网]G1^ qa,R0cP5C@`
@group2 = r
51Testing软件测试网V|d Y\7bi5?

[project2:/09发布包]51Testing软件测试网R t3PD.onF9Y7YM
@group2 = rw51Testing软件测试网g O1pkD ^;S`5r~
@group3 = r
51Testing软件测试网5UW^$T$u0d

[project2:/09发布包/V1.0]
`lNvr?X0@group3 = rw51Testing软件测试网 a#F i*s"F#w o
@group4 = r
51Testing软件测试网,i"Fx4Pgw)~4fB@

这样我们根据设定的权限在客户端检入检出的时候就可以针对不同的中文目录进行操作。

RqN$vz0

 51Testing软件测试网%j)De2r W A

七、SVN软件配置51Testing软件测试网'py8[3YOlv
忽略文件51Testing软件测试网0D MNr0LE
SVN[Setting][General]中,设置需要忽略的文件以便忽略掉一些临时的、无用的文件,常被忽略的文件有*.opt *.ncb *.suo *.plg *.pch *.idb *.pdb *.scc *.obj Debug Release *.o *.bin *.out *.ilk *.aps debug release *.clw *.bak。每个程序员可以根据自己的需要进行修改忽略文件,上面只是使用VC++Tornado编程时常用的一些忽略文件。
51Testing软件测试网8}"edu9eL;\S

51Testing软件测试网h,?:U$G*hK3LD3V
八、SVN仓库目录结构

&nZSH,C0`0

SVN仓库的负责人规划好仓库的目录结构。推荐的目录结构如下图所示。51Testing软件测试网9V U8mT(~k

 

Qx&uhc8j6Sc0

E:\svndemo\repository
o-Bi'M#r#X!D0
├─code51Testing软件测试网9e$Tz;T3w FV
│ ├─branch51Testing软件测试网2^tjS [;uW.V
│ │ ├─lzj_05120151Testing软件测试网:^I1Z%L ~Cy&OG a _
│ │ ├─xw_051206
tx@/_? Y)O_;@0
│ │ └─xw_051208
C!j0f&q j!y a0
│ └─trunk51Testing软件测试网{e8T.Z6x Q~E
└─doc
+p.]qn0y0   
├─branch
{/Aw FM f9i:xZ0  
└─trunk
51Testing软件测试网f(^t"v\6aqZ

51Testing软件测试网\P9~QU8n!OX
仓库的一级目录只有两个,分别为codedoc。其中,doc主要用来放置先期的文档,code主要用来放置工程的代码,也可以包含后期的文档。51Testing软件测试网 x)V}9f$u*K~`V@
51Testing软件测试网3S-K5Q O0D hJ(z5x
仓库的二级目录只可以是branchtrunk两个目录,分别存放分支与主干。trunk目录下直接存放工程文件。branch目录下包括一些子目录分别对应各个分支。
51Testing软件测试网 ](LZk9W"\8i8V8Hy_7h

F-q6le9T hK(Y6VV0

51Testing软件测试网*h2D?r]!XBr{
本地目录结构51Testing软件测试网p$u3Nh:P#ZAa#h1I
SVN仓库中取出代码时,一定不要把整个仓库取出来,而应该只取出trunk目录,或只取出branch下的某个分支目录(比如上图中的svn:\\code\branch\xw_051206)。51Testing软件测试网*L%c:X6R6`8L8kr
51Testing软件测试网,l wP w!N8t'ohd
九、合作开发方法51Testing软件测试网 Zn,B`oAi

K;`hK4z0TCZ0
合作开发基本流程
E9{?`4@4TS0
一个项目会有多个人共同合作开发完成。基本流程是:

'EV&h5V] Z0Fu%Jk'Of0

各开发成员建立自己的分支,并在此分支上开发

7K[P"z\j5f|V?K0

各开发成员把分支合并到主干上并形成较为稳定51Testing软件测试网8|a)m,`6t1S#L

各个成员重新从主干上建立新的分支,在此分支上开发(即回到第一步)51Testing软件测试网XB3f8C y sc

循环往复,直到工程结束。51Testing软件测试网x$R{Zk~;OoQ\

 51Testing软件测试网j(].m0Z3C:G `c1z

下面我用一个例子来说明合作开发的基本流程。
kR!sV }0
现在xblzj两个开发人员要共同开发一个工程onlytest

t1_3vqW VyUO0

uF#m4Zlen7} Ye6X'b0

分支的建立
`2Di(P.gf*\2Y0xb
lzj分别在onlytest这个工程中建立两个分支,分别为xb _051115lz_05111551Testing软件测试网8L5m5x*_[/fc&m
 
在这里分支命名要采用[姓名缩写_6个数的日期_后缀(可选)]的形式,比如xb_051208_1xb_051212之类的。创建完分支后我们可以看到这个工程的目录结构如下所示:
51Testing软件测试网A8hj.]8J#k+w]

├─code
kLNa;t$o F0
│ ├─branch51Testing软件测试网UOl4v*gpVJ.V6\
│ │ ├─lzj_05115
Nju\/E Fmo t@G0
│ │     └─test_SVN.txt
|5_xa8V4d0
│ │ ├─xb_05115
0z+f ]k"l"i2Y0
│ │     └─test_SVN.txt51Testing软件测试网$G$P#?u5Q3k$W'l'n
│ ├─trunk51Testing软件测试网:^rp3w~JX2M
      └─test_SVN.txt
51Testing软件测试网\)Ef&kgrQ

└─doc
u9E.fz+g!Y0   
├─branch51Testing软件测试网)De/_Y.qV%BF:t
  
└─trunk
$n*C;AvtSI1zW A(n051Testing软件测试网Ro}v'X]
 
建完之后,xblzj分别在本地取出对应的分支进行开发。51Testing软件测试网l E;Z2I$o
分支的合并51Testing软件测试网\mY&Ul;x [4I3Y
当程序到达一个比较稳定的阶段,就需要把分支合并到主干上,下面讲述一下合并的流程。51Testing软件测试网:CmF'lIp9M`?

%|Ag'E3D0
在本节中继续使用上一节中所示的工程与SVN仓库讲解。
J@u Y.?r B:k0
D&l K gK(g {O01.xb
lzj分别修改自己分支上的代码51Testing软件测试网 fL g3K6O.e)n$uCt
现在,主干上的test_SVN.txt是空文档。51Testing软件测试网#^zt|N @h$d
xblzj修改提交后,两个分支中test_SVN.txt分别如下所示:
51Testing软件测试网6C m^v8k1S

xb_1

D5D3mB&^qRl0

xb_2

9A bQ/UT0

lzj_1

G#HijaW0

lzj_3

^wa]t-eVa9J.x0

2.xbxb_051129分支合并到主干51Testing软件测试网d+H }P/^(J

xb先把主干check out到本地。然后在主干的目录上右键选择svn->merge,弹出如下窗口:
xni!l;A5d@*Zx0
然后直接点击merge进行合并,你也可以通过dry run来看是不是两者之间有差异。由于没有其它人修改主干,所以合并的很顺利,下图是xb_051115与主干合并后的结果。合并完毕之后,由xb对主干进行提交。

1SsZ&eVN_VP0

xb_151Testing软件测试网sm3L8s/E\z[

xb_2

N WA)n0C(kvx1\X0

3.lzjlzj_051129分支合并到主干,解决冲突
Yzk&O(MU4fi+WU*h;?0   xb
合并完毕之后,lzj要将他的分支合并到主干上去,方法同上。但是由于xb已经修改过主干,所以产生了冲突,会弹出一个冲突对话框。双击对话框中的产生冲突的文件名,就可以调出工具对此文件进行合并。51Testing软件测试网a&J@ Vv5nxB~IV

 

!uXdB)yl5Y0

aU"z?-zw HA5a0

  首先比较第一个窗口与第二个窗口,把结果修改合并到第二个窗口。51Testing软件测试网9B_@X J#YX/D D

然后确保光标处于第二个窗口时,点击相应的按钮。这样会把第二个窗口的内容全部复制到第三个容口。之后保存,退出。

_%Na+uG"V0

然后在工程目录上点右键,进行SVN->Resolved。这样会删除无用的临时文件。51Testing软件测试网 Q5Q0`%n+Z-[y},Q

最后提交所作的修改,并添加详细的注释。51Testing软件测试网 _J7Ah4Ty

51Testing软件测试网q8oX2~/ij
十一、其它注意事项51Testing软件测试网#Y0c4n;h+U1ER]E"Y7R
SVN
中的标签51Testing软件测试网.VF"Ycs(hN9S
 
CVS不同,使用SVN时不用专门为目录添加标签,因为SVN也对目录进行版本管理。
6EZ6fC-N+X6~RaO;l0
我们在提交时写好注释(比如重要的版本提交时使用051201之类的日期作为开头),就可以通过注释来查找比较重要的目录版本号,相当于CVSVSS中的标签。
Z A}qb2y0
另外,每个工程都会有一个版本说明文件,通过此文件可以查找关键版本。
9grL `N;T Fk051Testing软件测试网8CO B[E}D:ID6is
文件的删除、移动与重命名
i\?1bB `!C(R}U0
你可以重命名、移动或删除你的文件或文件夹,但请使用SVN进行这些操作,否则之前的版本信息会丢失。
B0Y!B[j|u S KW"k \0
使用SVN删除、移动与重命名文件夹的方法是在文件/文件夹上点右键进行SVN操作,或直接在资源浏览器中使用右键拖放(会弹出SVN选项)。
:S'?"~}Qj051Testing软件测试网/Q8\UG }*s2P+`
文件的删除、移动与重命名之前,必须保证工作目录是最新的版本;进行这些操作之后,需要进行提交。
)ja{6ck0
p8m%[$ft&Ml0
版本的回退
tIP;Q_0
在代码的编写过程中,难免会有不尽人意的地方,你也许需要回退到某一个版本,但是在这个过程中可能有一些文件你想保留,也有一些文件你不想保留,这就牵扯到很复杂的版本管理过程,在这里给大家推荐几种方法。51Testing软件测试网q$AW y2m/P#obm0j

D7Nr_i;A01.
若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择revert就可以更新到工程的最新的版本。
f(?m5ca4K\0
#wZ }l.D{f02.
若是你想退回到某一个版本,你就可以直接选择update to reversion这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。51Testing软件测试网,?7W6g2J.M'I}U

^V#@v&uj"@.~6x}:Q03.
你可以直接选择revert changes from this revision如图,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。51Testing软件测试网0H2Op$EP:A1E S{B

D!B4Q2r7H gJp g04.
我推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得headSVN控制文件。
6^~1^*^*i0_ Ot.^1U C051Testing软件测试网)|E5vw f8ug

egA c)|/DLM0
提交的时机
OW4~ A F(A5u6E"l2Q0  
每个工程会有很多个小模块,当某个模块达到稳定的时候,你就需要提交一次,以免写下个模块代码的时候出现不可恢复的错误。
#g%dB*{1E0  
每一次提交需要前,需要通过pclint检查,保证是一个编译没有错误的版本。当提交比较稳定的版本的时候,同时要修改你的版本号。51Testing软件测试网,H2Hwe:Jv
提交的时候要添加注释,若多人共同修改同一段代码我们就需要为注释添加上更加详细的说明
e2d7vvR_-o&Q0
版本说明文件
Ct ly8mlC|b8?0  
版本说明文件为xml表格,可用excel编辑,它会记录下关键的版本信息。
1wa l g F4l-lA0
版本说明文件内容如下表。发布版本是指用户对外公布的版本号,后文中有详细描述;RevisionSVN内部的工程文件夹的版本号。一个发布版本可能对应多个Revision51Testing软件测试网`(?C#Y_w Q6p

Z+EJ6U{X0E5e8I }3nE;W'\*H0

 51Testing软件测试网g \-pL#{h&^q*{

t'Y'@{ ~S!FH0 51Testing软件测试网{I8kS["B/\mrhB


TAG: 配置管理

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 14421
  • 日志数: 23
  • 建立时间: 2008-08-23
  • 更新时间: 2009-10-18

RSS订阅

Open Toolbar