Как выбрать правильную ветвь / ветвь для использования, посмотрев на график сети github?

Мне нужно использовать сторонний код, который доступен публично на github. Я смотрю на сетевой график github этого кода и вижу, что на других форках есть некоторые коммиты, которые не объединены в исходном репозитории.

Как решить, какая из веток / вилок мне подходит?

Пожалуйста, укажите ваши соображения, когда сталкиваетесь с такой проблемой.

По предложению Джона Феминеллы, всегда следует использовать (как правило, стабильные) "выпущенные версии проекта".

Я, конечно, согласен с этим, но этот вопрос по-прежнему актуален в одном из следующих случаев:

  • Первоначальный автор больше не поддерживает этот код.
  • Мне нужна особенность, которая не реализована в оригинале, но реализована по-разному в более чем одном форке
  • Код все еще находится в стадии разработки, каждый форк имеет некоторые отличия от оригинала (либо в функциях, либо в решениях по разработке и реализации)

Я сталкивался с таким случаем много раз, в настоящее время автор по-прежнему пытается сохранить репо, но кажется, что ему не хватает времени, другие вилки более активны. Ни одна из вил не заявлена ​​как достаточно стабильная для производственного использования. В прошлый раз, когда я сталкивался с таким случаем, в исходном хранилище также не было функции, которая была важна для меня.

Поэтому в таких случаях мне нужно будет выбрать наиболее стабильный форк, попробовать использовать его в своем коде, тщательно протестировать и, возможно, внести некоторые улучшения, чтобы сделать его стабильным.

2 ответа

Решение

Обновление: ОП уточнил свой первоначальный вопрос, чтобы указать, что рассматриваемый проект мертв.

Учитывая, что проект мертв и что у него есть N вилок, обычная стратегия выбора "лучшего форка" зависит от ряда факторов:

  • Кто-нибудь объявил, что они берут на себя обслуживание проекта? Ищите новости в списках рассылки, общественных форумах и так далее (не только на GitHub). Если так, начните следовать за той вилкой.

  • Есть ли на графе сети разветвления, в которых есть коммиты, поступающие с другого форка (а не, скажем, master)? Если это так, это означает, что поддержка объединяется вокруг этой другой вилки в качестве возможной замены мертвого проекта.

  • Если что-то из этого не работает, сделайте еще кое-что: есть ли варианты проекта, которые откололись некоторое время назад и вокруг какой поддержки сейчас организуется поддержка? Если так, возможно, этот другой проект подойдет вашим потребностям.

В противном случае, иногда проекты просто не имеют поддержки, чтобы продолжать работу. Если это так, возможно, пришло время почесать свой собственный зуд!


Оригинальный ответ:

Несколько комментариев по этому поводу:

  • В общем, вы должны использовать выпущенные версии проекта, а не выбирать конкретную ветвь или ветку. Если вы этого не сделаете, ваши зависимости будут меняться каждый раз, когда проект обновляется с новым коммитом, что может привести к трудным для поиска ошибкам в вашем собственном коде.

  • Если вы решили, что вам всегда нужна последняя версия, и вы согласны с рисками, то воспользуйтесь master филиал, потому что это официальный. Это будет ветка по умолчанию, которую вы просматриваете, когда посещаете главную страницу репозитория.

  • Люди обычно открывают репозитории для получения и получения отзывов о каких-либо модификациях исходной кодовой базы.

  • Таким образом, если вы не сотрудничаете над этой модификацией или если у вас нет особого интереса в получении раннего доступа к этой конкретной модификации, вам не нужно беспокоиться о других вилках.

В редких случаях официальная ветка разработки основного проекта будет называться как-то иначе, чем master, В этом случае вы должны проконсультироваться с README, чтобы увидеть, на какую ветку вам следует обратить внимание.

Чтобы завершить ответ Джона.

Я использую http://gitpop.heroku.com/ который полезен для поиска самых популярных и активных вилок. Это довольно элементарно, но это делает работу.

Изменить: Как и в марте 2014 года, GitPop не работает, поэтому я написал свой собственный, потому что это было полезно для меня. http://gitpop2.herokuapp.com/

Другие вопросы по тегам