Ich habe Schwierigkeiten, verschachtelte Repositorys mit TortoiseHg korrekt zu verfolgen.Was ist der richtige Weg, verschachtelte Hg-Repositories mit Mercurial/TortoiseHg zu behandeln?
Ich habe ein Haupt-Repository, das mein ganzes Projekt verfolgt. Dieses Projekt enthält mehrere kleine Plugins, die in einem Plugins/Unterverzeichnis gespeichert sind.
Ich würde gerne jedes Plugin unabhängig verfolgen (commit und BitBucket für jeden von ihnen), während immer noch in der Lage, ein "ganzes" Commit für mein Projekt, einschließlich der Änderungen an den Plugins und schieben Sie es zu machen ein anderer Ort (nicht BitBucket).
Was ich bisher gemacht habe, ist ein neues Repo für jedes meiner Plugins zu erstellen. Ich kann sie begehen und sie leicht zu BitBucket schieben. Aber als ich mein "Haupt" -Repository begehen wollte, zeigt TortoiseHg eine Fehlermeldung an, die besagt, dass abort: path 'mainrepo\\plugins\\plugin1\\plugin1.php' is inside repo 'mainrepo\\plugins\\plugin1'
.
Ich kann sehen, dass ich etwas falsch mache, aber ich kann nicht sagen, was.
Ich benutze eine Nacht von Mercurial und TortoiseHg (ToirtoiseHg Version 0.9.3 + 237-ea50f793bbe4 und Mercurial-1.4.3 + 225-70dea42c9406) auf WinXP. Ich habe gelesen, dass dieser TortoiseHg-Build Subrepos-Handling hinzugefügt wurde, aber ich bin mir nicht einmal sicher, ob Subrepos das Feature ist, das ich hier verwenden soll.
aktualisieren
ich einige Fortschritte gemacht habe, aber noch kann sie nicht den Weg zur Arbeit Ich mag würde.
Hier ist meine Struktur:
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
Ich ging zu app/plugins und geklont hier ein Plugin (benannt plugin3) von BitBucket. Ich erstellte dann eine .hgsub-Datei im Stammverzeichnis und fügte app/plugins/plugin3 = app/plugins/plugin3
hinzu. Ich konnte dann mein ganzes Verzeichnis übernehmen.
Aber dann habe ich versucht, die neueste Version von plugin1 von BitBucket zu greifen, also ging ich zu app/plugins, löschte den plugin1/Ordner und klonte das plugin1 von BitBucket. Ich fügte dann app/plugins/plugin1 = app/plugins/plugin1
zu .hgsub hinzu, aber als ich versuchte es zu begehen wurde ich mit abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
Das Problem scheint zu feuern, wenn mein subrepo den gleichen Namen wie ein Verzeichnis hat, das bereits von Hg im plugins/Verzeichnis verfolgt wird.
Was mache ich falsch? Soll ich etwas Spezielles in der .hg meiner Plugins hinzufügen/bearbeiten?
aktualisieren
Ich habe es endlich geschafft zu bekommen, wie ich will zu arbeiten.
Ich musste Mercurial "manuell" sagen, um die plugins/plugin1, plugins/plugin2 Verzeichnisse zu entfernen, die Änderung zu committen, dann das plugin1 und plugin2 von BitBucket zurück zu klonen, app/plugins/plugin1 = app/plugins/plugin1
zu .hgsub hinzuzufügen und alles zu committen. Es funktionierte.
Der wichtige Schritt war, nachdem Sie die Ordner plugin1/plugin2 gelöscht haben.
Aus dem doc, die Zeile mit einem '.hgsub' ist" Der erste 'verschachtelte' ist der Pfad in unserem Arbeitsverzeichnis, und der zweite ist eine URL oder ein Pfad von ': also sollten Sie nicht ' app/plugins/plugin3 = app/plugins/plugin3' aber 'app/plugins/plugin3 = bitbucket url für plugin3'. Dito für plugin1 – VonC
Ich habe das versucht, mit 'http: // bitbucket.org/Benutzername/plugin3 /', 'https: // Benutzername @ bitbucket.org/Benutzername/plugin3 /' und sogar 'ssh: // hg @ bitbucket.org/username/plugin3' als URL aber immer noch die gleiche Abbruchmeldung. Ich habe auch direkt von der Kommandozeile versucht, und das Ergebnis ist das gleiche. – pixelastic
Es tut uns leid, dass Sie Ihren letzten Kommentar nicht beantwortet haben, aber wenn Ihr Kommentar nicht mit '@VonC' beginnt, würde ich nicht benachrichtigt werden. Siehe http://blog.stackoverflow.com/2010/01/new-improved-comments-with-reply/ (Abschnitt "Kommentar @benutzername Benachrichtigungen") – VonC