4 совета для здоровой вилки

Иногда вы хотите использовать проект, но вам не очень нравится то, что они закодировали. Или у него нет нужной функции. Или это было бы намного быстрее без этой бесполезной функции, а вам нужна скорость. Иногда наступает время развилки. Вы должны знать о том, что такое форк прямо сейчас, потому что многие люди делают крутые вещи с форками, например, мой собственный проект Terser, форк uglifyjs.

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

Советы по разветвлению, в произвольном порядке:

Номер 1

Совет №1: убедитесь, что ваша вилка изменяет существующий код как можно меньше!

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

Минимальные изменения ветки означают минимальные проблемы слияния, когда вы хотите обновить свой код с изменениями в основной ветке.

Номер 2

Теперь перейдем к Совету №2. Убедитесь, что новые файлы, которые вы создаете, имеют имена, которые мог бы использовать первоначальный владелец проекта, чтобы избежать конфликтов слияния. Я думаю, это очевидно, так что давайте двигаться дальше.

Номер 3

Совет № 3: постарайтесь сделать изменения ветвления как можно более низкоуровневыми, изменив, например, одну строку в функции глубоко в проекте. Это связано с тем, что низкоуровневого кода намного больше, что затрудняет возникновение конфликта точно в строках вокруг строки, которую вы изменили.

Бонусные баллы, если функция, которую вы меняете, уже прошла модульное тестирование и действительно мала. Если нужно, поднимитесь немного выше, пока не найдете действительно маленькую функцию. Те меняются реже.

Номер 4

Совет №4 – используйте Upfork.sh для автоматического обновления вилки. Всякий раз, когда ваши (надеюсь, крошечные) изменения вызывают конфликт, вы получаете электронное письмо, чтобы вы могли это исправить!

Две функции, которые будут доступны в ближайшее время, — это автоматическое слияние master со всеми вашими ветками, поэтому вам никогда не придется обновлять ветки PR, и автоматическое тестирование вашей ветки при внесении изменений.

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