版本控制的问题

iamwiner 2007-04-28 09:46:42
大家对于不同的版本一般用的是同一份代码么?
版本控制用#ifdefine #else么?
...全文
772 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
质问 2007-04-30
  • 打赏
  • 举报
回复
Subversion
taodm 2007-04-28
  • 打赏
  • 举报
回复
这就自己研究吧,帮不了你。
不过,建议改用SVN,速度快,易用,还免费的。是现在NO1的版本控制工具。
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
5555,不懂什么是开分支啊,偶们公司用的是StarTeam,不知道它能开分支不?
taodm 2007-04-28
  • 打赏
  • 举报
回复
前面不是说了嘛,SVN等版本控制工具里开分支。
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
因为ACE作为开源库,无法把SVN都打包在源码包里。
库可以采用的手段,不是说我们也可以模仿的和也应该模仿的。
-------那我们有什么好方法呢?

就是将这些数据写入配置文件,通过读取文件控制版本,像反射等功能就这么干,不过,这种办法只能解决一部分问题.
-------运行时决定版本,可能会比较慢哦
yoyo_alex_lw 2007-04-28
  • 打赏
  • 举报
回复
你所使用的办法还可以,Windows就是这么干的,你看windef.h等头文件里头都是这种做法.还有像cruntime.c运行库里头也这么干.还有一种办法,就是将这些数据写入配置文件,通过读取文件控制版本,像反射等功能就这么干,不过,这种办法只能解决一部分问题.
taodm 2007-04-28
  • 打赏
  • 举报
回复
因为ACE作为开源库,无法把SVN都打包在源码包里。
库可以采用的手段,不是说我们也可以模仿的和也应该模仿的。
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
我也不喜欢用#if else,但是难道有什么东东比它们工作得更好吗?
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
我看人家的代码里都是这样控制的啊!
我真不知道还有什么好方法?
"强耦合行为"的达人,快出来说话

int
ACE::out_of_handles (int error)
{
// EMFILE is common to all platforms.
if (error == EMFILE ||
#if defined (ACE_WIN32)
// On Win32, we need to check for ENOBUFS also.
error == ENOBUFS ||
#elif defined (HPUX)
// On HPUX, we need to check for EADDRNOTAVAIL also.
error == EADDRNOTAVAIL ||
#elif defined (linux)
// On linux, we need to check for ENOENT also.
error == ENOENT ||
// For RedHat5.2, need to check for EINVAL too.
error == EINVAL ||
// Without threads check for EOPNOTSUPP
error == EOPNOTSUPP ||
#elif defined (sun)
// On sun, we need to check for ENOSR also.
error == ENOSR ||
// Without threads check for ENOTSUP
error == ENOTSUP ||
#elif defined (__FreeBSD__)
// On FreeBSD we need to check for EOPNOTSUPP (LinuxThreads) or
// ENOSYS (libc_r threads) also.
error == EOPNOTSUPP ||
error == ENOSYS ||
#elif defined (__OpenBSD__)
// OpenBSD appears to return EBADF.
error == EBADF ||
#elif defined (__sgi) // irix
error == ENOTSUP ||
#elif defined (DIGITAL_UNIX) // osf1
error == ENOTSUP ||
#endif /* ACE_WIN32 */
error == ENFILE)
return 1;
else
return 0;
}
CHCXHW 2007-04-28
  • 打赏
  • 举报
回复
比较难搞
像我的软件 区别是用户不一样
所以都是配置里的用户用来做分支
也没想到什么好的方法
期待。。。。
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
看不懂题目的只给1分!
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
我的这几个版本中,有一些小的不同,但是大多数代码相同,并且我需要经常维护.
不是check-in,check-out这些
========================
这样的话,
使用 #ifdefine #else 也可以。
(内容不会太多的话,应该还好)

建议把这些需要 根据版本进行变化的 内容独立在一个 h文件中,
便于查看和修改。


-----------内容可能还"比较多",应该怎么做才好?
iamwiner 2007-04-28
  • 打赏
  • 举报
回复
当然是用版本控制工具创建不同分支来处理。
用#ifdef已经被认为是强耦合行为,应该废弃。

-------
这个是什么意思啊?
不懂
lidongri 2007-04-28
  • 打赏
  • 举报
回复
我们用
SVN
jixingzhong 2007-04-28
  • 打赏
  • 举报
回复
我的这几个版本中,有一些小的不同,但是大多数代码相同,并且我需要经常维护.
不是check-in,check-out这些
========================
这样的话,
使用 #ifdefine #else 也可以。
(内容不会太多的话,应该还好)

建议把这些需要 根据版本进行变化的 内容独立在一个 h文件中,
便于查看和修改。
taodm 2007-04-28
  • 打赏
  • 举报
回复
当然是用版本控制工具创建不同分支来处理。
用#ifdef已经被认为是强耦合行为,应该废弃。
jixingzhong 2007-04-28
  • 打赏
  • 举报
回复
代码么, 有了一些不同的内容,
版本控制服务器会有备份以及更新 ~
jixingzhong 2007-04-28
  • 打赏
  • 举报
回复
使用版本控制工具
CVS / VSS
lidongri 2007-04-28
  • 打赏
  • 举报
回复
#ifdefine V1.2
const MAX_LEN = 200;
#else
const MAX_LEN = 100;
#endif
---
这个方法就行
bhujm 2007-04-28
  • 打赏
  • 举报
回复
哈哈,看看。
加载更多回复(9)

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧