Sergey Poznyakoff
2b1bffbad6
Optimize searches for directory structures by keeping a pointer to struct directory in struct name.
* src/common.h (struct name): New member `directory' replaces
dir_contents. Rearrange members.
(rebase_directory): Change signature.
(scan_directory): Change signature.
(name_fill_directory)
(directory_contents, safe_directory_contents): New prototypes.
(append_incremental_renames): Change signature.
(replace_prefix): New proto.
* src/compare.c (diff_dumpdir): Use directory_contents + scan_directory.
* src/create.c
* src/incremen.c (replace_prefix): Move to misc.c
(rebase_directory): Rewrite.
(scan_directory): Return pointer to struct directory.
(directory_contents, safe_directory_contents): New functions.
(get_directory_contents): Remove.
(name_fill_directory): New function.
(append_incremental_renames): Rewrite. This also fixes a memory leak.
* src/names.c (name_gather, addname): Reflect changes in struct name.
(add_hierarchy_to_namelist): Rewrite using name_fill_directory and
directory_contents.
(rebase_child_list): Update call to rebase_directory.
(collect_and_sort_names): Optimize
* src/misc.c (replace_prefix): New function.
* src/names.c (add_hierarchy_to_namelist): Use new get_directory_contents.
* tests/incr05.at: New test case.
* tests/incr06.at: New test case.
* tests/Makefile.am, test/testsuite.at: Add incr05.at and incr06.at.
* doc/Makefile.am (check-options): Improve rule.
* doc/tar.texi, NEWS: Update.
2009-08-08 15:29:19 +03:00
..
2008-03-06 08:17:33 +00:00
2009-03-07 16:30:44 +02:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-07-31 07:12:50 +00:00
2009-08-05 10:38:50 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-08-05 10:38:50 +03:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2009-08-08 15:29:19 +03:00
2009-08-08 15:29:19 +03:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2009-07-30 23:49:32 +03:00
2009-07-30 23:49:32 +03:00
2009-07-30 23:49:32 +03:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2009-08-08 15:29:19 +03:00
2009-08-07 14:52:55 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-14 10:17:14 +00:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-05-25 10:18:59 +03:00
2007-06-27 13:30:12 +00:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2009-08-07 14:52:55 +03:00
2008-07-31 07:12:50 +00:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2009-05-25 10:18:59 +03:00
2008-02-08 10:32:15 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-10-22 20:55:35 +00:00
2009-05-25 10:18:59 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-10-04 07:16:39 +00:00
2009-08-08 15:29:19 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-05-25 10:18:59 +03:00
2007-06-27 13:30:12 +00:00
2009-07-30 11:43:16 +03:00