Smart patching by targeting particular prior versions of a file
First Claim
Patent Images
1. A method for applying a patch to a file on a computing device, said method comprising:
- receiving a patch, said patch having one or more file changes;
determining, from the received patch, a file on a computing device to be changed by the received patch;
identifying a current state of the determined file on the computing device, said identified current state representing a reference state with at least one other file change applied thereto;
identifying the reference state of the file from the identified current state;
selecting one of the one or more file changes from the received patch as a function of the identified reference state, said selected file change corresponding to the identified reference state; and
applying the selected file change to the identified reference state to change the file.
2 Assignments
0 Petitions
Accused Products
Abstract
Limiting patch size and complexity through heuristics which use file and product attributes to select a subset of reference file versions (prior states) from the set of all file versions. Patches target this set of reference versions. The computing device stores one or more of the prior states. The current state of the file represents at least one of the prior states with an update applied thereto. The invention selects one of the updates from the patch that corresponds to one of the prior states stored on the computing device. The invention applies the selected update to the corresponding prior state to update the file.
113 Citations
40 Claims
-
1. A method for applying a patch to a file on a computing device, said method comprising:
-
receiving a patch, said patch having one or more file changes;
determining, from the received patch, a file on a computing device to be changed by the received patch;
identifying a current state of the determined file on the computing device, said identified current state representing a reference state with at least one other file change applied thereto;
identifying the reference state of the file from the identified current state;
selecting one of the one or more file changes from the received patch as a function of the identified reference state, said selected file change corresponding to the identified reference state; and
applying the selected file change to the identified reference state to change the file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for applying a patch to a file on a computing device, said patch including one or more updates to the file, said method comprising:
-
storing a current version of the file and a plurality of prior versions of the file, said plurality of prior versions having a logical order relative to each other and to the current version, said one or more updates each corresponding to one of the stored prior versions of the file;
identifying, as a function of the logical order of the plurality of prior versions, one of the stored prior versions of the file to be updated; and
selecting one of the updates to apply to the file, said selected one of the updates corresponding to the identified prior version;
applying the selected update to the identified prior version of the file. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A method of providing a patch to create a new version of a file, said method comprising:
-
defining a file to have a plurality of primary versions and one or more secondary versions;
identifying each of the plurality of primary versions;
generating a plurality of updates, each of the generated plurality of updates to apply to each of the identified primary versions resulting in a new version of the file;
aggregating the generated updates to create a patch for the file; and
providing the created patch to an end user. - View Dependent Claims (26, 27, 28, 29)
-
-
30. One or more computer-readable media having computer-executable components for applying a patch to a file on a computing device, said components comprising:
-
a sequencing engine for receiving a patch, said patch having one or more file changes;
a resource update evaluation engine for determining, from the received patch, a file on a computing device to be changed by the received patch, said resource update evaluation engine further identifying a current state of the determined file on the computing device, said identified current state representing a reference state with at least one other file change applied thereto, said resource update evaluation engine further identifying the reference state of the file from the identified current state;
a payload engine for selecting one of the one or more file changes from the received patch as a function of the identified reference state, said selected file change corresponding to the identified reference state; and
a patch engine for applying the selected file change to the identified reference state to change the file. - View Dependent Claims (31, 32, 33, 34, 35)
-
-
36. A system for applying a patch, said system comprising:
-
a memory area storing a current state of a file and a reference state of the file having file changes applied thereto, said memory area further storing a patch, said patch comprising one or more patch changes; and
a processor configured to execute computer-executable instructions for;
determining, from the patch stored in the memory area, the file to be changed by the patch stored in the memory area;
selecting one of the one or more patch changes from the stored patch as a function of the reference state stored in the memory area, said selected patch change corresponding to the reference state stored in the memory area; and
applying the selected patch change to the stored reference state to change the file. - View Dependent Claims (37, 38, 39, 40)
-
Specification