The patches for 3.2.4pre2.
[rsync-patches.git] / link-by-hash.diff
index f160ae4549172002fef0a440657e302e54666fbd..a7bb6a55526bcf533b30ab129b633a27a6714efb 100644 (file)
@@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 6b8db0f6440b28d26ef807d17517715c47e62bd9
+based-on: c3b553a93f7090bcbb89c08405f1a5f1c175c864
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -236,7 +236,7 @@ diff --git a/options.c b/options.c
        OPT_NO_D, OPT_APPEND, OPT_NO_ICONV, OPT_INFO, OPT_DEBUG, OPT_BLOCK_SIZE,
 -      OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, OPT_STDERR,
 +      OPT_USERMAP, OPT_GROUPMAP, OPT_CHOWN, OPT_BWLIMIT, OPT_STDERR, OPT_LINK_BY_HASH,
-       OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS,
+       OPT_OLD_COMPRESS, OPT_NEW_COMPRESS, OPT_NO_COMPRESS, OPT_OLD_ARGS,
        OPT_STOP_AFTER, OPT_STOP_AT,
        OPT_REFUSED_BASE = 9000};
 @@ -737,6 +739,7 @@ static struct poptOption long_options[] = {
@@ -257,7 +257,7 @@ diff --git a/options.c b/options.c
        if (am_daemon) {
  #ifdef ICONV_OPTION
                if (!*lp_charset(module_id))
-@@ -1845,6 +1851,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1852,6 +1858,20 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        return 0;
  #endif
  
@@ -278,7 +278,7 @@ diff --git a/options.c b/options.c
                case OPT_STOP_AFTER: {
                        long val;
                        arg = poptGetOptArg(pc);
-@@ -2208,6 +2228,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -2215,6 +2235,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
                        tmpdir = sanitize_path(NULL, tmpdir, NULL, 0, SP_DEFAULT);
                if (backup_dir)
                        backup_dir = sanitize_path(NULL, backup_dir, NULL, 0, SP_DEFAULT);
@@ -287,7 +287,7 @@ diff --git a/options.c b/options.c
        }
        if (daemon_filter_list.head && !am_sender) {
                filter_rule_list *elp = &daemon_filter_list;
-@@ -2877,6 +2899,12 @@ void server_options(char **args, int *argc_p)
+@@ -2884,6 +2906,12 @@ void server_options(char **args, int *argc_p)
                        args[ac++] = "--no-W";
        }
  
@@ -303,7 +303,7 @@ diff --git a/options.c b/options.c
 diff --git a/rsync.1.md b/rsync.1.md
 --- a/rsync.1.md
 +++ b/rsync.1.md
-@@ -419,6 +419,7 @@ detailed description below for a complete description.
+@@ -423,6 +423,7 @@ has its own detailed description later in this man page.
  --compare-dest=DIR       also compare destination files relative to DIR
  --copy-dest=DIR          ... and include copies of unchanged files
  --link-dest=DIR          hardlink to files in DIR when unchanged
@@ -311,13 +311,13 @@ diff --git a/rsync.1.md b/rsync.1.md
  --compress, -z           compress file data during the transfer
  --compress-choice=STR    choose the compression algorithm (aka --zc)
  --compress-level=NUM     explicitly set compression level (aka --zl)
-@@ -2399,6 +2400,50 @@ your home directory (remove the '=' for that).
-     specified (or implied by `-a`).  You can work-around this bug by avoiding
-     the `-o` option when sending to an old rsync.
+@@ -2498,6 +2499,50 @@ your home directory (remove the '=' for that).
+     this bug by avoiding the `-o` option (or using `--no-o`) when sending to an
+     old rsync.
  
 +0.  `--link-by-hash=DIR`
 +
-+    This option hard links the destination files into `DIR`, a link farm
++    This option hard links the destination files into _DIR_, a link farm
 +    arranged by MD5 file hash. The result is that the system will only store
 +    (usually) one copy of the unique contents of each file, regardless of the
 +    file's name (it will use extra files if the links overflow the available
@@ -328,7 +328,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 +    this if you don't care about preserving those extra file attributes (or if
 +    they are always the same for identical files).
 +
-+    The DIR is relative to the destination directory, so either specify a full
++    The _DIR_ is relative to the destination directory, so either specify a full
 +    path to the hash hierarchy, or specify a relative path that puts the links
 +    outside the destination (e.g. "../links").
 +
@@ -400,9 +400,9 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -354,6 +354,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -357,6 +357,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      is 0, which means no limit.  A negative value disables the module.  See
-     also the "lock file" parameter.
+     also the "[lock file](#)" parameter.
  
 +0.  `link by hash dir`
 +