标 题: BBS站点升级和同步开发心得

转载 2006年06月21日 02:42:00
发信人: dvlt (饿了就要吃!), 信区: BBSMan_Dev
标  题: BBS站点升级和同步开发心得
发信站: 水木社区 (Fri Apr  7 21:18:09 2006), 转信

[在这里发文,难免有班门弄斧之嫌,然而觉得有些心得体会,于是写来抛砖引玉了]

我们的BBS站点原先采用smthbbs-1.2.2代码,并且在其基础上作了一些功能增改。然
而看到KBS开发如火如荼,功能不断完善,于是打算升级到KBS代码。

升级代码的最大障碍恐怕是保留原有的对代码的修改。当然这也归功于KBS系统对数据
文件的兼容性做得很好。我采纳总们的建议,先把自己的代码与最初的smthbbs-1.2.2
的代码diff了一下,这样就看出来修改了些什么东西,然后试图把这些修改应用到KBS
的代码上。

然而,由于diff的结果太大,而且修改比较零碎,因此直接patch到KBS上再手工修补
conflicts显得不太可能。幸运的是,过去添改了功能之后,会发有站内公告。于是我
找出了这些公告,看看都有些什么主要的改动,然后根据每一项改动,把原先的代码
port到KBS的代码中。不重要的功能就懒得管了 :P

当然,一边port一边要不断地编译,时不时地安装、测试,以保证port的结果是正确
的。当主要功能port完之后,在最初的diff文件中人工删除已经修补的片段。这时还
剩下千余行的diff,那么可以根据具体情况,或者patch+修补conflict, 或者手工port
代码。

上述的是一个大致的思路。具体操作上,还须借助版本控制系统。由于我使用的是svn,
所以就记录一下我的svn经过吧。这个方法不一定是最好的,不过是可行的。

1, 在某一个目录里cvs checkout来下载KBS的代码。这个目录很重要,不能丢掉。
2, 建立一个svn repository, 这个repository只有一个project,就是我将要升级的
   bbs.
3, 在这个repository里建一个目录,名为kbs-mirror.
4, 把刚才cvs co的kbs代码import到这个kbs-mirror目录下。于是那个working
   directory同时受到cvs和svn两个版本控制系统的控制。
5, 用svn copy命令把kbs-mirror目录复制为trunk目录。接下来我们将在trunk目录
   里把自己以前的修改移植进来。

上述准备工作做完以后,就耐心的把原有的改动patch到kbs的代码上吧。不时地ci,
当然都要ci到trunk目录里边去。

我花了好几天时间才把过去的改动patch上。经过这么几天,KBS的代码又变了很多,
那么就需要把KBS的改动merge到我们自己的代码里。步骤如下:

1, 在最初cvs co kbs代码的那个working directory里,cvs up -dAP,获取KBS这几天
   内的更新。(tip: 不要在working directory里面做修改,这样会up得比较快)
2, svn ci 把更新commit进svn的repository。当然这之前可能还需要svn add和
   svn rm来处理新增的和删除的文件。
3, 通过 svn log,看看kbs-mirror目录 svn ci 前后的revision分别是多少。假设
   是 10 和 45。
4, 进到trunk的working directory里,svn merge -r10:45 file:///path/to/svn/
   repository/kbs-mirror。这就把KBS的改动merge到了我们自己的代码中。当然
   需要手工解决conflicts。然后编译测试通过之后,就可以svn ci了,并且注明
   -m"trunk: merged updates from kbs-mirror r10:45."

上述步骤显得比较麻烦。如果KBS的代码也采用svn管理,那么我等“跟进”的站点
就会好过些。例如,上述步骤只需改为:(猜测的,没有验证过哦)

1, svn co http://dev.kcn.cn/repos/kbs_bbs 下载kbs代码,到一个working
   directory中。这时会有一个revision number,要记住。假设是1234。
2, 把这个working directory放进自己的repository中。这需要先复制目录,然后
   把.svn都去掉,然后import.
3, 在这个working directory里修改,不时地ci.
4, 修改完毕后,看看kbs的revision到了多少,假设是5678。那么执行:
   svn merge -r1234:5678 http://dev.kcn.cn/repos/kbs_bbs
   就把kbs的修改merge到本地了。

有一份有用的参考资料《svnbook》,在subversion的网站上有下载的(pdf), 其中的
vendor branches一节所描述的几乎就是我们所遇到的情形:)其中的branching and
merging这一章也讲得不错~~

dedecms和bbs整合ucenter同步登录

Dedecms和discuz -x2.5同步登录 1:先配置好ucenter通信成功;添加dedecms和discuz两个应用, 最关键的是两个应用的配置文件: 比如dedecms的配置文件是incl...
  • ikscher
  • ikscher
  • 2014年01月11日 14:51
  • 5653

oracle的入门心得(某BBS版主)

  • 2011年05月30日 16:13
  • 487KB
  • 下载

升级版的BBS

  • 2011年12月19日 13:19
  • 1.37MB
  • 下载

SharePoint 2010 站点附加数据升级到SP2013

首先,去SharePoint 2010的数据库服务器上,找到站点的数据库,备份、还原到SharePoint 2013环境中;  如果不知道数据库服务器是哪台,可以通过服务器场上的服务器查看;  如果不...

cisco IOS升级心得

  • 2011年05月28日 19:41
  • 35KB
  • 下载

将SharePoint 2010的站点模板(site template)升级到SharePoint 2013

SharePoint从2010开始,站点模板从2007的.stp文件改为了wsp,即改成了solution。所以我们知道2007的站点模板是不能用在sharepoint 2010和2013上的,但是S...
  • shrenk
  • shrenk
  • 2014年01月28日 12:59
  • 2065

Exchange 2003 升级到Exchange 2010 之创建本地站点CAS ARRAY!

1. 创建CAS Array的主要的目的在于统一客户端访问名称,便于不管连接哪台服务器均能够使用同样一个名字访问,因此在不建立NLB的情况下使用CAS ARRAY能够统一访问名称,我们以域管理员的身份...

.NET跨平台之旅:将示例站点从ASP.NET 5 Beta5升级至Beta7

9月2日,微软发布了ASP.NET 5 Beta7(详见Announcing Availability of ASP.NET 5 Beta7)。其中最大的亮点是dnx已经可以完全基于CoreCLR...

站点改进心得--CSS、JS在不同浏览器的兼容性问题 - []

网站宣布完成,进入后期的加工、修饰和完善阶段。考虑到近期要休婚假,所以工作积压在了国庆前后,加之近期领导要求的修改又多,简直忙疯了……很想像猫一样晒着太阳大睡,即使国庆7天刚刚过完。 小有成就的是解...
  • xhgrid
  • xhgrid
  • 2012年05月10日 09:35
  • 482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:标 题: BBS站点升级和同步开发心得
举报原因:
原因补充:

(最多只允许输入30个字)