]> Dogcows Code - chaz/tar/commitdiff
Fix interaction between --listed-incremental and -C
authorSergey Poznyakoff <gray@gnu.org.ua>
Thu, 13 Aug 2009 13:45:49 +0000 (16:45 +0300)
committerSergey Poznyakoff <gray@gnu.org.ua>
Thu, 13 Aug 2009 13:45:49 +0000 (16:45 +0300)
* src/incremen.c (read_directory_file): Execute eventual -C dir
after opening the snapshot file.
(collect_and_sort_names): Remove call to chdir_do
* tests/incr05.at, tests/incr06.at: Use relative file names for
snapshot files.

src/incremen.c
src/names.c
tests/incr05.at
tests/incr06.at

index 02cae38a7177a630baeb4806c2706d9708d1d1f1..bb2ba2fe18dc76d688311fa81a2ca64ea9cfaf1d 100644 (file)
@@ -1324,6 +1324,13 @@ read_directory_file (void)
       return;
     }
 
+  /* Consume the first name from the name list and reset the
+     list afterwards.  This is done to change to the new
+     directory, if the first name is a chdir request (-C dir),
+     which is necessary to recreate absolute file names. */
+  name_from_list ();
+  blank_name_list ();
+  
   if (0 < getline (&buf, &bufsize, listed_incremental_stream))
     {
       char *ebuf;
index 6e251e3c159bd7d92b66efa323be8203024c64de..b12efe1be5781702e489ad6bf3099bcda7e00ec5 100644 (file)
@@ -903,7 +903,7 @@ collect_and_sort_names (void)
                        _("Only one -C option is allowed with "
                          "--listed-incremental")));
        }
-      chdir_do (namelist->change_dir);
+
       read_directory_file ();
     }
   
index 7b740d0173b0b18f38b8201bb8c715d020f6771c..098c52e25d113d6ae92e59b1811e401aa23fc2d7 100644 (file)
@@ -25,14 +25,12 @@ mkdir dir/sub
 genfile --file dir/file1
 genfile --file dir/sub/file2
 
-dbfile=`pwd`/db
-
 echo Level 0
-tar -c -f archive.tar -g $dbfile -C dir -v --warning=no-new-dir .
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
 
 genfile --file dir/file3
 echo Level 1
-tar -c -f archive.tar -g $dbfile -C dir -v --warning=no-new-dir .
+tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
 ],
 [0],
 [Level 0
index 6fcac3a36245ec2ad947c0d1ce79cdcc5d8dd6bd..7efd3f2eff4cf157783037ee435d16d8edf3f418 100644 (file)
@@ -28,20 +28,18 @@ genfile --file dir/file1
 genfile --file dir/sub/file2
 genfile --file dir/sub/a/file3
 
-dbfile=`pwd`/db
-
 echo Level 0 . sub
-tar -c -f archive-0.1.tar -g $dbfile.1 -C dir -v --warning=no-new-dir . sub
+tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
 echo Level 0 sub .
-tar -c -f archive-0.2.tar -g $dbfile.2 -C dir -v --warning=no-new-dir sub .
+tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
 
 mkdir dir/c
 genfile --file dir/sub/b/file4
 
 echo Level 1 . sub
-tar -c -f archive-1.1.tar -g $dbfile.1 -C dir -v --warning=no-new-dir . sub
+tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
 echo Level 1 sub .
-tar -c -f archive-1.2.tar -g $dbfile.2 -C dir -v --warning=no-new-dir sub .
+tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
 ],
 [0],
 [Level 0 . sub
This page took 0.030119 seconds and 4 git commands to generate.