Bitbucket macht Subrepos in situ nicht. Daher versucht Mercurial, jedes Ihrer Repositorys an denselben Speicherort zu verschieben, und beschwert sich, wenn Sie versuchen, den Repo-Unterordner2 in eine Remote-Kopie des Unterordner-Repo zu verschieben.
Subrepositories sind scheinbar Bibliotheken, die von mehreren Projekten gemeinsam genutzt werden und daher nicht unter einem einzigen Hauptrepo, sondern in ihrem eigenen Raum leben. Daher müssen Sie separate Remote-Repositorys erstellen, in denen jedes Subrepository (Bibliothek) untergebracht ist, und auf diesen separaten Remote-Pfad in der .hgsub-Datei verweisen.
Beispiel: Ihr Beispielprojekt drei bitbucket gehosteten haben könnte Repositories
https://bitbucket.org/bitbucketname/main_project
https://bitbucket.org/bitbucketname/library1
https://bitbucket.org/bitbucketname/library2
Sie möchten Ihren lokalen Klon des Dateibereich wie folgt aussehen:
/MainFolder/
/MainFolder/SubFolder1
/MainFolder/SubFolder2
In Ihrem lokalen Klon von main_project (Hauptordner), setzen Sie den Standardpfad des übergeordneten Repository auf https://bitbucket.org/bitbucketname/main_project
dh /MainFolder/.hg/hgrc
enthält
[paths]
default = https://bitbucket.org/bitbucketname/main_project
Geben Sie nun die Remote-Pfade der Unterrepositorys/Bibliotheken in der .hgsub-Datei an. Das allgemeine Format des.hgsub Einträge sind:
local/path/to/subrepo = remote/path/to/matching/library
So Ihrer .hgsub relativ lokale und Remote-Pfade (relativ zur Position des Hauptes Repo lokal oder aus der Ferne, wie es der Fall sein kann) enthalten könnte:
SubFolder1 = ../library1
SubFolder2 = ../library2
oder relativ lokale Pfade mit absoluten Pfaden zu jeder Remote-Repo-Bibliothek:
SubFolder1 = https://bitbucket.org/bitbucketname/library1
SubFolder2 = https://bitbucket.org/bitbucketname/library2
oder absolute Pfade für alles:
012.351.
Nun, wenn Sie von Ihrem lokalen Hauptprojekt aus drücken, weiß Mercurial genau, wo alle Unter-Repositorys (lokal) zu finden sind und wohin die Änderungen an jeder Bibliothek (remote) übertragen werden.
Nehmen wir an, Sie möchten die Bibliothek von jemand anderem Ihrem Projekt hinzufügen. Dann wird Ihr .hgsub könnte wie folgt aussehen:
SubFolder1 = ../library1
SubFolder2 = ../library2
another_library = https://bitbucket.org/honkaboy/honkaboys_excellent_library
Ich habe auch versucht mit [Subpfade] wie bei [link] in Beispiel für subrepository gezeigt (https://bitbucket.org/kiilerix/subrepodemo/). Ich habe folgendes am Ende meiner .hgsub-Datei hinzugefügt: (https: // (?: [^ @] + @)? Bitbucket \ .org/[^ /] +/[^ /] +)/(. *) = \ 1- \ 2 Dies hat auch nicht funktioniert, da das Repository für die ersetzte Benutzerschnittstelle nicht existiert. Gibt es eine andere Möglichkeit, dies zu tun, ohne alle meine Repositorys so umzubenennen, dass sie dem regulären Ausdruck entsprechen? Da dies auch ein privates Repository ist, fügt bitbucket dem formatierten Link einen Benutzernamen hinzu und schlägt anderen Benutzern fehl. – samirjaiswal