Skip to content


bzr快速入门(2)—- 采用本地分支的开发方式

bzr 是一个分布式的版本控制工具,如果我们还那他当svn使用,那就有点暴敛天物了。 所以我们就得按照bzr的方式办事。

svn方式开发最大的问题就是当n个人开发不同的feature,又来回影响时候,基本上就只能使用branch了,否则就玩完了。这时候就得靠DVCS了。而对于所有的DVCS,都是天然的支持轻量级分支,或者天然的就应该按照分支进行开发。

我们可以按照如下的方法开发
假设服务器是  /server/repo
我们在开发的时候不是想svn一样使用checkout来创建本地工作区,而是在本地做一个服务器代码库的分支,然后进行本地开发。以bzr为例子就是
bzr branch /server/repo [local_proj_name]
这时候这个local_proj_name是一个服务器工作区的分支,可以进行开发了,并且所有的提交都是本地的,不会影响到服务器的工作区。

如果你和别人一起共享一个服务器的代码库,随时获取最新的代码,在svn里面是使用update,在这里是使用pull,如果出现了和本地的冲突,哪么就需要使用merge来进行合并了。
等你在本地工作区都开发好了,也本地提交好了,哪么使用push在传回服务器的代码库就可以了。

这里我想说一下pull和merge的区别。
pull的意思是把代码同步成为服务器代码库的代码,并且版本号也发生变化。pull操作成功后,本地就是一个提交后的状态。
merge的意思是把服务器代码库的代码,合并到本地,此时仅仅是内容的变化,版本是不会发生变化的。所以merge之后,本地是一个修改后的状态,还需要提交一次,本地才是一个提交后的状态。

比如
服务器代码库只有一个文件,叫做readme.txt,
在版本是9的时候,readme.txt的内容是No。
版本号码是10的时候,内容是Yes。

如果我本地的工作区,是从版本号码为9做的本地分支。
我现在pull下来,哪么我本地readme.txt的文件的内容是Yes,本地分支版本号码是10,处于以提交状态。
如果是merge下来,哪么本地readme.txt的内容是Yes,本地分支版本号码是9,处于已修改状态,需要自己提交以下,是本地的版本号码达到10。

Posted in bzr.

Tagged with , , .


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.