deltas: Search for similar objects (possibly renamed across directories)
The previous diff algorithm was file tree based, and only looked at modified files that lived at the same path. However, components like the Linux kernel have versioned subdirectories, e.g. /usr/lib/modules/$kver/.../ext4.ko. We want to be able to detect these "modified renames" so that we can compute diffs (rollsum, bsdiff).
This commit is contained in:
1 parent
0f74ed62b7
commit
c54df89771
4 files changed
+402
-67
No files matched your search
@@ -152,4 +152,23 @@ _ostree_repo_static_delta_part_have_all_objects (OstreeRepo *repo,
|
||||
gboolean *out_have_all,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
typedef struct {
|
||||
char *checksum;
|
||||
guint64 size;
|
||||
GPtrArray *basenames;
|
||||
} OstreeDeltaContentSizeNames;
|
||||
|
||||
void _ostree_delta_content_sizenames_free (gpointer v);
|
||||
|
||||
gboolean
|
||||
_ostree_delta_compute_similar_objects (OstreeRepo *repo,
|
||||
GVariant *from_commit,
|
||||
GVariant *to_commit,
|
||||
GHashTable *new_reachable_regfile_content,
|
||||
guint similarity_percent_threshold,
|
||||
GHashTable **out_modified_regfile_content,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
G_END_DECLS
|
||||
Reference in new issue
Block a user