现在的项目要做U3的版本管理集成,记得Unreal3之前是支持VSS的,很高兴地就装上了VSS然后开始试验,然后就开始各种精神崩溃了……
之前的系统是基于微软的SCC,VSS和AlienBrain都是支持这套的,连续几年的版本都是这么用,最近的版本一看,居然不支持了,新版的跟SCC半毛钱关系都没有了,而且居然还是只做了Perforce4的集成……?!
Epic童鞋,您没事儿瞎改什么啊?想把人逼疯怎么着?!就算改您也提供个SCC的版本呗?虽然这玩意儿微软已经放弃了,但在中国用户群依旧巨大啊!
牢骚发完,最近几天集中研究了一下新版Unreal,几个月不看Unreal,集成的东西越来越多了,现在不得不由衷地佩服Unreal的体系设计,虽道路皆言其耦合度之强令人发指,然而如果真的那么强的话,还能这么大手笔地融合各种第三方库吗?倒是坊间传闻耦合度之弱令人心旷神怡的OGRE,你也给我来个试试?
其实我觉得设计模式所追求的降低耦合很可能不能一概而论,为了方便定制,有些耦合还是必要的。
在没有自由的时候,人们都希望追求自由,然而当自由真的爆发的时候,人却未必会觉得幸福,道理就是这样。
耦合意味着定下的规则,低耦合意味着不受控的自由,两者没有绝对的对错,只有合理的权衡。Unreal只是做出了他自己的权衡,至少,你想为任何一个系统扩展,都能找到相应的地方并进行必要的处理,这体系就还是可控的。
过段时间准备发信问问Epic还准不准备重新加回来SCC的集成了,如果不加的话,可能这块儿也得自己弄了,讨厌。不过弄就弄吧,这玩意儿,SCC总还是比SVN扩展起来方便多了……
另:话说今天干了一件YD的事情:给SVN加了一个pre commit钩子,不写日志就想提交代码?嘿嘿嘿嘿……
做法:在相应的svn repository里的hook文件夹里加上pre-commit.bat,其内容为:
@echo off setlocal set REPOS=%1 set TXN=%2 set SL="C:\Program Files\SVNServer\bin\svnlook.exe" %SL% log "%REPOS%" -t "%TXN%" | findstr ".........." > nul if %errorlevel% gtr 0 goto err exit 0 :err echo NO LOG, NO COMMIT! exit 1
原理是利用svnlook查询传入的信息中,日志字数是否够多,把SL的路径改为您的SVN binary路径即可。
=============================================================================================
PS:很对不起xoyojank,等这段时间弄完手头的事儿,我会争取尽快把节点系统维护好传上来的。