Automated merging in a software development environment
Abstract
A system and method for selectively operating on changed elements, for example merging, in a software development environment are provided. A software project comprising one or more version-controlled software development objects, or elements, is associated with one or more defects recording changed elements in the software development environment. The system and method provide for automated merging of changed elements associated with defects tagged for forward merging into the software project, and association or tracking actions for changed elements associated with defects that are tagged as not to be merged. The process of automated merging is carried out using a master work list listing work items representing changed elements ordered chronologically.
Claims
exact text as granted — not AI-modified1 . A method for selectively operating on changed elements in a software development environment, the software development environment comprising a set of at least one defect associated with a software project, the software project comprising a plurality of version-controlled software development objects, each defect being associated with at least one changed element, each changed element comprising a modified version-controlled software development object, the method comprising:
generating, for each of the changed elements in the software project, a work item comprising an identifier of the changed element, an operation for the changed element, and a target for said operation; generating a master work list comprising the said work items chronologically ordered; and for each unique version-controlled software development object associated with the changed elements of each work item in the master work list, executing all work items associated with the unique element in chronological order.
2 . The method of claim 1 , wherein the operation for each of the changed elements is selected from merging the changed element at the target and associating the changed element with the target, the target comprising a target version-controlled software development object.
3 . The method of claim 2 , wherein merging the changed element at the target comprises incorporating modifications to the version-controlled software development object comprised in the changed element with another version of the version-controlled software development object at the target.
4 . The method of claim 3 , wherein merging further comprises storing metadata indicating a merge relationship between the changed element and the target.
5 . The method of claim 2 , wherein associating the changed element with the target comprises storing metadata associating the changed element with the target.
6 . The method of claim 2 , wherein executing all work items associated with the unique element in chronological order for each unique version-controlled software development object comprises:
generating, from the master work list, a sorted work list comprising work items associated with the unique version-controlled software development object, wherein the work items in the first sorted work list are chronologically ordered, and generating a revised master work list comprising the differences between the master work list and the sorted work list,
such that the generating of a sorted work list and the generating of a revised master work list is repeated for each unique version-controlled software development object, until the revised master work list does not contain any further work items; and
executing each sorted work list in chronological order by executing each work item comprised in the sorted work list, until all sorted work lists have been executed.
7 . The method of claim 1 , wherein the at least one changed element is of a type selected from a file and a directory.
8 . The method of claim 1 , wherein the master work list is ordered by type and ordered chronologically.
9 . The method of claim 2 , wherein generating a work item for each of the changed elements in the software project comprises:
generating a list of defects to be incorporated into the software project from the set of at least one defect; generating, from said list of defects to be incorporated, a list of changed elements to be merged with a target in the software project; generating a list of defects not to be incorporated into the software project from the set of at least one defect; generating, from said list of defects comprising changed elements not to be incorporated, a list of changed elements not to be merged; generating, from the list of changed elements to be merged into a target, a work item for each of the said listed changed elements to be merged comprising an identifier for the changed element, a merging operation identifier, and a target identifier; and generating, from the list of defects not to be merged, a work item for each of the said listed changed elements not to be merged comprising an identifier for the changed element, an associating operation identifier, and a target identifier.
10 . The method of claim 9 , further comprising storing, in relation to a defect, an indicator indicating whether the defect is or is not to be incorporated into a software project.
11 . The method of claim 9 , wherein generating a work item for each of the said listed changed elements to be merged further comprises retrieving a comment for association with the target.
12 . A computer program product comprising a computer usable medium embodying a computer readable program, wherein the computer readable program when executed on a computer providing a software development environment comprising a set of at least one defect associated with a software project wherein the software project comprises a plurality of version-controlled software development objects, each defect being associated with at least one changed element, and each changed element comprising a modified version-controlled software development object, causes the computer to:
generate, for each of the changed elements in the software project, a work item comprising an identifier of the changed element, an operation for the changed element, and a target for said operation; generate a master work list comprising the said work items chronologically ordered; and for each unique version-controlled software development object associated with the changed elements of each work item in the master work list, execute all work items associated with the unique element in chronological order.
13 . The computer program product of claim 12 , wherein the operation for each of the changed elements is selected from merging the changed element at the target and associating the changed element with the target, the target comprising a target version-controlled software development object.
14 . The computer program product of claim 13 , wherein when the computer readable program causes the computer to execute all work items associated with the unique element in chronological order for each unique version-controlled software development object, the computer readable program causes the computer to:
generate, from the master work list, a sorted work list comprising work items associated with the unique version-controlled software development object, wherein the work items in the first sorted work list are chronologically ordered, and generate a revised master work list comprising the differences between the master work list and the sorted work list, repeat the generation of the sorted work list and the revised master work list for each unique version-controlled software development object, until the revised master work list does not contain any further work items; and execute each sorted work list in chronological order by executing each work item comprised in the sorted work list, until all sorted work lists have been executed.
15 . The computer program product of claim 14 , wherein when the computer readable program causes the computer to generate a work item comprising an identifier of the changed element for each of the changed elements in the software project, the computer readable program causes the computer to:
generate a list of defects to be incorporated into the software project from the set of at least one defect; generate, from said list of defects to be incorporated, a list of changed elements to be merged with a target, the changed elements being associated with the defects thus listed; generate, from the set of at least one defect associated with the software project, a list of defects not to be incorporated into the software project; generate, from said list of defects not to be incorporated, a list of changed elements not to be merged, the changed elements being associated with the defects thus listed; generate, from the list of changed elements to be merged, a work item for each of the changed elements to be merged comprising an identifier for the changed element, a merging operation identifier, and a target identifier; and generate, from the list of changed elements not to be merged, a work item for each of the changed elements not to be merged comprising an identifier for the changed element, an associating operation identifier, and a target identifier.
16 . The computer program product of claim 15 , wherein merging comprises storing metadata indicating a merge relationship between the changed element and the target, and associating the changed element with the target comprises storing metadata associating the changed element with the target.
17 . The computer program product of claim 16 , wherein each of the changed elements is of a type selected from a file and a directory, and wherein the master work list is ordered by type and chronologically.
18 . A system for selectively operating on changed elements, comprising:
a data repository for storing version-controlled software development objects associated with a software project, and for storing at least one changed element comprising a modified version-controlled software development object; and a software development environment interoperable with the data repository for recording defects associated with a software project, for tracking changed elements, and for merging changed elements with a corresponding version-controlled software development object; wherein the software development environment is configured to:
generate, for each of the changed elements in the software project, a work item comprising an identifier of the changed element, an operation for the changed element, and a target for said operation;
generate a master work list comprising the said work items chronologically ordered; and
for each unique version-controlled software development object associated with the changed elements of each work item in the master work list, execute all work items associated with the unique element in chronological order,
wherein the operation for each of the changed elements is selected from merging the changed element at the target and associating the changed element with the target, the target comprising a target version-controlled software development object.
19 . The system of claim 18 , wherein the software development environment is further configured to execute all work items associated with the unique element in chronological order for each unique version-controlled software development object by:
generating, from the master work list, a sorted work list comprising work items associated with the unique version-controlled software development object, wherein the work items in the first sorted work list are chronologically ordered, and generating a revised master work list comprising the differences between the master work list and the sorted work list, repeating the generation of the sorted work list and the revised master work list for each unique version-controlled software development object, until the revised master work list does not contain any further work items; and executing each sorted work list in chronological order by executing each work item comprised in the sorted work list, until all sorted work lists have been executed.
20 . The system of claim 19 , wherein the software development environment is further configured to generate a work item comprising an identifier of the changed element for each of the changed elements in the software project by:
generating a list of defects to be incorporated into the software project from the set of at least one defect; generating, from said list of defects to be incorporated, a list of changed elements to be merged with a target, the changed elements being associated with the defects thus listed; generating, from the set of at least one defect associated with the software project, a list of defects not to be incorporated into the software project; generating, from said list of defects not to be incorporated, a list of changed elements not to be merged, the changed elements being associated with the defects thus listed; generating, from the list of changed elements to be merged, a work item for each of the changed elements to be merged comprising an identifier for the changed element, a merging operation identifier, and a target identifier; and generating, from the list of changed elements not to be merged, a work item for each of the changed elements not to be merged comprising an identifier for the changed element, an associating operation identifier, and a target identifier.Join the waitlist — get patent alerts
Track US2009210852A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.