rsync can't detect updated files 

Case 1 

Symptom 

My rsync failed to detect many updated files. For example:

-rw-rw-r-- 1 tong tong 283238 Jan 17 10:55 /java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/dbobj/DBObject.java
-rw-rw-r-- 1 tong tong 283754 Jan 20 23:30 com/jcorporate/expresso/core/dbobj/DBObject.java

We can see that DBObject.java in cvs is defenately news than that in java/expresso/. But rsync thinks not.

Conclusion 

Now I realize that it is the 'Change' time's problem:

File: '/java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/dbobj/DBObject.java'
Size: 283238 Blocks: 568 IO Block: 4096 Regular File
Device: 1645h/5701d Inode: 85379 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 9999/ tong) Gid: ( 1001/ tong)
Access: Tue Jan 21 15:22:45 2003
Modify: Fri Jan 17 10:55:18 2003
Change: Tue Jan 21 15:22:24 2003

Case 2 

Symptom 

$ stat /java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/dbobj/DBObject.java com/jcorporate/expresso/core/dbobj/DBObject.java
  File: "/java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/dbobj/DBObject.java"
  Size: 283238          Blocks: 568        IO Block: 4096   Regular File
Device: 1645h/5701d     Inode: 344960      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 9999/    tong)   Gid: ( 1001/    tong)
Access: Tue Jan 21 19:08:43 2003
Modify: Thu Nov 11 11:11:00 1971
Change: Tue Jan 21 19:09:05 2003
  File: "com/jcorporate/expresso/core/dbobj/DBObject.java"
  Size: 283754          Blocks: 568        IO Block: 4096   Regular File
Device: 1645h/5701d     Inode: 950973      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 9999/    tong)   Gid: ( 1001/    tong)
Access: Tue Jan 21 19:11:43 2003
Modify: Tue Jan 21 19:11:43 2003
Change: Tue Jan 21 19:11:43 2003

— everything newser

$ rsync -nvuaC /export/cvswork/expresso/expresso-web/WEB-INF/src/ /java/expresso/webapps/ROOT/WEB-INF/src/ | grep DBObject
com/jcorporate/expresso/ext/xml/dbobj/XMLDBObject.java
com/jcorporate/expresso/services/dbobj/RegistrationDBObject.java
com/jcorporate/expresso/services/dbobj/SecurityDBObject.java

— no BObject.java

/export/cvswork/expresso/expresso-web/WEB-INF/src$ rsync -nvuaC com/jcorporate/expresso/core/dbobj/DBObject.java /java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/dbobj/DBObject.java
building file list ... done
DBObject.java
wrote 82 bytes  read 24 bytes  212.00 bytes/sec
total size is 283754  speedup is 2676.92

— will do. but why not previously?

Conclusion 

oh, damn, the 'core' that is in the default rsync —exclude rule. Specify them explicitly can fix the problem:

$ rsync -nvuaC /export/cvswork/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/ /java/expresso/webapps/ROOT/WEB-INF/src/com/jcorporate/expresso/core/ | grep DBObject
dbobj/AuditedSecuredDBObject.java
dbobj/AutoDBObject.java
dbobj/DBObject.java
dbobj/DBObjectDef.java
dbobj/DBObjectImpl.java
dbobj/HistAuditSecuredDBObject.java
dbobj/JDBCDBObject.java
dbobj/MultiDBObject.java
dbobj/RowSecuredDBObject.java
dbobj/SecuredDBObject.java
dbobj/tests/DBObjectTest.java
dbobj/tests/MultiDBObjectTest.java