2008/1/27, Xavier email@example.com:
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?
I want to emphasize on 'force' issue: FS#9347 and FS#9349.