If you use .* as a rsync source it will be looped until end of disk ie. rsync -rvhIW crp/.* rohanamobile/public/
That isn't a bug you are using it wrong. drop the .* and it will do what you expect. There should almost never be a * in the source parameter. Also, don't rsync without --times unless you have a really good reason.
You'd probably be better served by asking about something like this on the mailing list, as there is no issue with .* concerning rsync -- this is entirely a shell issue. In this instance you're probably using bash, which is so stupid that it expands ".*" to include "..", which is obviously not what you want. I personally use zsh, which doesn't have this issue. When using bash, you could instead try a "path/.??*" (if all your dot files are at least 2 chars after the dot) or something like ".[a-z]*" (though you might also need A-Z and 0-9 etc added).