- Added the inode number to the .rsyncsum file.
[rsync/rsync-patches.git] / links-depth.diff
index 30cac5a..fda452d 100644 (file)
@@ -6,17 +6,23 @@ with the latest codebase, but even in its original form it didn't
 handle relative symlinks properly, and that has not yet been fixed
 in this modified version.
 
+To use this patch, run these commands for a successful build:
+
+    patch -p1 <patches/links-depth.diff
+    ./configure                          (optional if already run)
+    make
+
 --- old/flist.c
 +++ new/flist.c
-@@ -45,6 +45,7 @@ extern int one_file_system;
- extern int copy_dirlinks;
- extern int keep_dirlinks;
+@@ -45,6 +45,7 @@ extern int keep_dirlinks;
+ extern int preserve_acls;
+ extern int preserve_xattrs;
  extern int preserve_links;
 +extern int follow_links_depth;
  extern int preserve_hard_links;
  extern int preserve_devices;
  extern int preserve_specials;
-@@ -715,6 +716,30 @@ static struct file_struct *receive_file_
+@@ -900,6 +901,30 @@ static struct file_struct *recv_file_ent
        return file;
  }
  
@@ -47,7 +53,7 @@ in this modified version.
  /**
   * Create a file_struct for a named file by reading its stat()
   * information and performing extensive checks against global
-@@ -849,7 +874,13 @@ struct file_struct *make_file(char *fnam
+@@ -1042,7 +1067,13 @@ struct file_struct *make_file(const char
        basename_len = strlen(basename) + 1; /* count the '\0' */
  
  #ifdef SUPPORT_LINKS
@@ -64,15 +70,15 @@ in this modified version.
  #endif
 --- old/options.c
 +++ new/options.c
-@@ -44,6 +44,7 @@ int keep_dirlinks = 0;
+@@ -45,6 +45,7 @@ int keep_dirlinks = 0;
  int copy_dirlinks = 0;
  int copy_links = 0;
  int preserve_links = 0;
 +int follow_links_depth = 0;
  int preserve_hard_links = 0;
- int preserve_perms = 0;
- int preserve_executability = 0;
-@@ -287,6 +288,7 @@ void usage(enum logcode F)
+ int preserve_acls = 0;
+ int preserve_xattrs = 0;
+@@ -303,6 +304,7 @@ void usage(enum logcode F)
    rprintf(F,"     --append                append data onto shorter files\n");
    rprintf(F," -d, --dirs                  transfer directories without recursing\n");
    rprintf(F," -l, --links                 copy symlinks as symlinks\n");
@@ -80,7 +86,7 @@ in this modified version.
    rprintf(F," -L, --copy-links            transform symlink into referent file/dir\n");
    rprintf(F,"     --copy-unsafe-links     only \"unsafe\" symlinks are transformed\n");
    rprintf(F,"     --safe-links            ignore symlinks that point outside the source tree\n");
-@@ -432,6 +434,7 @@ static struct poptOption long_options[] 
+@@ -470,6 +472,7 @@ static struct poptOption long_options[] 
    {"links",           'l', POPT_ARG_VAL,    &preserve_links, 1, 0, 0 },
    {"no-links",         0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
    {"no-l",             0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
@@ -90,7 +96,7 @@ in this modified version.
    {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
 --- old/rsync.yo
 +++ new/rsync.yo
-@@ -313,6 +313,7 @@ to the detailed description below for a 
+@@ -314,6 +314,7 @@ to the detailed description below for a 
       --append                append data onto shorter files
   -d, --dirs                  transfer directories without recursing
   -l, --links                 copy symlinks as symlinks