如何使用VSS对PB8.0下进行版本控制详解

在PB8.0下如何进行版本控制 
说明:由于本系统暂定使用微软的microsoft visual sourcesafe作为版本控制系统,所以,下面所提到的版本控制系统(source control system),就是指VSS。 
写给开发人员: 
1、 组织工作环境 
如果你是第一次接触本系统的开发,请您先登陆vss,到×××下载本系统的程序目录结构,然后运行PB8.0,添加此目录结构。完成后,进行下一步PB与VSS的连接。 
2、 配置连接文件 

在PB8.0集成开发环境下,右击workspace ,在弹出的菜单中选择properties,弹出如图1所示的对话框。选择source control项,进行连接文件的配置。

 source control system:选择要使用的版本控制系统。本系统使用微软的VSS,即选择microsoft visual sourcesafe项。 
 userID:输入你在版本控制系统(VSS)里的用户名。 
 Project:选择VSS上对应的工程。首先单击文本框后面的按钮,显示登陆VSS的对话框,如图2,输入登录名称和密码后单击ok,弹出添加工程对话框.

选则你所需要的工程,单击ok,系统会自动将工程名称和路径添加到文本框中。 
※建议:不要自己填写工程名称和路径,通过选择会更准确且不容易出错。 
 Local Root Directory:为本地根目录输入或选择路径。在这里就是你从VSS上下载程序目录结构所保存路径的上游路径,或者说就是你保存pbw文件的路径的上游路径。注意:所有从版本控制系统check in和check out的workspace文件都必须包含在此路径里。 
 Connect:单击此按钮即于版本控制系统进行连接。 
 Advanced:单击进行高级选项的设置。 
下面还有几个选项,他们的作用如下表,根据需要进行设置。 
选择项 执行功能 
Log All Source Management Activity (默认不被选择) 选中此复选框系统就会自动创建log文件。默认情况下log文件存放在本地目录下,默认文件名是PBSMS.LOG。 
Append To Log File (当选择创建log文件项时,默认选择此子项) 如果log文件存在,添加版本的活动信息到log文件里。 
Overwrite Log File (默认不被选择) 如果log文件存在,覆盖同版本的log文件。 
Require Comments On Check In (默认不被选择) 选中此项,在check in时必须填写注释。 
This Project Requires That I Sometimes Work Offline (默认不被选择) 选择此项,每次当你打开workspace时,不是自动连接到vss上,而是弹出对话框,询问是否连接。 
Delete PowerBuilder Generated Object Files (默认不被选择) 在对象文件(例如SRDs)check in到vss上之后从本地目录上删除此文件。这可能会增加PB刷新版本状态的时间,但是却可以将临时文件的磁盘空间降至最小。 
Perform Diff On Status Update 允许在与VSS上的不同的本地object前显示不同步图标。选择此项也会增加PB刷新版本状态的时间。 
Status Refresh Rate (默认5分钟) 设置PB自动从版本控制服务器上读取信息以决定object是否同步(out of sync)的最短时间段。有效取值范围是1到59,单位是分钟。当你没有连接VSS时此项没有意义。 
※ 由于开发时常常会涉及到不同的版本,为了能够清楚的显示状态信息在此提醒大家一定记得选择perform diff on status update项。 
选择完毕,单击apply或ok,配置完成。此时pb已与vss连接。 
观察pb系统树就会发现多了一些小图标。他们表示了workspace下的所有object的状态。相同的图标也会出现在库画板里。每个图标表示的含义如下: 
图标 代表的状态 

此Object只驻留在本地,没有受到版本控制,或者说没有传到vss上。 


此 object 在vss上已经存在,并且并没有被任何人check out。且此object本地与版本控制服务器上的同步,但是如果在配置连接文件时没有选择Perform Diff On Status Update项,也可能不同步。            

Object被目前的用户check out (控制标签为绿色) 

Object 被其他用户check out (控制标签为红色)此图标有时也显示为× 


表示在本地机器上的Object与版本控制服务器上的不是同步的。 要同步此object,只需在此object上右击,选择get latest version即可。要显示此图标必须在配置连接文件时选中Perform Diff On Status Update项 

附管理员职责: 
1、 设计工程应包含的所有targets的目录结构,发布到VSS上,并对其进行必要的维护。 
2、 维护pbg文件。具体内容请参照帮助文档。 
对pbg文件的一些说明: 
将object、target、workspace 发布到vss上时,原先的pbl不再存在,相应的在vss上出现一个pbg文件。一个pbl对应一个pbg文件。
Pb通过pbg文件决定vss上的object是否比本地的少,刷新pbg文件以确保vss上的最新的objects能够被所有的开发者所用并且这些objects与pbl文件相关联。 
如果你的本地机器上没有所有的文件,并且你的版本控制系统支持SCC PopulateList call,你仍然可以通过pb的SCC API check out或者得到这些文件的最新版本。在这种情况下,为了在系统树或库画板里看到新的objects你可能还需要进行状态刷新。 
理想状况下,pbg文件并不是必需的。如果版本控制系统能够捕获所有通过SCC接口最新添加到工程上的objects,pb就能够得到自从上次刷新之后所有新添加到工程里的objects的列表。然而,许多版本控制系统并不支持这一点,所以,pb使用pbg文件来确保它拥有最新的版本控制下的所有的object的列表 
PBG 文件与pb的所有的其他文件都不一样,它们单独注册并 checked in 到版本控制系统。它们自动记录新添加到版本控制系统的objects,但是当多个用户同时对同一个版本控制工程发布或删除objects时,它们很容易get out of sync, 例如, it is possible to successfully add an object to source control, and to have the check-in of the PBG file fail because it is locked by another user. 
在系统树或者库画板里是无法看到pbg文件的,除非你将此文件系统设置为根(set root)。如果你想手动编辑pbg文件,必须先通过vss界面将其从vss上check out出来,并以文本的形式打开。 
你可以手动添加object到pbg文件里。 
注意的问题: 
1、由于每个人都可通过pb直接登陆到vss上,所以必须严格控制每个人的操作权限,严禁随意删除vss上的文件,否则很容易引起混乱。 


3、 下载最新版本 
由于开始只是下载了程序目录结构,里面应该包含的object并没有全部包含,所以在连接好之后,如果你是第一次使用此环境,这时应该从vss上下载最新的版本。选择你需要的target,右击,选择get latest version,系统将会弹出一个对话框,如图4,选择你所需要的项,单击ok,这时系统会扫描相应的pbg文件(pbg文件的说明见8-9页),凡是在pbg文件里有记录并且vss上有的文件都会列出来,如图5。如果只是在pbg文件里有记录而此object已被从vss上删除,不会被列出;如果pbg文件里没有相应的记录,即使在vss上有此object,也不会被列出。列出与本地相对应的vss上的object的列表,凡是本地没有的object,或者本地的状态与vss上的不一致的,都被默认选择,单击ok即从vss上复制所有选择的object到本地。 

4、 开发 
此时就可进行开发操作,开发过程中主要有以下操作: 
a、 check in、check out操作 
开发过程中主要就是check in、check out操作。当你需要对某个object进行修改时,必须将其check out,否则,修改结果无法保存。而一旦修改完毕请及时将其check in,以方便其他开发者。这些操作在PB环境下就可完成。在系统树里选择你要进行操作的object,右击选择相应选项即可。当然,只有上传到vss上的object才存在 这些操作。 
b、 发布新建的object或target。 
如果由于需要,自己建立了一个新的object,为了大家都能对其进行操作,需要将其发布到VSS上。这时右击你新建的object,选择add to source control即可。 
如果想发布一个新的target,或者多个object,在相应target上右击选择add to source control,此时系统会读取pbg文件,pbg文件里有记录而vss上却没有的object(具体情况请阅读第6-7页),本地没有上传的object 都会出现在如图6所示的列表框里,默认全部选中,选择所需要的单击ok即可。完成后,相应状态图标就会在本地出现。 
图6 
c、 获取新发布的object(只能是object) 
别人发布了新的object,自己需要对其操作,可是本地却没有。这时选择此object所在的target,右击选择get latest version,系统将弹出如图4所示的对话框,选择相应项,单击ok,系统会列出此target下所有的object,并且在本地没有的object前打勾,如图7,只需单击ok就会将新发布的object下载到本地。 

d、 获取object的以前版本 
如果你想获得某个object的以前版本,右击此object,选择show history项,系统会列出对此object的所有的操作历史记录,如图8。选择你需要的,在右侧单击get 即可。 

 
※ 如果改变了某个object的状态时图标没有相应变化,需要刷新一下。 
e、 修改版本控制下(source_controlled)的target的属性以及对其object的添加、删除操作 
如果你想修改版本控制下的target的属性,必须先将其check out。 
如果其下的某些object没有在vss上注册,也就是说没有上传到vss上,那么你可以直接在本地此target目录下删除他们而不用check out此target.。如果你想删除一个vss控制下的object,你必须先在vss上将其删除,然后才可以在本地删除,而不论此object所在的target是否受到版本控制,当然,此object目前不能被check out。 
在vss上删除一个object的正确的方法:在pb环境下,打开库画板,此时会在菜单栏出现一个新的菜单项entry,选择要删除的object,然后在菜单栏选择Entry>Source Control>Remove From Source Control,这样才是正确的方法。如果你想删除多个object,或者一个workspace,选择Remove From Source Control后,弹出的删除对话框会列出你所选择的而且目前没有被check out的所有的object,如图9,默认都被选中。确定你所想要的,单击ok。 


切记不要直接在vss界面删除object,因为这么作,pbg文件不会自动更新。这样pb里对应的object的状态就无法正确显示。 
Pbg文件没有自动更新的后果:当其中一个开发人员进行get latest version操作时,系统将自动扫描pbg文件,如果pbg文件里没有相应的记录,即使在vss上有此object,也不会被列出。 
从vss上删除的文件,实际上并没有被彻底删除,而是被放到了删除记录里。当再次删除同名的文件时,系统就会提示你此文件已被删除过一次,如图10    


如果你没有从vss上彻底删除文件的权利,那你将无法进行此操作。系统提示如图11 


所以当vss上的一个文件被删除后,即使在本地也将相应文件删除了,仍然可以将其恢复。前提是pbg文件里一定要有此文件的记录。如果pbg文件已经刷新成功,此文件的记录不存在,需要手动添加。然后在pb环境下,选择相应的target进行add to source control操作。pbg文件里有记录而vss上没有的object,会出现在Add to source control对话框的列表框里,单击ok,弹出如图12所示对话框。单击yes,此文件就会添加到vss上 


虽然不用check out 版本控制下的target就可以直接添加object,但是如果不check out却无法添加已经存在的库(pbl)到target的库列表。 
f、版本控制下的object的复制、移动操作 
对于一个上传到vss上的object,你无法将它复制到与源pbl相同路径的目的pbl中去;在这时候一般来说,同名的object不应该存在于不同的pbl中。当此object被check out时,可以从其他路径下移动一个没有被进行版本控制的同名的object来替换此object。而object一旦被上传到vss上,不论它是否被check out,都无法在pbl之间移动了。如果你想移动,正确的方法如下: 
1、Export the object from the first PBL. 
2、Remove the object from source control. 
3、Delete the object from the first PBL. 
4、Import the object into the second PBL. 
5、Register the object in source control once again. 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值