I am confused by all the db scripts we have : gensync, updatesync, repo-add, repo-remove. So I had a look a bit at git history. It seems like originally, there were only gensync and updatesync. Then repo-add and repo-remove were created, doing mostly what gensync and updatesync did. But then, gensync and updatesync were rewritten using repo-add and repo-remove. What this done for a compatibility purpose maybe? Are these two tools still use anywhere? I heard (from Dan ;)) that core/extra used didn't even use the scripts in pacman git repo, but the ones in dbscripts git repo instead. But that community did use repo-add. Do they use repo-add directly, or do they use updatesync? What bothers me here is that there is apparently a functionality that is only found in updatesync/gensync, not repo-add : force flag support. Apparently, updatesync need both the PKGBUILD and the package. It reads the PKGBUILD, look if the force option is specified, and then calls repo-add (with --force option if force flag was found) on the package. That sounds rather ugly. Why don't we handle this the more usual way? makepkg could add a force line in .PKGINFO if it finds the force option in the PKGBUILD. And then repo-add add the force flag if it finds it in .PKGINFO. After that, gensync and updatesync could be totally removed, right?