战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  252 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

距离第一次使用HG已经由2,3年了。 从第一次将HG用于自己的项目, 用U盘同步代码. 到现在将HG应用于linux, 版本差异发布, 项目内部多人的分布式开发,已经感觉非常熟练。

我们的项目的客户端和服务器均由C++开发,由于HG设计的理念是1个工程对应1个库, 因此我们的客户端和服务器是分开的两个HG代码库。这种思想和SVN管理的代码有很大不同。SVN时代的游戏工程大多是这样安排目录的:

common <-客户端和服务器共享的库

client<-客户端的代码

server<-服务器的代码

通过SVN强大的权限控制给不同的前后端赋予权限,前后端程序将获得不同的目录组合。SVN下的这种工程组织方法能很好的解决单一语言跨工程的代码,协议共享问题。虽然现在各种Erlang,Java的服务器语言与as3,lua的不同客户端脚本语言混杂的时代已经无所谓这种老式设计思想。但是对于我们纯C++的手游来说,还是必须面对分布式代码管理工具下的代码跨库共享问题。

我就这个问题与多年前被我推荐过HG的朋友讨论起来,他们也存在我们这个问题,但是他们的解决方法就是每个工程一个库。然后被我问到:“同步一次代码,一次次的打开不同的库(他们客户端+服务器一共6到7个HG代码库),进行同步, 完成后, 还要反向pull,不累啊?”, 朋友回答:“习惯就好”

随后,我也翻查了git对多项目的支持。得到的答案也是跟HG一样的, 这类分布式代码管理工具本身的设计理念只有账号,而无权限, 本身就是基于开源代码精神设计的工具, 如果分了权限,岂不是违背开源精神(这是我想的微笑)。因此如果想管理多个项目代码, 要么多库,要么合库。

posted on 2013-10-25 22:51 战魂小筑 阅读(2172) 评论(2)  编辑 收藏 引用 所属分类: 游戏开发技术工具使用及设计

评论

# re: 使用HG(Mercurial)做分布式代码管理的一些经验 2013-10-25 23:05 nncelyod
git subtree
hg 应该也有类似的吧  回复  更多评论
  

# re: 使用HG(Mercurial)做分布式代码管理的一些经验 2013-10-25 23:27 战魂小筑
@nncelyod
有的,但是设计理念如此,也就不必强求了
  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理