本文公开了捕获和恢复开发环境的状态的技术。示例方法可以包括:由处理设备确定第一开发环境的状态,其中第一开发环境显示对应于程序修改的文件集合的内容;存储表示第一开发环境的状态的状态数据,其中状态数据标识集合中的文件;接收更新第二开发环境的请求;以及使用状态数据更新第二开发环境的状态,其中第二开发环境的更新的状态显示对应于程序修改的文件集合的内容。的文件集合的内容。的文件集合的内容。
【技术实现步骤摘要】
具有增强的状态切换和共享的开发环境管理器
[0001]本公开一般涉及集成开发环境(IDE)和版本控制系统,并且更具体地涉及能够在使用不同版本源代码的开发项目之间更有效地切换的开发环境。
技术介绍
[0002]集成开发环境(IDE)通过提供用户应用程序,使计算机程序员能够创建、修改、构建和测试计算机程序,从而提高计算机编程的速度和效率。IDE可以提供与一个或多个开发工具(诸如文本编辑器、语法检查器、编译器、调试器和版本控制系统)交互的单个集成用户接口。版本控制系统可以为一个或多个计算机程序存储不同版本的源代码。IDE可以与版本控制系统集成,使计算机程序员能够访问和修改不同版本的源代码。
附图说明
[0003]通过示例而非限制的方式来说明本公开,并且当结合附图考虑时,可以参考以下详细描述来更全面地理解本公开,其中:
[0004]图1描绘了根据本公开的一个或多个方面的示例计算环境的高级框图;
[0005]图2描绘了根据本公开的一个或多个方面的具有开发环境的示例计算设备的框图;
[0006]图3描绘了根据本公开的一个或多个方面的用于确定和更新开发环境的状态的示例方法的流程图;
[0007]图4描绘了根据本公开的一个或多个方面的用于确定和更新开发环境的状态的示例计算设备的框图;
[0008]图5描绘了根据本公开的示例操作的说明性计算机系统的框图。
具体实施方式
[0009]现代计算机编程经常涉及使用开发环境对计算机程序进行修改。程序修改可能包括缺陷修复、新功能或其他增强,并且可能涉及更改一个或多个文件(例如源代码文件)。开发环境可以与多种开发工具集成,可以称为集成开发环境(IDE)。开发环境可以使用户能够执行许多程序修改,并且出于各种原因,用户可能想要在不同的程序修改之间来回切换。例如,用户可能开始程序修改并被中断以进行更紧急的程序修改。用户也可以或可替换地选择在等待构建完成、测试资源变得可用或同事的帮助时进行另一个程序修改。
[0010]处理程序修改可能涉及处理许多不同的文件和工具,并且在程序修改之间切换可能很耗时并且容易出错。当不同的程序修改对应于相同文件的不同版本或者单个程序修改被多个用户访问时,这可能会进一步复杂化。多个用户可以包括一个或多个开发人员、评审人员、测试人员、产品经理、其他用户或其组合。在一个示例中,用户可以使用相同的开发环境进行许多程序修改,并且可以在程序修改之间切换以避免空闲。在另一示例中,用户可以使用多个开发环境,并且第一开发环境可以在第一计算设备上,第二开发环境可以在第二
计算设备上。用户可以在开发环境之间切换,以执行程序修改或确保程序修改在不同的计算设备(例如,不同的硬件架构、内核版本、操作系统、应用程序、配置等)上工作。在又一示例中,不同的开发环境可以由不同的用户使用。不同的用户可能希望快速访问相同的程序修改,并且可能针对相同的开发任务或不同的开发任务(例如,开发、评审、测试、构建、集成或部署)快速访问相同的程序修改。
[0011]版本控制系统通常用于组织程序修改,并且可以显示与每个程序修改相关联的变更集。版本控制系统可以包括显示文件集合的工具,甚至可以显示已经改变的文件行。但是变更集通常只是在进行程序修改时被访问的文件的一部分。可能还有许多与程序修改相关的其他文件,可以访问这些文件来进行程序修改,但这些文件不会被更改。例如,可能存在为了语法检查、编译、链接、执行、初始化、调试、测试、记录、其他原因或其组合而被访问的文件。其中一些文件可能不是更改集的一部分,因为它们未被修改或不受版本控制(例如,临时文件)。当切换到程序修改时,使这些其他文件可用可能是有利的。
[0012]本公开的各方面通过提供存储开发环境的状态并使得相同的开发环境或不同的开发环境能够基于存储的状态被更新的技术来解决上述和其他缺陷。在一个示例中,相同的开发环境可以在用户切换到另一程序修改之前捕获特定状态,并且可以在从另一程序修改切换回来时恢复该特定状态。在另一个示例中,开发环境可以捕获状态并共享该状态,使得可以基于该状态更新另一个开发环境。在任一示例中,开发环境都可以通过生成状态数据和存储状态数据来捕获状态。状态日期可以指示打开的文件(例如,显示的文件)、修改的文件(例如,变更集)、访问的文件(例如,用于语法检查或构建的文件)、临时文件(例如,构建工件)、工具(例如,调试点)、运行时状态(例如,测试中的可执行文件的存储器)或其他属性。状态数据可以持久地存储在本地计算设备(例如,本地存储)、另一计算设备(例如,对等设备或网络存储)、版本控制系统(例如,储存库)、其他位置或其组合中。
[0013]这里描述的系统和方法包括增强计算机编程
的技术。特别是,该技术的各个方面可以通过使计算机程序员能够更有效地并行处理不同的程序修改来提高开发环境的有效性。该技术使开发环境能够更快地进行程序修改,并减少在程序修改之间切换所涉及的手动开销。在一个示例中,程序修改可能涉及相同源代码的不同版本,并且不同版本可能使用相同的文件名显示,这可能导致混淆。该技术可以减少或避免用户手动关闭和打开文件、工具或开发环境的其他功能,从而减少混乱。在其他方面,该技术可以通过避免在处理多个程序修改时保持所有内容打开或运行的需要来减少计算资源的消耗。在过去,开发人员可以通过为每个程序修改同时运行IDE的实例来实现快速切换,并且这些实例可以在同一个桌面或不同的桌面或设备上。当用户可以更有效地在程序修改之间切换时,这是不必要的。因此,运行的程序和打开的文件较少,这减少了存储器资源、临时存储资源、I/O资源、处理资源、其他计算资源或其组合。
[0014]下面通过示例而非限制的方式详细描述上述方法和系统的各个方面。下面提供的示例讨论了使用人类可读源代码的开发环境。在其他示例中,开发环境可以用于处理其他文件,这些文件可以包括非人类可读代码(例如,目标代码、微代码)、图形图像(例如,图标、徽标、照片、图片)、可执行图像(例如,VM图像、容器图像)、文档、其他文件或其组合。
[0015]图1示出了本公开的实现可以在其中操作的示例性计算环境100。计算环境100可以是使用户能够设计、创建、编辑、配置、测试和部署计算机程序的开发平台。在一个示例
中,计算环境100可以是使用本地应用、基于网络的应用、基于云的应用、其他应用或其组合的开发平台。开发平台可以与
[0016]其他开发平台或其组合相同或相似。在所示的示例中,计算环境100可以包括一个或多个计算设备110A
‑
Z、开发环境120、版本数据存储130和网络140。
[0017]计算设备110A
‑
Z可以包括台式计算机、膝上型计算机、移动电话、平板计算机、其他个人计算设备、服务器计算机或其组合。在一些实现中,计算设备110可以被称为“客户端设备”或“用户设备”,并且与一个或多个用户112A
‑
Z相关联。用户112A
‑
Z可以是以一个或多个开发本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种方法,包括:由处理设备确定第一开发环境的状态,其中所述第一开发环境显示对应于程序修改的文件集合的内容;存储表示所述第一开发环境的状态的状态数据,其中所述状态数据标识所述集合中的文件;接收更新第二开发环境的请求;以及使用所述状态数据更新第二开发环境的状态,其中所述第二开发环境的更新的状态显示对应于所述程序修改的所述文件集合的所述内容。2.根据权利要求1所述的方法,其中,所述第一开发环境包括集成开发环境IDE,并且其中所述文件集合包括源代码并且与版本控制系统的分支相关联。3.根据权利要求1所述的方法,还包括:接收从与第一分支相关联的程序修改切换到与第二分支相关联的第二程序修改的第一请求,其中所述第一请求启动所述状态数据的存储;以及接收切换回与所述第一分支相关联的程序修改的第二请求,其中所述第二请求发起使用所述状态数据的所述更新。4.根据权利要求1所述的方法,其中,使用所述状态数据的所述更新包括关闭第一分支上的文件版本和打开第二分支上的文件版本。5.根据权利要求1所述的方法,其中,所述状态数据标识自所述程序修改开始以来由所述第一开发环境访问的多个文件,其中所述多个文件包含包括所述程序修改的改变的多个文件和缺少所述程序修改的改变的多个文件。6.根据权利要求1所述的方法,其中,所述状态数据标识所述第一开发环境的用户接口的布置,其中所述布置包括在所述用户接口中不同位置的多个打开的文件。7.根据权利要求1所述的方法,其中,所述第一开发环境和所述第二开发环境在不同的时间点是相同的开发环境。8.根据权利要求1所述的方法,其中,所述第一开发环境和所述第二开发环境是不同计算设备上的不同开发环境。9.根据权利要求1所述的方法,还包括使用版本控制系统在所述第一开发环境和所述第二开发环境之间共享所述状态数据,其中所述状态数据与变更集一起被存储在所述版本控制系统的提交对象中。10.根据权利要求1所述的方法,其中,所述状态数据包括在所述第一开发环境中正被调试的可执行程序的运行时数据,并且用于将所述运行时数据恢复到所述第二开发环境。11.根据权利要求1所述的方法,其中,所述第一开发环境用于进行程序修改,并且所述第二开发环境用于评审或测试所述程序修改。12.根据权...
【专利技术属性】
技术研发人员:A塔尔莫,I格什特,
申请(专利权)人:红帽公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。