[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH 28/39] backup-files: Separate lists for empty and non
From: |
Jean Delvare |
Subject: |
[Quilt-dev] [PATCH 28/39] backup-files: Separate lists for empty and non-empty files |
Date: |
Sat, 19 Mar 2011 10:52:58 +0100 |
User-agent: |
quilt/0.48-17.1 |
Create two separate lists for empty and non-empty files. This will
allow dedicated handling of each set of files.
Signed-off-by: Jean Delvare <address@hidden>
Reviewed-by: Raphael Hertzog <address@hidden>
---
quilt/scripts/backup-files.in | 36 ++++++++++++++++++++++--------------
1 file changed, 22 insertions(+), 14 deletions(-)
--- a/quilt/scripts/backup-files.in
+++ b/quilt/scripts/backup-files.in
@@ -142,7 +142,7 @@ restore()
restore_all()
{
- local FILELIST
+ local EMPTY_FILES NONEMPTY_FILES
(cd "$OPT_PREFIX" && find . -type d -print0) \
| xargs -0 mkdir -p
@@ -151,27 +151,35 @@ restore_all()
fi
# Store the list of files to process
- FILELIST=$(gen_tempfile)
- trap "rm -f \"$FILELIST\"" EXIT
+ EMPTY_FILES=$(gen_tempfile)
+ NONEMPTY_FILES=$(gen_tempfile)
+ trap "rm -f \"$EMPTY_FILES\" \"$NONEMPTY_FILES\"" EXIT
cd "$OPT_PREFIX"
- find . -type f -print0 > "$FILELIST"
+ find . -type f -size 0 -print0 > "$EMPTY_FILES"
+ find . -type f -size +0 -print0 > "$NONEMPTY_FILES"
cd "$OLDPWD"
- if [ ! -s "$FILELIST" ]; then
- rm -f "$FILELIST"
- exit
+ if [ -s "$EMPTY_FILES" ]; then
+ xargs -0 rm -f < "$EMPTY_FILES"
+
+ while read -d $'\0' -r
+ do
+ restore_fast "${REPLY#./}"
+ done < "$EMPTY_FILES"
fi
- xargs -0 rm -f < "$FILELIST"
+ if [ -s "$NONEMPTY_FILES" ]; then
+ xargs -0 rm -f < "$NONEMPTY_FILES"
- while read -d $'\0' -r
- do
- restore_fast "${REPLY#./}"
- done < "$FILELIST"
+ while read -d $'\0' -r
+ do
+ restore_fast "${REPLY#./}"
+ done < "$NONEMPTY_FILES"
- if [ -n "$OPT_TOUCH" ]; then
- xargs -0 touch -c < "$FILELIST"
+ if [ -n "$OPT_TOUCH" ]; then
+ xargs -0 touch -c < "$NONEMPTY_FILES"
+ fi
fi
if [ -z "$OPT_KEEP_BACKUP" ]; then
- [Quilt-dev] [PATCH 09/39] backup-files: Inline copy_file and link_or_copy_file, (continued)
- [Quilt-dev] [PATCH 09/39] backup-files: Inline copy_file and link_or_copy_file, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 19/39] backup-files: Use internal implementation of dirname, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 33/39] backup-files: Try mass copy first on copy, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 05/39] Clean up legacy C code, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 11/39] backup-files: Prefix must be a directory, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 30/39] backup-files: Skip first mkdir on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 29/39] backup-files: Try mass link/copy first on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 36/39] backup-files: Drop support for -L on restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 16/39] backup-files: Optimize backup, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 06/39] backup-files: Drop suffix option, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 28/39] backup-files: Separate lists for empty and non-empty files,
Jean Delvare <=
- [Quilt-dev] [PATCH 10/39] backup-files: Speed up ensure_nolinks, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 35/39] backup-files: Inline restore_fast, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 20/39] backup-files: Batch mass restore, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 31/39] backup-files: New function for copy, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 37/39] backup-files: Drop support for backup removal, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 08/39] backup-files: Drop variable progname, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 04/39] BSD compatibility: rmdir, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 32/39] backup-files: Separate function copy_many, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 39/39] backup-files: Skip echo-only loops in silent mode, Jean Delvare, 2011/03/19
- [Quilt-dev] [PATCH 34/39] backup-files: Clarify command line options, Jean Delvare, 2011/03/19