2 Stimmen

Warum verhalten sich Mercurial-Subrepos als nicht versionierte Dateien in Eclipse UND torotoiseHG

Ich versuche, die subrepo-Funktion von Mercurial zu verwenden, mit dem Mercurial Eclipse-Plugin \tortoiseHG.

Dies sind die Schritte, die ich unternommen habe:

  1. Ein leeres Verzeichnis erstellt /root
  2. alle Repos, die ich als Unterrepos haben möchte, in diesen Ordner geklont ( /root/sub1 , /root/sub2 )
  3. Erstellt und hinzugefügt die .hgsub Datei im Root-Repository /root/.hgsub und fügen Sie alle Zuordnungen der Unter-Repos darin ein
  4. mit tortoiseHG, Rechtsklick auf /root und ausgewählt create repository here
  5. wieder mit tortoise, wählte alle Dateien innerhalb /root und fügte sie zum Root-Repository hinzu
  6. das Root-Repositorium commited
  7. das lokale Root-Repositorium in ein leeres Repositorium verschoben, das ich auf kiln eingerichtet habe

Dann habe ich das Root Repo in Eclipse gezogen, mit import->mercurial.

Jetzt sehe ich, dass alle Subrepos so aussehen, als wären sie nicht versioniert (kein "orangefarbener Zylinder"-Symbol neben den entsprechenden Ordnern im Eclipse-Dateiexplorer).

Wenn ich mit der rechten Maustaste auf eines der Unterrepos klicke, erhalte ich außerdem nicht alle hg-Befehle im "Team"-Menü, wie ich sie normalerweise bei Root-Projekten erhalte - kein "Pull", "Push" usw.

Auch, wenn ich eine Änderung an einer Datei in einem subrepo gemacht, und dann "Commit" das Root-Projekt, es sagte mir, es wurden keine Änderungen gefunden.

Ich sehe das gleiche Verhalten auch in tortoiseHG - Wenn ich Dateien unter /root Die Dateien, die direkt zum Root-Repository gehören, haben ein kleines Symbol (ein V), das anzeigt, dass sie versionskontrolliert sind, während die Ordner der Unterrepos nicht als solche gekennzeichnet sind.

Was mich vermuten lässt, dass es sich um einen Fehler auf meiner Seite handelt, ist, dass 1. sowohl tortoise als auch eclipse dasselbe tun, so dass es weniger wahrscheinlich ist, dass es ein Fehler in einem der beiden Programme ist 2. Was sie tun, sieht ziemlich ausgeklügelt aus, so dass es nicht wahrscheinlich ist, dass es sich um einen Fehler handelt - beide ignorieren alle Ordner, die in .hgsub sind. Wäre das Gegenteil der Fall (alle Unterrepos werden als reguläre Ordner des Haupt-Repos behandelt, anstatt als unversioniert behandelt zu werden), hätte ich gedacht, dass es sich um einen Fehler handelt, der durch die Nichtbehandlung von Unterrepos verursacht wird. Aber offensichtlich erkennen beide Anwendungen die .hgsub-Datei an

Mache ich etwas falsch, oder ist es ein Fehler?

2voto

olamundo Punkte 22435

Es ist ein bekannter Fehler: http://www.javaforge.com/issue/11871

1voto

VonC Punkte 1117238

Hatten Sie in Ihrem ersten Schritt tatsächlich verschachtelte Mercurial-Repos im Root-Repository?
Das Setzen eines .hgsub mit " subdir = subdir "Richtlinie reicht nicht aus, um die subdir ein Subrepo, wenn es nur ein Unterverzeichnis des Hauptrepos wäre (ohne jegliche .hg eigene).

Wie in der Dokumentation beschrieben:

Beachten Sie, dass das verschachtelte Repository tatsächlich existieren muss, damit die Zeile in .hgsub etwas bewirken kann .
Wenn Sie beispielsweise kein lokales verschachteltes Repository erstellen, sondern versuchen, einen Link zu einem bereits vorhandenen entfernten Repository zu erstellen, müssen Sie dieses Repository AUCH klonen:

$ echo nested = https://example.com/nested/repo/path > .hgsub
$ hg add .hgsub
$ hg clone https://example.com/nested/repo/path nested

Im Zweifelsfall sollten Sie immer versuchen, das, was Sie (bis zum Push) tun, in einer Befehlszeile zu wiederholen, um zu sehen, was eine Hg CLI (command Line Interface) Sitzung Ihnen zeigen kann.
Sie können mit einem Klon Ihres aktuellen Projektarchivs experimentieren, um zu sehen, was schief gelaufen ist.

Wenn Sie nun verschachtelte Hg-Repos haben, dann gibt es immer noch die Möglichkeit, dass das Plugin " MercurialEclipse " unterstützt noch keine subRepos.
In den Versionshinweisen werden Subrepos überhaupt nicht erwähnt.
Und TortoiseHg erwähnt sie nur in seinem neueste Version 1.0 .

Unterstützung für Subrepos im Status/Commit-Tool

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X