Bug 438694 - rsync ignores --no-d option
Summary: rsync ignores --no-d option
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: rsync
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Simo Sorce
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-03-24 15:03 UTC by Jesse Keating
Modified: 2013-01-10 03:19 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-03-27 19:20:08 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Jesse Keating 2008-03-24 15:03:33 UTC
Recently (3.0.0~) rsync changed some behaviour when getting remote file listings.

    - Requesting a remote file-listing without specifying -r (--recursive) now
      sends the -d (--dirs) option to the remote rsync rather than sending -r
      along with an extra exclude of /*/*.  If the remote rsync does not
      understand the -d option (i.e. it is 2.6.3 or older), you will need to
      either turn off -d (--no-d), or specify  -r --exclude='/*/*'  manually.

Sounds fine, except that --no-d doesn't seem to do anything:

$ rsync -vvv rsync://wallace.redhat.com/fedora-enchilada/
opening tcp connection to wallace.redhat.com port 873
sending daemon args: --server --sender -vvvde.L . fedora-enchilada/ 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)
[receiver=3.0.0]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)


$ rsync --no-d -vvv rsync://wallace.redhat.com/fedora-enchilada/
opening tcp connection to wallace.redhat.com port 873
sending daemon args: --server --sender -vvvde.L . fedora-enchilada/ 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)
[receiver=3.0.0]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)

But using the other suggested method to get listings seems to work:

$ rsync -vvv -r --exclude='/*/*' rsync://wallace.redhat.com/fedora-enchilada/
[client] add_rule(- /*/*)
opening tcp connection to wallace.redhat.com port 873
sending daemon args: --server --sender -vvvre.iL . fedora-enchilada/ 
receiving file list ... 
recv_file_name(.)
recv_file_name(linux)

Comment 1 Simo Sorce 2008-03-27 19:20:08 UTC
Fixed in 3.0.1pre1


Note You need to log in before you can comment on or make changes to this bug.