本站首页    管理页面    写新日志    退出


«July 2026»
1234
567891011
12131415161718
19202122232425
262728293031


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:
日志总数:11
评论数量:53
留言数量:0
访问次数:153393
建立时间:2006年4月11日




[编程语言]用Python自动化操作Visual SourceSafe版本数据库
原创空间

wdx04 发表于 2008/11/18 20:11:36

最近需要编写一个向VSS服务器自动查找本地Checkout的文件、并且自动Checkin的工具。研究了一下它的API,写下来供参考。 预备工具  Python 版本2.3以上(www.python.org)  ctypes 版本1.0以上(Python 2.5以上自带)  comtypes最新版(comtypes.sf.net) 第一步,创建VSS Database对象 from comtypes.client import CreateObject vssDb = CreateObject(u"SourceSafe.0")所有字符串必须使用Unicode字符集,否则可能出现Win32内存访问异常(下同)。 第二步,打开VSS连接 vssDb.Open(ur'C:\Program Files\Microsoft Visual Studio\VSS\srcsafe.ini', u'username', u'password')第1个参数是srcsafe.ini的完整路径,后两个是用户名和密码。 第三步,定位VSS数据库中的项 item = vssDb.VSSItem(u'$/', False)第1个参数是该项的完整路径(以$/开头),可以指向项目(目录)或文件。第2个参数是指明该项是否已被删除,默认值为False可以省略。 第四步,操作目录项(SubProjects)        添加文件:item.Add(ur'C:\Local_File.txt', u'comments') 创建子目录:item.NewSubproject(u"project_name", u'comments') 取子项: item.Items()[u'child_name'] child_name为子项名称        删除目录: item.Deleted = True        恢复删除: item.Deleted = False 永久删除: item.Destroy() 获取所有文件版本(非递归):item.Get(u'local_directory')  参数local_directory指定把文件存放在哪个本地目录 第五步,操作文件项 签出(Check out): item.Checkout() 签入(Check in): item.Checkin(u'comments') 撤销签出(Undo Check out): item.UndoCheckout() 判断是否已被签出: item.IsCheckedOut (返回值 0:无人Checkout, 1:其他人Checkout, 2:自己Checkout了这个文件) 判断是否被更改: item.IsDifferent()        删除: item.Deleted = True        恢复删除: item.Deleted = False 永久删除: item.Destroy() 判断是否已被删除:item.Deleted 获取版本:item.Get() (仅当该文件在本地不存在或只读时有效)  


阅读全文(7302) | 回复(1) | 编辑 | 精华
 


回复:用Python自动化操作Visual SourceSafe版本数据库
原创空间

dancetime(游客)发表评论于2009/8/29 0:33:36

您好,通过这个方式可以进行获取及改变VSS用户权限的操作吗?


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144849104 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号