监视你的配置管理数据库

Zookeeper的API详解:测试和调试 1. 背景介绍 Apache Zookeeper是一个分布式协调服务,它提供了一组简单的原语,用于构建更复杂的分布式应用程序。Zookeeper的API提供了一种在分布式环境中实现同步、配置管理、命名服务和分布式锁等功能的方法。在本文中,我们将深入探讨Zookeeper的API,了解其测试和调试方法,并通过实际示例来展示如何在实际应用场景中使用Zoo 阅读详情
 

软件配置管理,也叫SCM,是一个软件组织质量改进碰到的第一个瓶颈,因为SCM的核心是进度控制和风险管理,而这两项是所有迫切需要进行质量改进的软件组织的最大弱点。

 

SCM的残酷现实

但是在改进过程中,我们会碰到太多的阻力,其中一个重要的阻力是配置管理流程的执行问题。开发人员认为配置管理约束了他们的自由的创作,配置管理员也不知道如何进行配置管理活动。这些情况在中小型软件企业中普遍存在。

 

管理层不能狠下决心结合配置管理来做好进度和风险的控制,配置管理的流程和制度名存实亡,配置管理员在这样的环境下,可能很难想象自己除了写写无聊的配置管理计划和报告之外,究竟要做些什么工作。

 

另一方面,由于配置管理流程没有真正建立起来,测试人员也在发牢骚,因为他们永远也不知道开发人员在什么时候又改动了一行代码,结果导致他们测试的遗漏,或者是开发人员一时兴起,把大部分控件的名称改成更好听的名字,结果导致测试人员的自动化脚本需要重新录制。

 

VSS是大部分中小软件企业都在使用的配置管理工具。把它称为配置管理工具实在有点勉强,因为缺乏构建管理、流程管理等功能,充其量也不过是个源代码控制工具。但是就是这样一个小工具,却是我们大部分人用在配置管理活动中的核心工具。

 

在这样“残酷”的环境中,真的就只能互相埋怨,被迫接受现实了吗?不,基于VSS,我们还是可以主动的获取很多信息来真正帮助我们。

 

VSS的编程接口

VSS提供了2种类型的编程接口,命令行,自动化接口。VSS的SS.exe通过命令行调用,支持大部分的VSS界面操作的功能。例如通过Checkin 和Checkout命令来签入、签出文件。

 

VSS还提供了一个自动化编程接口IVSS,IVSS是一个基于COM的自动化接口集合,通过Microsoft.VisualStudio.SourceSafe.Interop命名空间暴露给用户使用。它提供了操作VSS数据库的接口。例如,通过IVSSDatabase接口访问和登录VSS数据库。

 

每日配置管理简报

既然,VSS提供了方便的编程接口,那么我们能否利用它来帮助我们进行配置管理活动呢?答案是肯定的。其中一个简单的活动是配置管理记录的自动生成。

 

我们可以在每天晚上下班后运行一个小程序,自动登录到VSS,获取当天开发人员对VSS做的任何改动。并记录到文件中,作为配置管理记录,并且发送到项目组各成员的邮箱中,这样测试人员也可以在每天早上上班的时候知道昨天开发人员进行了哪些更改,是否需要取版本进行回归测试,回归测试的策略也可以方便地根据配置管理记录来进行设计。

 

Surveillant

我把这样一个小程序叫做Surveillant,也就是监视者的意思,当然还有监督者、密探的意思。我想配置管理员和测试人员会喜欢这样一个名字的。但是我并没有其它的企图,只是通过这样一个小程序帮助有需要的人方便地、自动化地获取需要的信息。

 

用C#来写这样一个小程序,我们可以有两个选择,一种是调用命令行的方式,一种是使用VSS的自动化编程接口。

 

命令行的方式比较简单,使用SS的History命令即可,例如:

History $/vss_test -R -Yusername,password –Vd2007-10-18;23:59:59~2007-10-18;00:00:00 -O@C:/report.txt;

 

在C#的代码里只要把其中的项目路径、用户帐号、日期等替换掉,再通过启动一个命令行进程来执行它即可。使用这种命令行方式的前提是把SSDIR环境变量设置好了,也就是说把要连接的VSS数据库的srcsafe.ini文件所在的路径设置成环境变量了。

 

如果是用VSS的自动化编程接口,首先要加入对Microsoft.VisualStudio.SourceSafe.Interop.dll的引用。然后建立一个vss数据库实例的引用,用Open方法登录:

                VSSDatabase vssDatabase = new VSSDatabase();

                vssDatabase.Open(SSDIR, userName, passWord);

 

然后通过get_VSSItem方法指定需要获取变更历史的源代码项目路径,返回一个IVSSItem对象:

                IVSSItem vssFolder = vssDatabase.get_VSSItem(projectPath, false);

 

利用这个对象来递归地访问项目中的所有源代码文件。在这里我用一个叫getVssHistory的递归方法来实现访问所有项目源代码文件在指定的日期范围内的版本历史:

public void getVssHistory(ref StringBuilder result,IVSSItem vssFolder,DateTime from,DateTime to)

        {

            IVSSItems items = vssFolder.get_Items(true);

            foreach (IVSSItem item in items)

            {

                //判断是文件还是目录

                if (item.Type != 0)

                {

                    IVSSVersions versions = item.get_Versions(1);

                    foreach (IVSSVersion version in versions)

                    {

//如果是在指定时间范围内的版本,则纳入返回结果

                       if ((version.Date > from) && (version.Date < to))

                        {

                            result.AppendLine(item.Spec + " ( version "

+ version.VersionNumber.ToString() + " ):"

+ version.Date + " , " + version.Action

+ " by " + version.Username + "/n");

                        }

                    }

                }

                else

                {

                   //如果是目录,还需要递归下去

                    getVssHistory(ref result,item, from, to);

                }

            }

        }

 

可以充分利用IVSS的对象模型,获取更多你需要的信息。例如所有当前处于签出状态的文件,某个VSS用户的权限,等等。

 

把小程序纳入每日构建的执行框架中,或者就简单地利用Windows的任务计划每天晚上定时执行,获取当天的VSS配置库的更改信息,或者其它需要的信息,在第二天早上把这份小小的报告放在每个人的邮件中,每个人都能从这些报告中获得需要的信息。

 

程序的使用

完整的程序源代码可以到我的搏客下载。

http://www.51testing.com/?141783/action_viewspace_itemid_64835.html

 

其实这样一个程序对于开发人员也是非常有用的,我们经常发现自己的bug修改好了,但是过几天又被reopen了,原因是改好的程序又被某个鲁莽的家伙覆盖了。如果每天都能知道其他人在昨天做了什么更改,尤其是清楚是否对自己的“敏感地带”动了手脚的话,很多源代码控制的问题也就能及早发现并修正了。

 

但是更重要的是要把这些记录作为沟通的信息。作为配置管理员,即使是在不规范的配置管理流程中,也需要做好配置库的更改记录和审计工作,当发现某些文件的更改非常频繁,或多人频繁交替更改同一个文件时应该主动问个究竟;当测试人员发现昨天存在源代码的更改时,应该主动联系更改的开发人员,具体了解更改的内容,更改涉及的范围是什么,是否需要及时进行测试,对自动化测试脚本是否有影响,等等。

 

流程的改进是一个循序渐进的过程,如果改进比较缓慢,或者停滞不前,不要等待某个人来搭救我们,自己先想想,有什么东西可以做的,不要依赖流程,更不要互相埋怨,毕竟流程是为了帮助我们建立正确的做事方式,减低出错的机会,而要想做对事情,前提是建立起正确的思维。

 

 

vss服务器端代码管理 Dynamsoft SourceAnywhere for VSS 5.3.1 Professional Server 破解版 立即下载

相关推荐

vss管理工具

配置管理工具,用于IT公司对各种配置相进行管理

VSS使用手册(ZZ)

1 VSS概述 ????版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、

sanuxd的专栏 1656

配置管理工具VSS教程

配置管理工具VSS教程集合,资源来自网上自己整理了下!

【版本控制-VSS】

第三步:在弹出的界面复选框中选中IacceptthetermsoftheLicenseAgreement,表示同意VSS的用户协议。第四步:选择Default默认安装即可,在窗口右边点击Browse选择安装路径,然后点击Install。第一步:将VisualSourceSafe2005安装包解压。第二步:找到setup.exe双击运行。

sinat_23896491的博客 1240

软件配置管理工具 Vss 6

软件配置管理工具 Vss 6 VSS6.0服务器的配置和管理 - VSS6.0 服务器的配置和管理 在 VSS 6.0 服务器安装完毕后,就可以针对开发项目进行 VSS 服务器的配置和管理, 这些工作均需由

软件配置管理工具VSS操作指南

软件配置管理工具VSS操作指南以实践认知世界,以实事构架世界,软件配置管理工具VSS操作指南总能给你最需...该文档为软件配置管理工具VSS操作指南,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看

几种常见代码管理工具比较(2009)

软件配置管理(Configuration Management)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。初读上述定义,感觉不是一点点的有点绕口,枯燥和眩晕了,实际上如果仔细去研究软件工程的理论书籍,有一大堆关于配置管理的概念,定义,理论,工具,总之就是一些把初学者搞晕的东东。所以初学者最好避开这些理论,先去实践一个最基本的代码管理工具,如果公司有

周睿的博客(blog) 10万+

从POI兴趣点获取到ArcGIS中热力图制作

1. POI获取及坐标点转换 POI获取我们要借助下面这个网站↓↓↓ 规划云http://guihuayun.com/poi/ 搜索POI兴趣点并复制兴趣点, 图 新建txt文本文档,粘贴兴趣点 图片 查看后得知,lng为横坐标,lat为纵坐标 文件,另存为csv格式文件,编码为utf—8 打开QGIS,因为我们pol点是从百度地图上获取的,为BD09坐标系,与WGS84有一定偏移【GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 BD09:为.

qq_43173805的博客 5598

Visual Studio .Net团队开发(Visual SourceSave6.0 在C#中的应用)

目录:〇、 摘要一、 开发前的准备二、 创建空的SourceSafe数据库三、 新建项目并加入版本控制四、 获取SourceSafe中的项目五、 版本控制的几个概念六、 版本控制项目的管理七、 总结〇、摘要在企业开发环境中,源代码管理占据着重要的一环。本文将通过一个实例,创建一个源代码管理的项目SourceManager,来讲述如何使用Visual Studio.N

guxinglei 的专栏 2578

新手友好的PythonUI库PySimpleGUI项目已下架,切换4.50.6版本的方法

过期后,如果还想使用 PySimpleGUI,则需要切换到版本 4,而版本 4 在 GitHub 上有很多社区维护的版本可以选择。开发团队尝试了 7 年,但始终没能获得足够的收入来维持项目的运营,尤其是开源项目通常面临资金不足的问题。商业许可证是永久有效的,用户可以在支持期结束后依然使用应用程序,并会提供离线版本的文档以供参考。尽管项目关闭,但对购买了商业许可证的用户,团队仍会在接下来的一年内提供支持。

baidu_34681715的博客 6858

GMSL2摄像头接入避坑指南:从FMC子卡配置到V4L2调用的完整流程(附Ubuntu20.04实测)

本文详细解析了GMSL2摄像头接入的全流程,从FMC子卡配置到V4L2调用的完整指南。基于XC7Z100平台实测经验,提供了硬件选型、带宽优化、Linux驱动配置及高分辨率采集的实战技巧,帮助开发者规避常见问题,提升系统稳定性与性能。

weixin_33737774的博客 417

版本控制工具VSS使用介绍

什么是版本控制? 1.怎样对研发项目进行整体管理   2.项目开发小组的成员之间如何以一种有效的机制进行协调   3.如何进行对小组成员各自承担的子项目的统一管理   4.如何对研发小组各成员所作的修改进行统一汇总   5.如何保留修改的轨迹,以便撤销错误的改动 6. 对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨  版本控制工具介绍

星火燎猿 3万+

pt100和max31865测室温跳变比较大,会从23.04跳到23.47,23.75反复跳变超过了0.5的误差范围,在VDD和GND之间加上0.1和10的滤波电容也不行,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2087

OEM

技术无止境,深陷无意,必须有目的的学习而下面知识点绝对有必要掌握   数据库诊断包 性能监视 (数据库和主机) ADDM (自动数据库诊断监视器) 自动工作量资料档案库 事件通知: 通知方法, 规则和调度 事件历史记录/度量历史记录 (数据库和主机) 封锁 数据库优化数据包 SQL 访问指导 SQL 优化指导 SQL 优化集 重组对象 配置管理

阿虎点滴 605

【YOLOv11】087、YOLOv11多任务学习:检测、分割、分类联合学习

摘要: 工业质检场景中,多任务模型(检测、分类、分割)的需求日益增长。针对边缘设备部署的挑战,本文提出基于YOLOv11的多任务学习方案。通过共享主干网络和设计分支头(检测、分割、分类),实现高效推理;采用动态权重平衡策略解决多任务损失不平衡问题;并优化数据流处理(支持部分标注)和推理剪裁(按需启用分支)。实验表明,该方法在Jetson Orin上帧率提升3倍,内存占用减少40%,为工业质检提供了轻量高效的解决方案。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 445

无线充电Qi协议正向通信FSK的解调设计

常见的FSK解调方法是使用频率锁相环(PLL)来跟踪输入信号中的频率变化。PLL根据输入信号的频率变化来生成数字信号,从而实现FSK信号的解调。本文将详细介绍无线充电Qi协议正向通信FSK的解调设计,并提供相应的源代码。在上述示例代码中,我们首先定义了FSK解调的参数,包括采样率、载波频率、每个比特的持续时间和比特判定阈值。最后,通过比较滤波后的信号与比特判定阈值,我们将解调后的数字数据转换为0和1的序列。请注意,上述代码仅为示例,实际的解调设计可能需要根据具体的应用场景和系统要求进行调整和优化。

IunScala的博客 2442

未来自动化运维软件的三大趋势

自动发现设备数据软件 提供各种查询API接口,并做好权限控制。目的是能够被上层的各种软件调用,是rest接口,xml接口。然后基于各种语言做相应的封装库。 应用程序监视软件 统一的数据采集模块,用于采集设备运行信息,包括磁盘IO,网络带宽,CPU利用率,网络设备的Session数,PPS。这个采集模块在网络设备上能够通过snmp来实现,在服务器上通过定制化的Agent来实现,这个Agent最基础的能力是采集服务器运行数据,最重要的是能执行各种脚本语言并通过脚本语言实现对服务器的各种操作(如更改配置,分析应用

weixin_43683571的博客 371

基于高德地图的单车路径规划与绘制实战(Vue3 + TypeScript)【拓展:货车路径规划函数、限行检测、城市 Adcode】

✅ 支持单辆车路径规划✅ 自动绘制路线✅ 起点、终点、途经点标注✅ 自动缩放视野至全路径✅ 获取路线距离、时长、过路费✅ 提供清除功能✅ 路线信息保存至本文完整实现了一个基于高德地图 JS SDK + Vue3 + TypeScript的👉单车路径规划与绘制模块。核心亮点:清晰的结构;灵活的扩展性;实时路线信息记录(🚀 你可以很方便地将本模块集成到车联网、调度监控、地图展示类项目中。❤️ 如果这篇文章对你有帮助,别忘了:评论区交流 💬。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1264

使用Apache Felix文件安装配置OSGi服务

最近有关托管服务的帖子让我想起了我值得一提的Apache Felix File Install中的一项功能。 在与Holger合作进行项目时,我从他那里了解到File Install不能仅用于管理包。 它还监视配置文件,并在托管服务各自的配置更改时更新托管服务。 文件安装还可以配置托管服务工厂等。 但是,我发现对于配置数据通常是特定于环境的托管服务(例如打印机URL,数据库URL,TCP...

最佳 Java 编程 900

YOLOv11 损失函数解析

YOLOv11 在 YOLO 系列的持续演进中,通过 ​多模态损失协同优化、动态任务感知机制 和 ​超轻量化设计,实现了检测精度与推理效率的再突破。其损失函数设计融合了前沿的几何建模、分布学习与自监督技术,显著提升了复杂场景下的鲁棒性。

浩瀚之水的专栏 6702

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

达梦数据库集群运维实战:从服务启停到状态监控的完整操作指南

本文提供了达梦数据库集群运维的完整操作指南,重点阐述了集群服务与监视器服务的启停流程及状态监控方法。通过详细的命令示例和状态解读,帮助运维人员掌握从服务启动、停止到使用监视器验证集群健康状态的核心技能,确保集群稳定运行。

c7d8e的博客 201

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Oracle Database 10g 许可授予信息

Oracle Database 10g 许可授予信息 Oracle Enterprise Manager 10g Database Control 设计用于管理单个数据库, 而无论该数据库是单个实例还是一个集群数据库。此...

congtudi4111的博客 196

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

(一)Zookeeper简介

Apache ZooKeeper致力于开发和维护开源服务器,以实现高度可靠的分布式协调。 ZooKeeper是一种集中服务,提供配置信息维护、命名、分布式同步、组服务等功能。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实现时,都需要做大量的工作来修复不可避免的bug和竞争条件。由于实现这类服务的困难,应用程序最初通常对它们精打细计算,这使得它们在出现更改时变得脆弱,难以管理。即使操作正确,这些服务的不同实现在部署应用程序时也会导致管理复杂性。 ZooKeeper:因为协调分布式系统就是一个动物园

ntzzzsj的博客 887

配置 Oracle EM

Oracle Enterprise Manager Database Express 是一种轻量级的管理工具。它为单个Oracle数据库(或数据库集群)提供了基于浏览器的开箱即用管理解决方案,包括性能监视、配置管理、管理、诊断和调优。 EM 使用基于Web的控制台,与XML DB中提供的内置Web服务器进行通信。 EM 仅在数据库打开时可用。 这意味着 EM 不能用于启动数据库。 其他需要数据库更...

qq_25045631的博客 8639

服务器发送消息到客户端互斥,分布式相关/Zookeeper.md · 。W/Java-info - Gitee.com

### Zookeeper 概述ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。**分布式应用的优点**- 可靠性 - 单个或几个系统的故障不会使整个系统出现故障。- 可扩展性 - 可以在需要时增加性...

weixin_42500279的博客 357
上一篇: wapiti-1.1.6下载地址
下一篇: 《QTP自动化测试实践》读者来信 - 买《QTP自动化测试实践》后的一些看法
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值