Wie wähle ich die richtige Verzweigung / Verzweigung aus, indem ich auf das Netzwerkdiagramm des GitHubs schaue?

8

Ich muss Code von Drittanbietern verwenden, der öffentlich auf github verfügbar ist. Ich schaue mir das Netzdiagramm des Githubs dieses Codes an, und ich kann sehen, dass andere Gabeln einige Commits haben, die nicht mit dem Original-Repository zusammengeführt werden.

Wie soll ich entscheiden, welche der Zweige / Gabeln für mich geeignet ist?

Bitte schreiben Sie Ihre Überlegungen ein, während Sie sich mit einem solchen Problem konfrontiert sehen.

Als vorgeschlagen von John Feminella sollte man immer die (normalerweise stabilen) "freigegebenen Versionen eines Projekts" verwenden.

Dem stimme ich natürlich zu, aber diese Frage ist in einem der folgenden Fälle immer noch relevant:

  • Der ursprüngliche Autor behält diesen Code nicht mehr bei.
  • Es gibt ein Feature, das ich brauche, das nicht im Original implementiert ist, aber in mehr als einem fork
  • anders implementiert ist
  • Der Code befindet sich noch in der Entwicklungsphase, jede Verzweigung weist einige Unterschiede zum Original auf (entweder in Features oder Entwicklungsentscheidungen und Implementierung)

Ich habe einen solchen Fall viele Male erlebt, der ursprüngliche Autor versucht immer noch, das Repo aufrechtzuerhalten, aber es scheint, dass er nicht genug Zeit hat, andere Gabeln sind aktiver. Keine der Gabeln ist als stabil genug für den Produktionseinsatz angekündigt. Als ich das letzte Mal mit einem solchen Fall konfrontiert wurde, hat das ursprüngliche Repository auch keine Funktion implementiert, die für mich wichtig war.

In solchen Fällen müsste ich also die stabilste Gabel wählen, sie in meinem Code verwenden, sie gründlich testen und möglicherweise einige Verbesserungen beitragen, um sie stabil zu machen.

    
Xuni 29.04.2012, 12:16
quelle

2 Antworten

7

Update: Das OP hat seine ursprüngliche Frage geklärt, um anzuzeigen, dass das betreffende Projekt tot ist.

Da ein Projekt tot ist und es N Gabeln hat, hängt die übliche Strategie zur Auswahl der "besten Gabel" von einer Reihe von Faktoren ab:

  • Hat jemand angekündigt, dass er die Wartung des Projekts übernimmt? Suche nach Neuigkeiten auf den Mailinglisten, öffentlichen Foren usw. (nicht nur auf GitHub). Wenn ja, folge dieser Gabelung.

  • Gibt es Gabeln im Netzwerkdiagramm, die Commits von einer anderen Verzweigung haben (statt zB master )? Wenn dies der Fall ist, deutet dies darauf hin, dass sich die Unterstützung um diese andere Verzweigung als möglicher Ersatz für das tote Projekt zusammenfügt.

  • Wenn beides nicht klappt, gräbt noch mehr: Gibt es Varianten des Projekts, die vor einiger Zeit abgespalten wurden und um welche sich die Unterstützung nun kümmert? Wenn ja, wird dieses andere Projekt vielleicht Ihren Bedürfnissen entsprechen.

Wenn all das nicht klappt, haben Projekte manchmal einfach nicht die Unterstützung, um weiterzumachen. Wenn ja, ist es vielleicht Zeit, sich selbst zu kratzen!

Ursprüngliche Antwort:

Ein paar Kommentare dazu:

  • Im Allgemeinen sollten Sie veröffentlichte Versionen eines Projekts verwenden, anstatt einen bestimmten Zweig oder Zweig zu wählen. Wenn Sie dies nicht tun, werden sich Ihre Abhängigkeiten jedes Mal ändern, wenn das Projekt mit einem neuen Commit aktualisiert wird, was zu schwer zu findenden Fehlern in Ihrem eigenen Code führen kann.

  • Wenn Sie entscheiden, dass Sie immer die neueste Version haben wollen und die Risiken damit in Ordnung sind, dann verwenden Sie den Zweig master des Projekts, denn das ist der offizielle Zweig. Das ist der Standardzweig, den Sie betrachten, wenn Sie die Hauptseite des Repositorys aufrufen.

  • Normalerweise werden in der Regel Repositorys recherchiert, um Feedback zu einer Modifikation der ursprünglichen Codebasis zu erhalten.

  • Wenn Sie also nicht an dieser Änderung mitarbeiten oder wenn Sie ein besonderes Interesse daran haben, frühzeitig auf diese spezifische Änderung zuzugreifen, müssen Sie sich keine Gedanken über die anderen Gabeln machen. stark>

In seltenen Fällen wird der offizielle Hauptentwicklungszweig eines Projekts als etwas anderes als master bezeichnet. In diesem Fall sollten Sie die README konsultieren, um zu sehen, welchen Zweig Sie betrachten sollten.

    
John Feminella 29.04.2012, 12:21
quelle
5

Um Johns Antwort zu vervollständigen.

Ich benutze Ссылка , das nützlich ist, um die beliebtesten & amp; aktive Gabeln. Es ist ziemlich rudimentär, aber es macht die Arbeit.

Bearbeiten: Wie im März 2014 ist GitPop kaputt, also schrieb ich mein eigenes, weil es für mich nützlich war. Ссылка

    
Andre Miras 09.08.2013 07:43
quelle