posts - 262,  comments - 221,  trackbacks - 0
我们已经看到了如何忽略单个文件、多个文件。但假如我们现在面对的是整个目录呢?就以WEB-INF/classes目录来说。我们如果像《SVN In Action (5)》中说的那样:先备份classes目录再拷贝回来。真的可以成功吗?

实际上这种做法是没用的。原因的关键在于SVN会在每个已经加入版本控制的目录中添加.svn目录,这个目录是隐藏目录而且是递归添加。所以我们先备份再拷贝是没有用的。.svn目录依然存在。

方法1:手工逐个删除classes目录下的.svn目录
方法2:想法得到一个原始的干净的classes目录

对于方法1,这显然不是个好主意---当项目目录结构复杂时工作量将非常巨大,而且一步小心漏删了又会造成日后的版本冲突。于是我们集中精力于方法2。SVN提供了一个命令export来帮助我们得到一个已经加入版本的控制的资源的干净导出版本。

 Step 1: 把本地工作副本中的classes目录export到临时目录下
E:\Temp\ECoupon>svn export WebRoot/WEB-INF/classes E:\Temp\classes

 Step 2: 把版本库上的classes目录删除并同步到本地
E:\Temp\ECoupon>svn export WebRoot/WEB-INF/classes E:\Temp\classes
Export complete.

E:
\Temp\ECoupon>svn del http://localhost:8000/svn/Workspace/Ericsson/ECoupon/WebRoot/WEB-INF/classes -"delete classes
folder"

Committed revision 
11.

E:
\Temp\ECoupon>svn update
D    WebRoot
\WEB-INF\classes
Updated 
to revision 11.

 Step 3: 把classes目录添加回原来的WEB-INF目录下,并加入SVN ignore列表
E:\Temp\ECoupon\WebRoot\WEB-INF>svn propset svn:ignore classes .
property 'svn:ignore' set on '.'

E:
\Temp\ECoupon>svn commit -"ignore classes folder"
Sending        WebRoot
\WEB-INF

Committed revision 
12.

E:
\Temp\ECoupon>svn status

E:
\Temp\ECoupon>

 Step 4: 检查忽略是否生效
E:\Temp\ECoupon>svn propget svn:ignore
.myeclipse
.settings
.classpath
.mymetadata
.project

E:
\Temp\ECoupon>cd WebRoot/WEB-INF.

E:
\Temp\ECoupon\WebRoot\WEB-INF>svn propget svn:ignore
classes

可以看到svn:ignore在不同的目录下添加了不同的忽略列表


-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2009-12-08 16:29 Paul Lin 阅读(486) 评论(0)  编辑  收藏 所属分类: 项目管理

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(21)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜