标 题: BBS站点升级和同步开发心得
2006-06-21 02:42
225 查看
发信人: 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这一章也讲得不错~~
标 题: 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这一章也讲得不错~~
相关文章推荐
- 开发心得:-逐浪CMS子站系统2.0中的同步与认证机制研究
- [心得]给CentOS6.5升级开发工具gcc
- 网络发送同步请求——(开发中一般不会使用,但是还是了解的好)
- WinForm c#开发心得之上网小管家(含源码下载)
- 关于做Android+J2ee系统集成开发的一点心得
- 站点开发和企业级开发有什么差别?
- MaxCompute Studio使用心得:一个工具完成整个Python UDF开发
- 开发心得分享:10年编程无师自通
- 开发黑莓应用作品心得体会
- git同步开发更新至项目目录(转载)
- ecmall 二次开放心得(附二次开发汇总材料)
- java邮件开发--心得2-入门2
- DirectX 开发骨骼动画 心得 D3DXPlaneIntersectLine 函数
- Android开发心得——eclipse的xml编辑器代码行错位
- Rom开发之OTA升级流程
- SPD升级到10后打不开站点的解决方案
- IOS 同步请求和异步请求 ios开发教程
- 小型bbs论坛系统开发3 后台父板块展示/删除
- C#开发ArcEngine的一点学习心得 (转)
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 3