why are these files being transfered

Harry Putnam reader at newsguy.com
Sun Jun 1 02:24:19 EST 2003


Wayne Davison <wayned at samba.org> writes:

> On Sat, May 31, 2003 at 01:04:40AM -0700, Harry Putnam wrote:
>> I tested it on a real cvs checked out module and just as I suspected
>> after rsyncing from the buffer directory where diff reports no
>> differnces.  Then try cvs commit.   Cvs demands every file be
>> commited.
>
> If you are syncing two cvs-checked-out areas, you must make sure NOT to
> use the -C (--cvs-exclude) option or you won't update the files in the
> CVS dir, and that will cause you problems.

No.. one is not a checked out module ... the source of rsync command
is nearly a mirror but no CVS directories


Wayne Davison <wayned at samba.org> writes:

> On Fri, May 30, 2003 at 08:02:11PM -0700, Harry Putnam wrote:
>> Why are they being transferred?
>
> Undoubtedly because their timestamps are different.  Only files that
> have identical size and timestamp are considered to be identical in an
> rsync transfer (unless you use -c).  In the case of having identical
> files with different timestamps, rsync will transfer just the checksum
> data to determine that the files are indeed identical, and move into
> place a file with an identical timestamp (which looks just like the
> files are being transferred, but no actual file-data gets sent).

But it seem cvs then sees them as modified.  Not sure I see the point
of any modification, time stamp or whatever if the files are the same.

Further, I've blown one of my test apparently.  I thought I saw the
same behavior with --size-only flag set but trying now a few times 
I see --size-only does cure the problem.

Maybe I'm going at this backward.  Would it satisfy cvs if I followed
this proceedure:

Here /new/base.t is the checked out module
./cvs_buf.t is a near mirror but with no CVS directories.  Revisions
happen here and are then to be rsynced to the checked out module.

  rsync -navvzC --size-only  ./cvs_buf.t/ /new/base.t 

Once this transfer is done and any changes in /cvs_buf.t are
transferred to /new/base   

  run cvs commit

Now somehow transfer only timestamps from /new/base.t to ./cvs_buf.t

I thought I remembered a flag for that purpose, but don't see it now
in man rsync.  Maybe I'm thinking of ftp or something.

A further questions here:

A section of man page gives a rough sketch of something a lot like
what I want to do:

       To synchronize my samba source trees I use  the  following
       Makefile targets:

              get:
              rsync -avuzb --exclude '*~' samba:samba/ .

              put:
              rsync -Cavuzb . samba:samba/

              sync: get put


Do you know the details of how this works?  What is meant by 
`Makefile targets'.  and what is happening above.



More information about the rsync mailing list