Problem: Ein hg-Repository hat eine Datei, die ich in einem anderen hg-Repository aktualisieren und pflegen möchte, und ich möchte sie nicht kopieren und einfügen. Ich möchte die Datei aber in beiden Repos zur Verfügung haben.
Szenario:
Arbeiten am Produkt 0001
Projekt A hat ein hg-Repository.
Die Straße hinunter, ein Projekt B aufgespannt wird. Es besteht weitgehend keine Kopplung zwischen Projekt A und B, aber es gibt algunos Dateien, die sein könnten geteilt werden.
Die Versionskontrolle von Dateien in einem verwalteten Ansatz ist entscheidend: Kopieren und Einfügen ist keine praktikable Lösung.
Es gibt einige Lösungen, die funktionieren könnten -
- Zusammenführen der beiden Repos zu einem Produktrepo . Das bedeutet jedoch, dass sich die Versionsnummern für eine Reihe von Dateien aufgrund von Änderungen an anderen Stellen ändern. Außerdem sind die verschiedenen Projekte nicht sonderlich miteinander verbunden.
- Konvertieren Sie beides in ein Subrepo. Ich bin nicht sicher, dass dies der richtige Ansatz ist, scheinen subrepos einige funky Verhalten im Zusammenhang mit der übergeordneten Repo haben. (Oder sie verwendet, um?)
Eine Erweiterung dieses Themas ist das Konzept der gemeinsamen Nutzung bestimmter Dateien zwischen Produkten. Irgendwie muss eine Datei geteilt und korrekt als eine einzelne Datei verfolgt werden, aber in zwei verschiedenen Produkten.
Das allgemeine Problem könnte folgendermaßen formuliert werden.
Bei einer Reihe von Produkten, jedes mit seinem eigenen Repository, die sich in der Entwicklung befinden und die Dateien in den Repositories der anderen gemeinsam nutzen und weiterentwickeln (z.B. Utility-Routinen und Frameworks), was ist die hg-Lösung, um die Dateiversionen zwischen den Produkten konsistent zu halten.
Was ist hier eine gute Lösung?