TREE-CONVERSION DELTA ENCODING
A first data tree of a first version of the software and a second data tree of a second version of the software may be provided. The first data tree may be converted into a first data tree file, and the second data tree may be converted into a second data tree file. A delta for the first data tree and the second data tree may be generated based on a comparison of the first data tree file and the second data tree file. The delta may be packaged for provision to a client-side agent. The client-side agent may be configured to modify a client-side version of the software based on the delta.
1 . A system for modifying software using a tree-conversion delta encoding, the system comprising:
a software manager configured to provide a first data tree of a first version of the software and a second data tree of a second version of the software to a tree-to-file converter;
the tree-to-file converter configured to convert the first data tree into a first data tree file and convert the second data tree into a second data tree file, the first data tree including a first set of directory nodes and a first set of file nodes, and the second data tree including a second set of directory nodes and a second set of file nodes; and
a file-delta encoding engine configured to generate a delta for the first data tree and the second data tree based on a comparison of the first data tree file and the second data tree file;
wherein:
a pack format of a data tree file includes a tree definition in a header, defines individual file nodes of the data tree using a file name, a file type, and a data location, and defines individual directory nodes of the data tree using a directory name and a directory type;
data of the individual file nodes are placed within the data tree file in an order of data-tree traversal; and
the delta is packaged for provision to a client-side agent, the client-side agent configured to modify a client-side version of the software based on the delta.
2 . The system of claim 1 , wherein the pack format of the data tree file is platform independent and does not include time stamp information, ownership information or version information.
3 . A system for modifying software using a tree-conversion delta encoding, the system comprising:
a software manager configured to provide a first data tree of a first version of the software and a second data tree of a second version of the software to a tree-to-file converter;
the tree-to-file converter configured to convert the first data tree into a first data tree file and convert the second data tree into a second data tree file, the first data tree including a first set of directory nodes and a first set of file nodes, and the second data tree including a second set of directory nodes and a second set of file nodes; and
a file-delta encoding engine configured to generate a delta for the first data tree and the second data tree based on a comparison of the first data tree file and the second data tree file;
wherein the delta is packaged for provision to a client-side agent, the client-side agent configured to modify a client-side version of the software based on the delta.
4 . The system of claim 3 , wherein the comparison of the first data tree file and the second data tree file is performed using bsdiff, xdelta, or zdelta.
5 . The system of claim 3 , wherein conversion of a data tree into a data tree file is performed using tar.
6 . The system of claim 3 , wherein a pack format of a data tree file is platform independent and does not include time stamp information, ownership information or version information.
7 . The system of claim 6 , wherein the pack format of the data tree file includes a tree definition in a header, defines individual file nodes of the data tree using a file name, a file type, and a data location, and defines individual directory nodes of the data tree using a directory name and a directory type.
8 . The system of claim 7 , wherein data of the individual file nodes are placed within the data tree file in an order of data-tree traversal.
9 . The system of claim 3 , wherein the delta for the first data tree and the second data tree is generated as a set of differences to be applied to a copy of the first data tree file to construct a copy of the second data tree file, and the copy of the second data tree file is converted into a copy of the second data tree.
0 . The system of claim 9 , wherein the client-side agent, responsive to receiving the delta, is configured to perform:
accessing the first data tree and the delta;
converting the first data tree into the copy of the first data tree file;
constructing the copy of the second data tree file by applying the delta to the copy of the first data tree file; and
converting the copy of the second data tree file into the copy of the second data tree.
11 . The system of claim 3 , wherein the delta for the first data tree and the second data tree is generated as a set of differences to be applied to an empty file to construct a copy of the second data tree file, and the copy of the second data tree file is converted into a copy of the second data tree.
12 . A method for modifying software using a tree-conversion delta encoding, the method comprising:
providing a first data tree of a first version of the software and a second data tree of a second version of the software;
converting the first data tree into a first data tree file and converting the second data tree into a second data tree file, the first data tree including a first set of directory nodes and a first set of file nodes, and the second data tree including a second set of directory nodes and a second set of file nodes; and
generating a delta for the first data tree and the second data tree based on a comparison of the first data tree file and the second data tree file;
wherein the delta is packaged for provision to a client-side agent, the client-side agent configured to modify a client-side version of the software based on the delta.
13 . The method of claim 12 , wherein the comparison of the first data tree file and the second data tree file is performed using bsdiff, xdelta, or zdelta.
14 . The method of claim 12 , wherein conversion of a data tree into a data tree file is performed using tar.
15 . The method of claim 12 , wherein a pack format of a data tree file is platform independent and does not include time stamp information, ownership information or version information.
16 . The method of claim 15 , wherein the pack format of the data tree file includes a tree definition in a header, defines individual file nodes of the data tree using a file name, a file type, and a data location, and defines individual directory nodes of the data tree using a directory name and a directory type.
17 . The method of claim 16 , wherein data of the individual file nodes are placed within the data tree file in an order of data-tree traversal.
18 . The method of claim 12 , wherein the delta for the first data tree and the second data tree is generated as a set of differences to be applied to a copy of the first data tree file to construct a copy of the second data tree file, and the copy of the second data tree file is converted into a copy of the second data tree.
19 . The method of claim 18 , wherein the client-side agent, responsive to receiving the delta, is configured to perform:
accessing the first data tree and the delta;
converting the first data tree into the copy of the first data tree file;
constructing the copy of the second data tree file by applying the delta to the copy of the first data tree file; and
converting the copy of the second data tree file into the copy of the second data tree.
20 . The method of claim 12 , wherein the delta for the first data tree and the second data tree is generated as a set of differences to be applied to an empty file to construct a copy of the second data tree file, and the copy of the second data tree file is converted into a copy of the second data tree.