Last night i try to create my local Fedora 12 update repository, rsync do it's job very well, i only need to issue this command
rsync -azuv --progress http://a-fedora-update-repo-server/ therepodir
get all update files for approximately 7.1GB, edit /etc/yum.repos.d/fedora-update.repo or /etc/yum.conf with
name=Fedora $releasever - $basearch - Updates
# disable GPG check
The Fedora projects now using presto plugin, a mechanism which allow yum to download only the different part between current package version and it's new version called delta. After a delta package has been downloaded (.drpm extension) it must be rebuild with it's current package. Using presto of course save our bandwidth. Using presto may be confusing when work with a local repository, i suggest to disable this plugin in /etc/yum.conf.
Setting up apache and call yum check-update and damn, it's works. If you want to check only available update, just get all repodata/ directory from the repo server, put it to your local repo, check update with yum check-update and you can download all available update that yum told you.