Patent ID: 8615768

Claim:
A computer-implemented method to create a dependency-ordered change list for synchronizing two software environments, the method comprising: receiving an identification of one or more environments from which to export information describing the resources in an environment in a manner that allows comparing environments; joining descriptions of resources from multiple environments to create a joined set of resources by identifying resources in each of the multiple environments that are related, that are available in only one of the multiple environments and resources that are available in more than one of the multiple environments; creating a graph for processing resource changes, wherein the graph indicates dependencies between resources using directed edges that identify dependence of one resource on another resource; sorting topologically the created graph so that the graph contains an order of nodes that allows each node to be processed before any nodes that depend upon it and enforces other relationships and orders relevant to particular problem domains by introducing the other relationships and orders as implied edges in the graph; creating a change list for holding one or more change operations that will conform a target environment to a source environment, wherein the change operations are based on an ordered traversal of the topologically sorted graph; and traversing the created change list and performing each operation specified by the change list; wherein the preceding steps are performed by at least one processor.