由于Web工程程式源代码非常分散不集中,大的Web工程程式源代码源文档多达上百个甚至更多,小的也有数十个,怎样合理地管理这些源源代码还是一个问题,本文提出一种针对Web工程开发过程中源代码控制的处理方案。我们将利用Dreamweaver CS4和Visual SourceSafe来实现Web工程源代码开发的全程控制。这2种软件大家都比较熟悉,但为了保持本文的完整性我还是分别简要介绍一下这2种软件。
Dreamweaver CS4(以下简称Dreamweaver CS4)是Macintoshromedia单位web制操作三剑客之一,其强大性能在此不再复述,Dreamweaver CS4整合了Dreamweaver 4和Dreamweaver UltraDev 4的所有性能,他同时适合Web界面开发人员和Web后台开发人员试用,Dreamweaver CS4几乎支持所有常见动态Web编程语言,如PHP,ASP/ASP.net,JSP等,他最大特点就是整合了团队开发的性能,比如Design Notes(设计笔记)能够方便开发成员互相交流,他还可以与Vislual SourceSafe的数据库链接起来,达到源代码控制的目的。
Visual SourceSafe(以下简称VSS)是微软 Visual 微软 Visual Studio 6.0这个开发产品家族的一员,VSS重要性能是对工程进行版本控制和源码控制,它能够详细记录一个源码文档从创建到发布的所有纠正和版本information,而且还可以让你查看所有历史记录并对不同时间的源码进行比较分析,还原源代码到某一时刻和版本状态。VSS具有强大的客户管理权限,可以对每个客户setupR(Read)、C(Check Out)、A(Add)、D(Destroy)权限,非常适合团队开发。
这2款软件的详细试用办法和教程在酷页(http://www.kupage.com)的关于栏目中可以找到。
一、网络环境的搭建
; 图1-1将介绍团队开发的网络环境拓扑结构:
图1-1开发网络拓扑结构
Server重要性能是proxy serverInternet和整个网络控制,而Test Server重要负责源代码调试工作,在该Server上要搭建与Web发布Server一样的平台(包括内部Domain Name System,IIS等),为了节省资源在该Server上装一个数据库,Backup ServerServer重要能是数据的BACKUP,包括开发源代码,开发文档,以及对网站的常规BACKUP,定期对Backup ServerServer上的数据进行物理BACKUP(重要指把数据保存到活动硬盘或刻成CD),在Backup ServerServer上按装VSS,当然如果你的开发资源比较丰富的话,我觉得有必要添加数据库Server和VSSServer。
二、VSS配备
;;; 先分别在Server和开发客户端上按装VSSServer,Dreamweaver CS4和VSS客户端。在开始配备VSS时先解释一下2个最入门的概念,Check Out,将VSS数据库上的文档最新内容下载到本地工作路径,并将该文档锁定,不允许其他人纠正,但可以得到文档最新内容。Check In,将本地工作路径中已纠正好的文档更新到Server上,并将本地路径的文档属性设为只读,释放VSSServer上该文档的锁定状态,这是VSS最入门的2个概念一定要弄明白。下面将介绍创建一个VSS工程的详细步骤。
1、打开VSS的web教程网操作界面,执行Tools/Create Databse命令创建一个VSS数据库,当创建成功后执行Users/Open SourceSafe Database命令,打开VSS数据库。
2、执行Users/Add User命令,打开图2-1操作界面,输入客户名和PASSWORD,若你只赋予该客户只读权限,就选取Read Only复选框。
图2-1 添加客户界面
3、setup客户权限,在管理界面中用鼠标选取客户名Cat,然后执行Tools/Rights Assignments for user…命令打开setup客户权限对话框如图2-2。这里面有4个权限,他们含义分别是Read(只读),Check Out/Check In(文档的鉴入和鉴出),Add/Re名字/删除(添加/纠正/删除VSS上的文档),Destroy(彻底删除,无法还原,setup时要小心)。然后重复2到3步添加开发小组中的其他成员。
图2-2 setup客户权限
4、setupVSS工程中的列表结构,点击程式栏中的微软 Visual SourceSafe 6.0命令,弹出登录对话框,输入客户名或者PASSWORD,单击Browse…安钮,找到Server共享的VSS列表路径(支持网络路径)。
5、创建对象,执行File/Create Project…命令,也可以直接点击快捷menu栏中的安钮,打开创建对象对话框如图3-1,在此可以输入对象名还有关于的描述。所创建的对象在VSS的All Projects栏中表现形式为文档夹。
图3-1 创建对象对话框
6、添加文档,VSS客户界面中支持文档夹的拖拽操作,先进入到工程(文档夹)中,在本地选取好要放到Server上的文档,然后直接拖拽到VSS的客户界面,就会弹出一个上传对话框如图3-2,在对话框中可以输入注释。还有其他关于选项,在此简单简明一下:
Store Only latest version :保存文档最后版本。
Check Out Immediately:当文档以添加完后将它Check Out。
Remove local Copy:文档添加完后就将本地的文档删除掉,最好在添加的文档的时候不要选取这一项。
File Type:选自添加文档的类型,一般选自Auto-detect(自动辨别),可选自工程是二进制文档和文本文档。
图3-2 添加文档对话框
至此入门将介绍完VSS的setup,在准备开发以前必须在VSS中建好相应的文档夹和小组客户帐号。图3-3是已经创建好的VSS对象结构图。
图3-3 VSS客户端试用界面
三、DW配备
由于VSS已经定义好了,再将DW和VSS连结起来不是很困难,下面是配备DW的详细步骤
1、进入DW的编辑界面,执行Site/New Site…命令,打开定义站点对话框,默认是Local Info(本地information)选项卡,在界面中填入开发工程的名称和工程源码所在的地址,填完后入图4-1。
图4-1 Local Info选项卡
2、在站点定义选项对话框中选取Remote Info(远程information)选项卡如图4-2,在界面的Access(远程访问类型)中选取SourceSafe Database。Automatically Upload files to server,在DW中纠正文档保存后自动将纠正的information更新到VSSServer上。Check Out File when Opening,在DW中打开文档自动Check OutServer上对应的文档。
图4-2 Remote Info选项卡
3、在Remote Info选项卡中点击Settings…安钮,打开图5-1对话框,在该对话中分别填入Database Path,VSS数据库路径,。工程路径,注意对象路径一定要以#36;开始,路径支持汉字。然后填入VSS客户的客户名和PASSWORD。
图5-1 VSS客户端登录setup
4、在站点定义选项对话框中选取Testing Server(测试Serverinformation)选项卡如图5-2,Server Model:选自Web工程所才用的技术类型,DW支持绝大多数的Web动态语言。Access:访问类型,有FTP和Local/Network(本地/LAN),Testing Server:测试Server地址。 Refresh Remote File List Automatic:自动刷新远程文档列表,URL Prefix:测试Server访问的URL地址。
图5-2 Testing Server
至此,DW和VSS的配备都已经入门配备好了,上面讲到的配备都是必须要setup的,否则2种软件不能够友好协操作,其他还有一部分参数可以根据具体情况来setup。
四、实战开发
;;;到了这一步你可以具体开发了,由于已经将DW和VSS已经连结起来了,对VSS文档的常规操作不需要登录VSS去实现,直接在DW中就可以方便实现。下面将从2个方面来实战开发,先介绍在DW中开发然后再介绍在VSS中进行版本控制和源代码还原比较等。
(一)、在DW中的关于应用
;; 1、在DW中连结VSSServer
打开DW编辑窗口后的第一件事就是连结远程Server,也就是VSSServer。在DW中执行Site/Site Files…命令或者按F8shortcut keys打开图6-1 Site面板,Site面板中可以查看到本地文档列表、测试Server文档列表和远程VSS上面的文档列表。我们对文档的编写和操作重要是在Local VInternet EXP操作系统lorerw中进行的。当然你也可以不连结远程Server,在本地打开一个未被其他小组成员Check Out的文档时DW自动连结VSSServer,并且将该文档自动Check Out,在Site面板中的文档有三种状态,文档锁定状态:当前文档没有被任何其他成员Check Out编辑,这样的文档DW在文档名前加一个小锁。文档被自己Check Out 状态:也就是文档自己正在编辑或者已经Check Out了,DW在文档名前加一个蓝色的小勾。文档被别人Check Out 状态:文档被其他小组成员Check Out了,DW在文档名前加一个红色的小勾。
图6-1 Site面板
2、源源代码文档的入门操作
在图6-1 Site编辑界面中可以对文档进行Put/Get,Check Out/In操作,Check Out 和Check In在前面已经介绍过了不在简明了。Put是将本地文档上载到VSSServer上,Get就是把VSSServer上的文档下载下来。Put/Get和Check Out/In的区别就是VSS是否对文档内容的操作做了BACKUP和记录,Check Out/In操作在VSS上都有相应的记录,而Put/Get就没有。
在Site界面中可以用鼠标直接拖拽实现文档的Put/Get,在DW默认setup中从VSSServer上拖拽文档会弹出如图6-2的information提醒框(Check Out/In操作也会有这个提醒框),该文本框的含义是是否将与该文档有关连的文档都Put/Get(Check Out/In)。强烈建议在此选自No,而且还把不要提醒消息这个复选框勾选。如果你选自了Yes,你的操作将会非常慢而且还会造成一部分不必要的错误(DW会用VSS上旧文档覆盖本地已纠正但未Check In的文档),DW把与当前文档有关连的所有文档都操作了,如Include文档、图像文档、CSS层叠样式表文档等,其实有些不是经常需要纠正的文档。如果有一天需要选自它同时操作与他有关联的文档,执行Edit/Preferences…命令打开参数setup对话框,选自Site选项卡,把Dependent Files(关连文档)中的2个复选框勾选即可。
图6-2 information提醒框
3、Design Notes(设计笔记)
细心的人也许发现了图1-12中有几个文档名后面有个黄色的小标记,这是Macintoshromedia在发布Dreamweaver 3.0时增加的一个性能Design Notes(设计笔记),开发人员可以对该文档增加设计笔记和心得,这些笔记和心得是累加的,可以记录各个开发人员的笔记,这些information任何一个打开该文档的开发人员都可以查看到,这样开发人员就可以非常方便地勾通。当用DW和VSS联合开发时,这些笔记心得还可以保存到VSSServer上。VSS对每个文档都有个Comment(注释)性能,这和DW的Design Notes的性能有点重复,不过DW的Design Notes性能强大许多,还是推荐试用Desgin Notes,在DW3和DW4的版本中Design Notes不支持汉字,但Dreamweaver CS4可以支持汉字,这一点对那些英文不太好的人来说是一个福音。
若要对一个文档添加Design Notes,就先用鼠标在Files面板中选取该文档,点击鼠标右建弹出快捷menu执行Design Notes命令,打开图7-1。在界面中就有2个选项卡,一个是Basic Info(入门information),另一个是All Info(所有information),先选自该文档的当前版本,然后在Notes(笔记)文本框中添加information,可以通过点击日期安钮插入当前windows的日期。在All Info选项卡中可以查看所Notes。
图7-1 设计笔记对话框
4、保持与远程Server的同步(Synchronize)
同步是把本地源源代码和远程Server上源源代码统一,如果不统一就用最新的覆盖本地或Server旧文档。用鼠标在Site面板中选取本地一个源源代码,然后点击鼠标右建弹出快捷menu执行Synchronize…命令,打开图7-2对话框,在该对话框中可以setup与远程Server(VSSServer)的同步办法。
图7-2 设计笔记对话框
Synchornize下拉menu中有2个选项:
a、整个本地站点和远程Server同步,它会显示当前已定义的站点名称
b、仅对本地已选自的文档和远程服器上的文档同步,可以按住键盘Ctrl键选取多个文档和远程Server相应文档同步
;;; Direction(办法)下拉menu中有3个选项:
;;; Put newer files to remote:把最新的文档放到远程Server上。
Get newer files from remote:从远程Server上得到最新的文档。
Get and Put newer files:保持本地和远程Server上都是最新文档。
复选框的含义是,删除远程Server上不在本地的所有文档。
setup完参数后,点击PrevInternet EXP操作系统lorerw安钮,DW就自动按照规则搜索需要更新的关于文档,如果没有需要同步的文档DW弹出一个消息框,否则完成同步操作。
(二)VSS中的关于应用
由于在DW中可以对VSS的文档进行常规操作,开发人员不需要经常到VSS客户端中进行操作,但比如为源代码setup版本、还原文档等操作需要在VSS中进行。VSS记录了一个源源代码文档从创建、纠正到发布的全过程,记录了每次对该文档的Check In操作,所以在源源代码查错调试方面非常有用。下面将介绍VSS几种典型的操作。
1、源码操作
登录进入VSS客户端界面,用鼠标选取源源代码文档点击右建弹出快捷menu执行Show History…命令,弹出图8-1 历史选项。这是查看记录选项,在此可以定义你要查看的历史记录。
图8-1 历史选项
Include Labels:包括客户指定的标签的历史记录。
Labels Only:仅显示有客户定义标签的历史记录。
From:限制查询历史记录的开始日期,可以输入日期、日期:时间、version(版本)或者label(标签),在输入日期时间格式是需要加一个前缀”D”,如”D02/29/95;12:15″,在输入版本号时需要加一个前缀”L”,如L测试版1。若仅日期格式不需要添加任何前缀,以下格式都是合法的,08.15.95, 08-15-95, or 08/15/95 format, but not as August 15, 1995,注意这些时间格式是老外的习惯,你在输入时候需要注意一下。
To:限制查询历史记录的结束日期,可以输入日期、日期:时间、version(版本)或者label(标签),其输入规则与From的一样。
User: 指定客户名。
;;;在输入特定条件后单击”OK”安钮弹出历史纪录列表,如图8-2 历史记录列表。
图8-2 历史记录列表
VInternet EXP操作系统lorerw:查看源码详细information,如果是二进制文档将不能正常显示。
Details:查看文档的详细information,点击该安钮会弹出一个对话框,可以查看该文档的版本information、操作时间、操作人以及文档的注释。
Get:得到当前历史记录的源源代码文档,并不是该源代码的最新版本。
Check Out:将该文档Check Out。
Diff:源码比较。单击该安钮会弹出源码比较选项对话框,直接单击”OK”安钮打开图8-3界面。从界面中可以清晰看到源代码的异同。VSS中用3种颜色来区分源代码的变化,蓝色源代码表示被删除的行,红色源代码表示被纠正的源代码,蓝色源代码表示新增加的源代码。
图 8-3 源源代码比较
Pin/Unpin:锁定/解锁所选自的源源代码文档,不允许别人再做Check Out/In操作。文档被锁定后VSS就在文档名前加一个标识。
Rollback:还原当前版本。该操作是不可逆的,源码被还原后,比该记录晚的历史记录全部被清除。建议不要过多试用该性能,可以用通过单击”Get”安钮得到当前版本的源源代码,再对源码做出纠正,这样做保留了历史记录不被清楚,同时也达到了Rollback的性能。
Report:比较报告。VSS把分析出来的结果输出到打印机、文档和剪贴板。
2、还原删除记录
VSS中可以对删除的文档和对象进行还原,如果客户在删除文档时选自了Destroy permanently(永久删除),那该操作不可还原。只有客户的权限含有Destroy才能进行彻底删除,当然也只有具有Destroy权限的客户才能还原被删除的文档。用鼠标在VSS客户端界面的All Projects窗口中选自一个对象(也就是文档夹),然后点击右建弹出快捷menu执行PropertInternet EXP操作系统lorers…命令,打开该对象的属性面板选自删除d Items(删除工程)选项卡如图9-1所示。
;;; 用鼠标选自欲操作的文档,可以按键盘Ctrl键选取多个文档,然后单击Recover(还原)或Purge(彻底删除,不可还原)安钮。
图 9-1 还原被删除的文档
3、版本控制
当Web工程开发完成后,就有必要对源源代码封一个版本,这样有利于工程发布以及更新,用鼠标在VSS客户端界面的All Projects窗口中选自一个对象(也就是文档夹),然后点击右建弹出快捷menu执行Label…命令,打开setup版本窗口如图9-2
图 9-2 版本setup
;;;只需要在Label中输入版本号然后单击OK安钮就可以了,在Comment中可输入描述内容。当封了一个版本后,该工程下面的所有源源代码都封了一个版本,如图8-2 可以看到有条历史记录的Action是”Label 1″。