Theoretisch wie man mag. Ich habe die normalerweise in einem anderen Repo liegen und ziehe die via
SVN:externals aus diesem anderen Repository rein. Das hat den Vorteil, dass ich bei Updates nur die neue Version committen muss, und dann bei jedem abhängigen Projekt separat entscheiden kann, welche Revision aus dem anderen Repo reingezogen und damit verwendet wird. Aber da gibt es glaube ich zigtausend verschiedene Wege das anders zu lösen.
Mercurial bietet für diesen Zweck sogenannte SubRepositories an, die mehr oder weniger den
SVN-Externals entsprechen. Allerdings merkt sich HG welcher Stand der subs zum jeweiligen ChangeSet des Haupt-Repos gehört.
Allerdings machen solche SubRepos denn Push-Prozess deutlich langsamer, da jedesmal auch alle SupRepos mit gepusht werden, obwohl sich meistens nichts geändert hat.