2013-05-28 8 views
9

Ich versuche, die Subrepositories in meinem Mercurial-Projekt-Repo für die Abhängigkeiten des Projekts einzurichten. Aber wenn ich versuche, die .hgsub Datei einzuspielen ich diesen Fehler erhalte:Mercurial: Subrepo-Fehler - "Abbruch: Commit mit neuem Subrepo [Pfad] ausgeschlossen"

abort: commit with new subrepo lib/dependency-dir excluded 

Details:

In meinem Projekt Mercurial Repository-Verzeichnis (auf der obersten Ebene), habe ich ein Unterverzeichnis , lib/, die meine Abhängigkeiten enthalten wird.

Es passiert einfach so, dass alle meine Abhängigkeiten leben auf Github, wo ich jede Bibliothek gegabelt haben zu erstellen, zB https://github.com/mygithubaccount/forked-dependency

Ich habe eine .hgsub Datei und hinzugefügt, um es in das Repository (auch bei der Höchststufe). Es enthält Einträge wie die folgenden (Ich habe versucht, diese einzeln zu isolieren wie folgt, es scheint keinen Unterschied zu machen):

lib/dependency-dir = [git]https://github.com/mygithubaccount/forked-dependency.git 

Dann habe ich die folgende, angefangen in meinem Projekt-Repository des Arbeits directory:

$ cd lib 
$ git clone https://github.com/mygithubaccount/forked-dependency.git dependency-dir 
$ cd .. 
$ hg commit .hgsub 
abort: commit with new subrepo lib/dependency-dir excluded 

Irgendwelche Ideen, was ich falsch mache?

+0

Ich glaube nicht, dass ich das je funktionierte, aber aufgegeben und ging stattdessen eine andere Route. Alle Antworten hier waren potentiell nützlich, einfach zu spät. Also habe ich sie alle aufgewertet, aber Carl den Accept als seinen zu geben war die früheste Antwort. –

Antwort

1

Ich hatte dieses Problem auch. Ich bin mir nicht sicher, ob es zu Ihrer Situation passt, aber ich habe versucht, einem neuen Repo Unterdepots hinzuzufügen. Sobald ich andere Dateien hinzugefügt und sie commited hatte, konnte ich die .hgsub Datei mit den Subrepos hinzufügen und sie committen ohne diesen Fehler zu bekommen.

3

Ich reparierte gerade das Problem, indem die Datei zuerst das Hinzufügen, und dann zu begehen:

$ hg add .hgsub 
... 
$ hg commit .hgsub 
1

Für mich ist das Problem war, dass git war nicht auf meinem System Weg. Das Hinzufügen erlaubte mir, mein git-Subrepository zu committen (beachte, dass ich TortoiseHg workbench neu starten musste, um den aktualisierten Systempfad zu erhalten).

12

Die einzige Art, wie ich diese Arbeit erhielt, war ohne Angabe des .hgsub Datei

hg commit -m „message“

+0

Danke, das hat für mich funktioniert. Ich habe die meisten anderen Vorschläge zuerst auf dieser Seite ausprobiert. Ich wollte das neue Subrepository nicht übernehmen, weil es sich so anfühlt, als ob es nicht im Haupt-Repository sein sollte, obwohl ich vermute, dass das Commit ohne Spezifizierung dasselbe ist wie das Commit von beiden. – Ant

3

ich beide .hgsub und die neue subrepository zugleich begehen musste zu begehen indem Sie sie explizit im commit-Befehl auswählen. Ich vermied hg, alles zu übernehmen, weil ich andere Dateien hatte, die laufende Arbeit enthielten.

0

Als ich dieses Problem hatte, war das Problem, dass ich zwei Schrägstriche im Pfad zum Subrepo-Verzeichnis hatte.

0

Wenn zwischen dem Ordnernamen für den Subrepo und dem Pfad in der .hgsub-Datei ein Fallunterschied besteht, wird auch diese Fehlermeldung ausgelöst.

Ich habe dies erfahren, indem ich einen .hgsub aus einem anderen Repo kopiert habe, der die gleiche Ordnerstruktur hatte, aber der neue Repo verwendete Titelgehäuse für die Ordnernamen, während die Ordner im ursprünglichen Repo alle Kleinbuchstaben waren.

Durch Ändern der .hgsub- oder der Ordnernamen wurde das Problem behoben.