摘要:
perforce提供了2中机制来让用户自定义或增强perforce的功能:trigger 和 daemon 。一 triggerstriggers 是用户定义的script,但是在某些特定的条件下由p4server自动调用来执行一定的功能。如果script返回0,表示成功,p4server的其他功能继续执行;如果script返回非0值,表示script执行失败,script的output将被作为error message返回为客户端。常见的trigger的作用:集成LDAP或AD用户认证方式,锁定branch,规范提交时的changelist的描述,跟新bug或task管理系统等。1)trig
阅读全文
posted @ 2011-08-17 16:23
iTech
阅读(3751)
推荐(0)
摘要:
perforce superuser任务1)server security levelsperforce支持的security level为0,1,2,3。可以通过命令p4 configure set security=seclevel来设置。level0:不需要密码。level1:所有的用户都必须有密码,且对于旧的客户端仍然可以使用弱密码。level2:所有的用户都必须使用强密码。level3:必须使用基于ticket的认证方式。2)user authentication(用户认证)perforce支持两种用户认证方式:基于password和基于ticket。password的认证方式是无状
阅读全文
posted @ 2011-08-16 15:33
iTech
阅读(2023)
推荐(0)
摘要:
perforce分支的锁定(Perforce branch locking)通常地在某些milestone的build的时候或者某些branch的生命周期结束了,我们都需要锁定branch来禁止对branch的修改。 可以通过如下的两种方法来锁定perforce branch:1)权限表(protection table)通常地我们使用一个group来管理一个branch的权限。例如默认地如下:write group envision * //dev/envision/esi/...当 我们需要锁定branch //dev/envision/esi/... 时,可以在p4admin的GUI管理
阅读全文
posted @ 2011-08-16 13:17
iTech
阅读(1611)
推荐(0)
摘要:
一 p4server上文件类型0) p4server的文件组成: 1)文件类型如下图: 2)depot目录及目录下的所有文件为developer真正提交的代码文件信息,我们成为versioned files ; (depot下文件为rcs格式,参考:http://durak.org/sean/pubs/software/cvsbook/RCS-Format.html) 例如如下changlist: 在depot下对应的文件为:versiontest.txt,v head1.75;access;symbols;locks;comment@@;1.75date2010.06.21.22.56...
阅读全文
posted @ 2011-08-16 12:57
iTech
阅读(2988)
推荐(0)
摘要:
一 使用p4admin.exe GUI工具来管理1) 创建用户2) 创建group通常地我们使用group来管理user对某个产品的访问权限,例如对于projectA,我们创建group projectA,将projectA的所有users加入到group projectA中。 通常地我们还有readonly和service groups来设置只读权限和后台运行的密码不过期的用户组。3) 权限管理通过权限管理表来管理用户或组的权限的分配,而且可以很直观地在右边预览到所分配的权限。 权限表中所有的字符需要区分大小写,且表的行有先后的顺序,后面的覆盖前面的。 二 权限的解释1)高等级的权限自动地包
阅读全文
posted @ 2011-08-15 17:28
iTech
阅读(4391)
推荐(0)
摘要:
一 p4server的管理 1)用p4d.exe来p4server的管理。2)也可以用p4的子命令admin在远程机器上执行一些p4server的管理,此时需要设置p4port,p4user等环境变量。3)使用UI的p4admin.exe来管理。 参考:http://www.perforce.com/perforce/doc.current/manuals/cmdref/admin.html http://www.perforce.com/perforce/doc.current/manuals/p4sag/index.html二 p4d.exe1)p4d.exe 注意:-jc : 创...
阅读全文
posted @ 2011-08-15 16:03
iTech
阅读(2584)
推荐(0)
摘要:
一 p4 server0)在官网上下载perforce.exe,然后安装,安装后默认地perforce以service的方式运行。1)p4server的可执行文件为p4d.exe (running as a server) or p4s.exe (running as a service)。2)p4管理员操作,需要p4 user为superuser,至少有admin权限。二 p4server的启动1)安装后perforce默认地已经以windows service的方式在运行了,可以在service控制面板中查看。也可以在service控制面板中对perforce service停止,启动和重
阅读全文
posted @ 2011-08-15 15:08
iTech
阅读(4464)
推荐(0)
摘要:
PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspxPDB文件:每个开发人员都必须知道的一 什么是PDB文件大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对
阅读全文
posted @ 2011-08-15 13:16
iTech
阅读(165323)
推荐(21)
摘要:
1 p4 delete p4中文件删除以后,以前的版本任然保留。可以在p4v中选择view->Filter deopt -> show deleted depot files来设置显示删除的文件。 p4从不真正删除文件。 2p4 label 和 branch区别 label相当于是个标记,只包含了文件名和版本信息; branch相当于是将原有的代码重新copy一份; label用来标记重要的源代码时刻,但是如果要某时刻的源代码copy出来继续开发,必须使用branch。 3changelist & label 区别 从上面的操作来看,label和changelist拥有相同
阅读全文
posted @ 2011-08-09 18:08
iTech
阅读(1698)
推荐(0)
摘要:
p4的分支创建和集成过程主要包含4个步骤: (1) 使用‘p4 branch’创建branch spec;(2)使用’p4 integrate‘来实现分支间的集成;(3)使用‘p4 resolve’来完成冲突的合并;(4)使用‘p4 submit’提交集成的结果。如下为在p4v中的操作。一 创建branch spec如下过程创建projectA的main与2012RTM的branch spec。操作为new branch mapping。二 创建新的分支如下过程创建2012RTM分支! 1) 在branch spec上右键 ->integrate using this branch ma
阅读全文
posted @ 2011-08-09 16:10
iTech
阅读(9294)
推荐(0)
摘要:
一 p4命令行 1)p4counter.batcallp4env.batREMcounterisonepersistantvariablewhichisstoragedinp4serverREMp4defaultcounterforlatestclp4counterchangeREMallp4countersp4countersREMneedsuperuserpermissionp4counterlastpassedcl25000pauseREMusecounterp4counterlastpassedclpauseREMdeletecounterp4counter-dlastpassedcl
阅读全文
posted @ 2011-08-09 14:30
iTech
阅读(2539)
推荐(0)
摘要:
一 P4(perforce)环境和sample project p4 环境: sample project: 二 P4命令行 1)p4env.batsetpath=C:\ProgramFiles\Perforce;%path%setP4Port=localhost:1666setp4user=AAAsetp4passwd=aaasetp4client=TestProject_AAAsetp4Root=//depot/TestProjectsetp4LocalRoot=c:\MyLocalTestProjectsetp4Drive=H:ifexist%p4Drive%(subst/d%p4...
阅读全文
posted @ 2011-08-09 14:21
iTech
阅读(5194)
推荐(1)
摘要:
以下的操作基于P4V。 1p4 refresh all 某些情况下某些修改不能实时地在p4v中跟新,此时可以使用p4v refresh all。 还可以在任意的item上右键中找到refresh相关的操作。例如本地目录下删除或增加文件,在p4v中不能的及时反映,这个时候可以在 workspace中的目录中右键中点击refresh相关选项。当然其他的changelist,client,depot等也都有相应的 refreash。 操作: view->refreash all 2 p4 rollback 用来将已经提交的修改撤销,或者恢复到某个之前的changelist。 如果是没有提交的修
阅读全文
posted @ 2011-08-09 10:56
iTech
阅读(13271)
推荐(0)
摘要:
以下的p4的基本操作是基于P4V,p4V是跨平台的p4 visual client。1) 登录和环境变量。server,等于环境变量P4PORT的值,表示p4 server的地址; user,等于环境变量P4USER的值,为p4的用户名,唯一标识一个用户;workspace,等于P4CLINT的值,表示server与本地的目录的对应。2) workspace, 也称为client spec,表示了server与本地的源码的目录对应关系。3) 增加新的文件,操作为workspace->在文件或文件夹上右键 -> mark for add4)删除文件,操作为depot-> 在文件
阅读全文
posted @ 2011-08-09 09:36
iTech
阅读(3459)
推荐(0)
摘要:
一 perforce(p4)perforce是集中式的商业的SCM软件。优点如下:1)被证明的SCM解决方案,全球超过5000家软件公司使用;2)无限制的可伸缩性,高性能的架构支持2到8000用户的使用;3)快速的SCM操作,perforce server和client通过高度定制的流消息协议传输;4)全功能的跨平台的基于QT的图形UI;5)支持分布式跨国的软件开发团队,perforce proxy使得跨国公司在全球的协作开发仍然高效;6)与常用的其他软件开发相关的软件的高度集成,例如visualstudio,Eclipse,office等;7)高效的perforce server的管理,可以
阅读全文
posted @ 2011-08-09 09:24
iTech
阅读(2579)
推荐(0)
摘要:
转自:http://www.cnblogs.com/andgame/archive/2010/10/17/1853733.htmlhttp://www.cnblogs.com/selfly/archive/2011/01/14/1935715.htmlLinux 安装SVN + Apache + 权限控制 一:相关版本subversion在安装的时候,要求相关软件的版本一致,而不是说软件版本最新就最好.下面是我安装的相关版本.httpd-2.2.3.tar.gzsubversion-deps-1.4.0.tar.gzsubversion-1.4.0.tar.gz 二:安装准备# mkdir .
阅读全文
posted @ 2011-08-05 11:15
iTech
阅读(1630)
推荐(1)
摘要:
一 SVN命令行简介1)命令行方式的SVN Server和Client下载: http://www.collab.net/downloads/subversion/2)设置path路径:set path="C:\Program Files\CollabNet\Subversion Server";%path%3)svn 的server 和 client相关的命令行主要包含:svn,svn子命令包含了所有的client操作;svnadmin,svnadmin用来管理SVN Server,其中Server最主要的一个操作就是创建repository命令svnadmin crea
阅读全文
posted @ 2011-08-05 10:46
iTech
阅读(4149)
推荐(2)
摘要:
TortoiseSVN的安装非常简单,安装后以windows shell的形式来使用。一 图标TortoiseSVN 重载了文件和文件夹的图标来更好的显示版本控制的状态。如下: :一个新检出的工作副本使用绿色的对勾做重载。表示 Subversion 状态正常。 :在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。:如果在更新的过程中出现了冲突,图标会变成黄色感叹号。 :如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文件锁。具有这个重
阅读全文
posted @ 2011-08-04 17:50
iTech
阅读(4634)
推荐(1)
摘要:
VisualSVN Server : 为SVN的server端程序;TortoiseSVN : 为SVN的client端程序;一 VisualSVN ServerVisualSVN Server是一个可视化的Windows版本的SVN Server。主页:http://www.visualsvn.com/server/。安装和配置很简单。步骤:1)安装2)安装 (可以修改repository的位置和选择是否使用security)3)创建用户 4)创建group5)创建Repository6)设置Repository的访问权限二 TortoiseSVN ClientTortoiseSVN 是免费
阅读全文
posted @ 2011-08-04 15:25
iTech
阅读(1399)
推荐(0)
摘要:
转自:http://roclinux.cn/?p=2129+ http://roclinux.cn/?p=2115 参考:http://www.nvie.com/posts/a-successful-git-branching-model/ 一张描述git数据迁移的示意图,很清晰,对于理解git的命令很有帮助,转发分享在这里: 1 GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层面上,我建议你保持一个中心版本库。 2 我建议,一个中心版本库(我们叫它origin)至少包括两个分支,即“主分支(master)”和“开发分支(develop)” 3 要确保:团队成员从主分支(
阅读全文
posted @ 2011-08-03 17:35
iTech
阅读(3146)
推荐(0)
摘要:
一 分布式的源码管理工具Mercurialmercurial 作为3大主流的分布式源码管理工具,已经被广泛的使用。 例如 googlecode.com 和 codeplex.com 都支持mercurial作为源码管理工具。 主页:http://mercurial.selenic.com/ 更多的帮助:http://hgbook.red-bean.com/ 和 TortoiseHg.chm 超级超级好的ppt:http://www.slideshare.net/tednaleid/distributed-version-control-dvcs-with-mercurial windows下安
阅读全文
posted @ 2011-08-03 13:51
iTech
阅读(3978)
推荐(1)
摘要:
一 源码管理工具 源码管理(SCM/Source Code Management),也称为版本控制系统(VCS/Version Control System)。 1)为什么我们需要SCM/VCS 1. 备份和恢复:源码是软件公司的财富,备份和恢复用来防止意外的损失; 2. 同步:同一项目中多程序员间实现代码的共享和同步; 3. 短期的撤销:通常的如果某个开发人员的提交导致了break,则可以撤销导致break的提交; 4. 长期的撤销:如果某个BUG是很久以前的提交导致,则可以撤销到当时提交的版本来debug; 5. 跟踪改变:每次改变的提交都有注释,改变的历史会被保存,我们还可以看到提交的时
阅读全文
posted @ 2011-08-02 14:46
iTech
阅读(5744)
推荐(1)
摘要:
转自:http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment在前文《依赖管理》中,我们讨论了如何在代码变得庞大,组件增多的情况下,做好外部库和内部组件依赖管理,从而提高构建效率。可以应用的实践包括:一次生成,多次复用;建立统一制品库,外部依赖库可以使用像Maven或Ivy这样的工具进行统一管理;对架构进行调整,使一个大的代码库分成多个组件;每个组件有自己的持续集成体系;对多个组件做持续集成。然而,解决一个问题后,总会有另一个问题等在那里,需要你来解决。这次Joe的团队遇到了部署问题。星期一早上,Alice一进办公室,就看到一脸倦
阅读全文
posted @ 2011-08-01 06:54
iTech
阅读(1635)
推荐(0)
摘要:
转自:http://www.infoq.com/cn/news/2011/05/ci-dependency-managementhttp://kb.cnblogs.com/page/101101/在前文《分支策略(续)》中,我们讨论了多组件应用程序的持续集成策略,即:为相对独立的组件创建自己专属的代码库,然后通过现代持续集成工具进行组件间的持续集成。Joe的团队在首次发布之后,开始使用这种方式。然而,没有多久,他们就遇到了一个问题:一次提交构建所花费的时间太长。 一天,Joe就早早地来到了办公室。因为他前一天下班前,他开发的用户故事还有一小点就完事儿了。他想利用早上这点儿时间把它搞完,交给测试
阅读全文
posted @ 2011-08-01 06:51
iTech
阅读(982)
推荐(0)
摘要:
转自:http://www.infoq.com/cn/news/2011/03/ci-branch-strategyhttp://www.infoq.com/cn/news/2011/04/ci-branch-strategy-2http://kb.cnblogs.com/page/96915/http://kb.cnblogs.com/page/96916/持续集成之“分支策略”现代版本控制系统(SCM)的作用已不仅仅是保存历史版本,它还是各软件开发组织利用其分支功能实现多人并行开发,提高生产效率的一种工具。对于稍有历史的软件产品来说,一般都会有代码分支的出现,也常常见到一些历史悠久的产品其
阅读全文
posted @ 2011-08-01 06:41
iTech
阅读(4510)
推荐(1)
摘要:
一 Parabuild Viewtier Systems公司的Parabuild系统,是一个自动化的软件构件和发布管理系统,通过可靠的软件发布流程和持续集成来帮助软件公司按时的发布软件。http://www.viewtier.com/index.htm 二 支持的平台和功能1) 支持几乎所有的平台 WindowsLinuxMac OS XSolarisHPUX-11Generic Unix2) 几乎包含了软件构件和发布管理系统的所有功能 + http://www.viewtier.com/products/parabuild/feature_overview.htm 三 使用Parabuild
阅读全文
posted @ 2011-07-28 17:34
iTech
阅读(770)
推荐(0)
摘要:
http://spoon.net/home.aspx使用Spoon(spoon.net),用户可以在“云”上运行OpenOffice.org、TweetDeck和 Autodesk的Design Review和Inventor Fusion Technology Preview等桌面应用程序。用户只需注册一个帐户,并安装一个浏览器插件就可以使用这项服务。这些应用程序运行起来就跟真正的本地桌面应用程序没有什么两样,只是稍显缓慢。你也可以打开并保存本地硬盘驱动器上的文件。Spoon公司表示:“Spoon让软件开发人员可以在云上使用桌面应用程序,无需再安装其他任何软件。你可以从Spoon.net 下
阅读全文
posted @ 2011-07-28 14:49
iTech
阅读(2350)
推荐(0)
摘要:
一 windows的VM扩展磁盘空间1) VMWorkstation 6.5 及前的版本使用如下命令 vmware-vdiskmanager -x 40GB myDisk.vmdk2) VMworkstation 7及以后的版本可以使用方法1),也可以直接在UI中操作,如下, 使用Virtual machine settings中的hard disk中的Utilities下的expand:在expand对话框中直接修改为新的磁盘大小3)VSphere在vsphere client登录后,直接在virual machine setting中hard disk中修改,如下注意: 当有snapsho
阅读全文
posted @ 2011-07-27 10:35
iTech
阅读(10461)
推荐(0)
摘要:
转自:http://www.infoq.com/cn/articles/ci-theory-practice最近雷镇同学将Martin Fowler先生的著名论文《持续集成》第二版翻译成中文并发布出来,掀起了国内对于持续集成理论和实践讨论的新的高潮。笔者在本文中将全面对比持续集成 论文前后两版的异同,分析并展示ThoughtWorks在持续集成领域的理论和实践方面的研究成果,以图对国内企业实施持续集成起到参考和借鉴作用。需 要说明的是,本文所介绍的内容毕竟限于笔者的水平,并且主要是ThoughtWorks内部开发和对外咨询实践的总结,所以未必对读者所遇到的情况是适用 的,请自行甄别。 《持续集
阅读全文
posted @ 2011-07-26 11:26
iTech
阅读(1966)
推荐(0)
摘要:
一 Logging BlockLogging是几乎所有的程序中必不可缺少的功能。Logging可以帮助我们调试程序,在后台程序或者执行很耗时的程序,Logging可以帮助我们来记录程序是否正确运行,是否有异常抛出等。 Logging通常包含的功能有记录Log到不同的地方,还能够很灵活的控制是否需要Log。企业库的Logging Block为我们提供了所有的这些功能,通过企业库我们可以很灵活的在app.config/web.app中切换不同的Log方式,Logging提供了以下的方式来Log记录:1)The event log2)An e-mail message3)A database4)A.
阅读全文
posted @ 2011-07-25 18:22
iTech
阅读(2152)
推荐(0)