Как отредактировать приватные методы в репозитории git, чтобы его можно было обслуживать - PullRequest
0 голосов
/ 06 мая 2018

Итак, мне просто нравится репозиторий (РЕПО), который я нашел на GitHub, однако создатель этого репо слишком чувствителен к тому, что он выставляет как public(open). Таким образом, кроме первоочередных потребностей он делает все остальное (классы, функции, переменные ...) private.

Однако мне нужно получить доступ и изменить запрещенный фрукт, private variables, classes, methods, ..., который находится всего в 1 файле репо. Итак, мой вопрос: как я могу внести изменения в этот файл, чтобы моя работа была максимально удобной для сопровождения.

Поддерживаемое значение: когда владелец РЕПО обновляет репо, для меня должно быть как просто , чтобы я мог обновить РЕПО в настройках моей и моей команды

В частности, мне просто нужно изменить 1 файл класса в библиотеке Swift GitHub, которую я установил с помощью cocoapods

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

На самом деле это хороший вопрос. Это боль многих проектов, которые зависят от библиотек с открытым исходным кодом. В какой-то момент ваш вариант использования кажется немного отличным от вариантов использования первоначальных авторов, и вы должны изменить код. Как только вы это сделаете, вы получите определенную нагрузку на обслуживание, потому что вы должны отслеживать свои патчи и реорганизовывать / повторно применять их при обновлении репозитория (вашей зависимости). Например, Порты FreeBSD и MacPorts - это проекты, которые пытаются справиться с этой проблемой в масштабе. Проще говоря, они поддерживают набор патчей, которые адаптируют программное обеспечение Linux (от оригинальных репозиториев) к BSD / Mac (их собственные «вилки»).

Здесь нет волшебной пули, но я бы сказал, что git во многих случаях значительно упрощает процесс. Например, вы можете создать ветку в вашем форке, содержащую ваши изменения, а затем, когда придет время обновляться, вы выполните «git rebase» для новой главной ветви (разрешение конфликтов и т. Д.).

Для вашего конкретного случая я бы порекомендовал создать сценарий, который автоматически готовит патч: найдите в вашем файле и измените все «личные» на «публичные». Этот скрипт может быть таким простым, как sed -i s/private/public/g TheirShyFile.swift. Если у вас есть такой скрипт, вам будет намного проще поддерживать ваш форк, потому что вместо перебазирования и разрешения конфликтов вы просто снова разветвляетесь от master и снова применяете ваш скрипт.

0 голосов
/ 06 мая 2018

Форк репо. Затем зацените ваш форк репо локально и измените код по своему усмотрению. Зафиксируйте свои изменения и отправьте в репо.

Наконец, отправьте запрос на извлечение исходному репо, который должен быть утвержден автором / сопровождающим кода.

...