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