项目管理 – 夏清然的日志 https://www.qingran.net Xia Qingran Geek Blog Sun, 07 Aug 2016 09:50:33 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.1 112893047 Trac、Mercurial集成项目管理工具组建 https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/ https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/#respond Thu, 13 Jan 2011 04:12:34 +0000 https://www.qingran.net/?p=775 我们的项目已经进行了半年,马上进入了第3个季度,慢慢的需求管理、缺陷管理的建立也需要提上日程。

从走在前面的3D引擎的开发状况看,需要有一个良好的bug管理系统来管理bug、记录需求等,于是决定用一个项目管理工具来实施,直接上Trac,并且要做到和我们的开发的版本管理工具Mercurial完全集成,Mercurial的安装见链接

首先ubuntu的apt reposity里只有trac 0.11.7,所以需要下载trac-0.12.1,导致一些安装需要手工安装。

使用0.12.1在于支持i18n,支持多个source reposity等,并且基于0.12版本的plugin较多。

[准备工作]

系统是ubuntu 10.04 LTS。

首先安装trac所需要的支持环境,采取先安装trac,然后再移除的方式安装依赖包:
apt-get install trac && dpkg -P trac

安装Genshi 0.6版本(下载),trac 0.12依赖此:
tar -xvzf Genshi-0.6.tar.gz && cd Genshi-0.6 && python setup.py install

安装Trac 0.12.1:
tar -xvzf Trac-0.12.1.tar.gz && cd Trac-0.12.1 && python setup.py install

[配置apache2]

目前使用mod_python方式运行trac,wsgi方式配置Trac mainnav一直出不来,很郁闷:(
apt-get install libapache2-mod-python

因为是通过 http://ipaddr/trac 访问的,修改/etc/apache2/sites-available/default,加入以下内容:

<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main
PythonOption TracEnv /data/trac/core-trac
PythonOption TracUriRoot /trac
SetEnv PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName "core trac password"
SetEnv PYTHON_EGG_CACHE /tmp
AuthUserFile /etc/apache2/hg.passwd
Require valid-user
</Location>

初始化trac库:
cd /var/www && mkdir trac && trac-admin trac/ initenv && trac-admin trac/ permission add xiaqingran TRAC_ADMIN

指定TRAC_ADMIN用户:
trac-admin trac/ permission add xiaqingran TRAC_ADMIN

[配置trac]

首先配置用户的trac权限,觉的命令行麻烦就用webadmin来吧。

配置mercurial,在trac中能浏览mercurial中的代码,能在commit代码的时候自动close ticket,并且把diff加入提案:

安装mercurial-plugin:
svn co http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin
制作egg文件:
cd mercurial-plugin && python setup.py bdist_egg

进入webadmin界面,然后再plugin选项里安装刚刚生成的egg mercurial-plugin/dist/TracMercurial-0.12.0.23dev_r9953-py2.6.egg

重启apache2,刷新页面,看plugin是否enabled。

同时在plugin里把Trac 0.12.1里把tacopt.ticket.commit_updater.*下的插件打开,同时把TracMercurial里的所有插件enable。

进入WebAdmin -> Version Control -> Repositories加入相关的版本库,名称为client,版本库类型是hg,目录就选在在服务器上的hg目录。

[配置mercurial]

设定mercurial的hooks,使其在hg push时能同步修改trac,编辑hg服务器端的.hg/hgrc,加入以下两段:
[hooks]
commit = trac-admin /var/www/trac/ changeset added client %HG_NODE%
incoming = trac-admin /var/www/trac/ changeset added client %HG_NODE%

mercurial提交的时候按照此格式编写commit log:
- *Fixes #123* - to reference this changeset and close #123 ticket with the default status *fixed*

完毕,enjoy it.

]]>
https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/feed/ 0 775
版本控制再思考 https://www.qingran.net/2010/11/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6%e5%86%8d%e6%80%9d%e8%80%83/ https://www.qingran.net/2010/11/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6%e5%86%8d%e6%80%9d%e8%80%83/#comments Mon, 15 Nov 2010 17:37:15 +0000 https://www.qingran.net/?p=711 最近必须解决Version Control的问题了,目前使用的svn,并采用主干活跃,分支稳定的开发策略(平时的修改都在trunk进行,主干版本发布后需要修改bug才创建分支,并在分支工作,完成后merge主干),目前发现和想到的问题有以下几点:

  1. 版本库过大导致检出代码太慢(3个月过去有7000+版本,检出一次50GB);
  2. 平时工作代码的提交都在主干进行,所以主干必须能够编译,由此引出以下问题:
    • 复杂的模块儿完成时间较久,成员很久都不提交,并且提交后这段时间没有自己的修改历史日志;
    • 成员机器的硬盘在这个长时间有可能挂掉,导致工作成果丢失的风险;
  3. 成员之间交换工作成果通过svn在主干进行,违背了主干 必须能编译,并导致大量的垃圾提交。

针对以上问题目前想到的解决方法:

  1. 改用分布式版本控制工具,Mercurial和GIT,准备分别试一下;
  2. 充分利用分布式管理工具创建分支容易,速度快的特点:
    • 每个人都创建属于自己的分支,平时的工作都在分支上进行,并定期(阶段成果完成后)向主干合并
    • 自己的修改每步都可以commit到本地,每天push一次
  3. 分离美术和程序的svn目录:美术的svn目录定期干掉头1000版本。

做到以上几点后,所有提出的几点问题都应该迎刃而解。这样每个人接到工作任务后的操作顺序是以下几步:

  1. 创建属于自己的分支,可以按季度创建;
  2. 平时的工作都在此分支上进行,同时自己的每步重大修改都commit;
  3. 2天或3天视工作进度和其他人对你工作部分代码的需求而push到远程库;或者在放假前需要对代码做备份防止硬盘挂掉,也push分支工作成果到远程库;
  4. 任务完成后,测试通过后,从分支merge到主干;
  5. 新季度开始,回到操作1。

完成,临睡觉前粗糙的想了一下,应该还有很多不足之处,希望看见的兄弟多指正。

]]>
https://www.qingran.net/2010/11/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6%e5%86%8d%e6%80%9d%e8%80%83/feed/ 2 711