pengpenglin
人,必须选择一种生活方式并有勇气坚持下去
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 262, comments - 221, trackbacks - 0
【原】SVN In Action(9)
【12】比较本地工作副本和版本库的差异
假设我们是在一个团队的环境下工作,
对于同一个项目,可能不同人会负责不同的部分。那么如何保持自己的本地副本时刻和版本库同步呢?最好的方法是经常检查更新并进行同步。
假设现在团队里的其他人向ECoupon版本库新增了一个名为ignore.txt的文件,那么我们如何知道这个变化呢?还记得我们前面
《SVN In Action (3)》
的第7节---查看项目的实时信息中提到的svn status命令吗?根据SVN文档只要配合--show-updates参数就可以显示本地工作副本尚未更新的变化
C:\
>
svn status E:\Temp\ECoupon
--
show
-
updates
*
E:\Temp\ECoupon\doc\ignore.txt
*
11
E:\Temp\ECoupon\doc
Status against revision:
13
show-updates参数会令客户端显示本地工作副本那些文件是out-of-date的。它并不会立即更新本地副本,而是告诉你那些文件会在下次的svn update中被更新
这是本地执行后的结果。我们会看到输出的结果有"*"。那么这个*代表什么含义呢?
* --- 服务器上出现了一个新的受版本控制的文件
'' --- 本地工作副本的文件已经out-of-date
很明显从命令输出结果来看,在版本库上存在一个新的受版本控制的文件:ignore.txt。位于doc目录下,所以现在我们需要立即同步改变
C:
\>
svn update E:
\
Temp
\
ECoupon
A E:
\
Temp
\
ECoupon
\
doc
\
ignore.txt
Updated
to
revision
13
.
C:
\>
svn status E:
\
Temp
\
ECoupon
--
show
-
updates
Status against revision:
13
【13】同时更新本地副本和提交本地变更
很多时候程序员总是习惯在每天工作结束之前,一次性地提交自己当天所做的改动。在此之前,如果其他人也对项目进行了修改,那么在提交时必然会遇到以下两个问题:
A.先提交还是先更新
B.如果没有提交而更新,他人所做的修改会不会覆盖我本地尚未提交的内容
下面我们来做一个实验,假设现在在本地工作副本,我们新增了一个文件:read-from-local.txt,与此同时其他人向版本库添加了一个新的read-from-repo.txt文件。下面是执行svn status命令的结果
C:
\>
svn status E:
\
Temp
\
ECoupon
--
show
-
updates
*
E:
\
Temp
\
ECoupon
\
read
-
from
-
repo.txt
A
0
E:
\
Temp
\
ECoupon
\
read
-
from
-
local
.txt
*
13
E:
\
Temp
\
ECoupon
Status against revision:
14
命令结果表示有一个新的来自版本库的文件:read-from-repo.txt文件和一个本地新增的read-from-local.txt文件。
下面我们来试一下如果不更新直接提交会如何?
C:
\>
svn commit E:
\
Temp
\
ECoupon
-
m
"
commit before update wc
"
Adding E:
\
Temp
\
ECoupon
\
read
-
from
-
local
.txt
Transmitting file data .
Committed revision
15
.
C:
\>
svn status E:
\
Temp
\
ECoupon
--
show
-
updates
*
E:
\
Temp
\
ECoupon
\
read
-
from
-
repo.txt
*
13
E:
\
Temp
\
ECoupon
Status against revision:
15
C:
\>
svn update E:
\
Temp
\
ECoupon
A E:
\
Temp
\
ECoupon
\
read
-
from
-
repo.txt
Updated
to
revision
15
.
可以看到操作成功了,有一点需要留意的是即便我们先提交,版本号变为15,但是执行svn status --show-updaets命令时依然会告诉我们有些东西还没有同步。特别是版本号13提醒我们现在本地的版本号依然是13而不是15---因为我们还没有执行update操作,而commit操作是不会主动帮我们update版本的。15是版本库的最新版本号。只有再次执行update操作更新后,才会真正实现本地和版本库的同步
那么如果是先更新再提交呢?
C:
\>
svn update E:
\
Temp
\
ECoupon
A E:
\
Temp
\
ECoupon
\
read
-
from
-
repo.txt
Updated
to
revision
17
.
C:
\>
svn status E:
\
Temp
\
ECoupon
--
show
-
updates
A
0
E:
\
Temp
\
ECoupon
\
read
-
from
-
wc.txt
Status against revision:
17
C:
\>
svn commit E:
\
Temp
\
ECoupon
-
m
"
commit after update
"
Adding E:
\
Temp
\
ECoupon
\
read
-
from
-
wc.txt
Transmitting file data .
Committed revision
18
.
C:
\>
svn status E:
\
Temp
\
ECoupon
--
show
-
updates
Status against revision:
18
结果依然是同样的。我们可以看到先update再commit时版本号变更了两次,这是因为第一次本地版本比版本库的版本低,第二次是因为本地提交了新的版本
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2009-12-08 21:50
Paul Lin
阅读(332)
评论(0)
编辑
收藏
所属分类:
项目管理
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
【转】有没有可能进行同级管理
敏捷文章三则
【原】敏捷开发沉思(真实对话)
【转】新任项目经理必须掌握的五项修炼
【转】管理者的困境:放权或者崩溃
【转】网络阅读,为什么人会浮躁?
【原】SVN In Action系列发布
【原】SVN In Action(23)
【原】SVN In Action(22)
【原】SVN In Action(21)
<
2009年12月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
J2EE 框架(9)
J2EE基础(4)
J2SE(43)
Java 工具(5)
Oracle Concept(4)
Oracle SQL/PLSQL(9)
Oracle 开发(13)
Oracle 管理(4)
Oracle 调优
Oracle 错误诊断
RoR(19)
UML(3)
Unix / Linux(13)
Web基础(19)
其它技术(7)
感悟(3)
杂项(7)
架构与性能(8)
模式与重构(19)
灌水(8)
电影与音乐(16)
走过的路(1)
软件过程与软件方法(3)
阳光户外(2)
项目管理(36)
随笔档案
2012年2月 (3)
2011年11月 (4)
2011年10月 (1)
2011年9月 (2)
2011年8月 (2)
2011年7月 (5)
2011年6月 (3)
2011年5月 (1)
2011年4月 (1)
2011年3月 (3)
2011年1月 (1)
2010年12月 (1)
2010年11月 (5)
2010年10月 (3)
2010年9月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (4)
2010年4月 (9)
2010年3月 (19)
2010年2月 (8)
2010年1月 (3)
2009年12月 (34)
2009年11月 (1)
2009年10月 (2)
2009年7月 (4)
2009年6月 (5)
2009年5月 (3)
2009年4月 (2)
2009年3月 (1)
2009年2月 (5)
2009年1月 (5)
2008年12月 (13)
2008年11月 (4)
2008年10月 (1)
2008年9月 (6)
2008年8月 (5)
2008年7月 (3)
2008年6月 (31)
2008年5月 (10)
2008年4月 (9)
2008年3月 (7)
2008年2月 (4)
2008年1月 (19)
BlogJava热点博客
BeanSoft
Jack.Wang
如坐春风
诗特林
郑晖
银河使者
阿密果
隔叶黄莺
好友博客
无羽苍鹰
搜索
最新评论
1. re: 【Java基础专题】编码与乱码(01)---编码基础[未登录]
666666666666666666666这几天正在做个类似工程编码出现错误
--李
2. re: 【Java基础专题】IO与文件读写---使用Apache commons IO简化文件读写
不错
--阿斯兰
3. re: 【Java基础专题】编码与乱码(03)----String的toCharArray()方法
多谢分享
--thx
4. re: 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换
评论内容较长,点击标题查看
--karl
5. re: 【Java基础专题】编码与乱码(01)---编码基础[未登录]
谢谢,帮了我大忙!
--小龙
阅读排行榜
1. Oracle中如何插入特殊字符:& 和 ' (多种解决方案)(48373)
2. getOutputStream() has already been called for this response的解决方法(43328)
3. 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换(36966)
4. 360安全卫士误删audiosrv.dll文件造成系统无声的解决方案(21211)
5. Java中读取字节流并按指定编码转换成字符串的方法(17301)
评论排行榜
1. 360安全卫士误删audiosrv.dll文件造成系统无声的解决方案(33)
2. 【原】Oracle开发专题之:时间运算(11)
3. 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换(11)
4. getOutputStream() has already been called for this response的解决方法(10)
5. 【原】Oracle开发专题之:分析函数(OVER)(8)