2012-05-12 2 views
1

Я новичок в Github. Я портировал небольшой проект с открытым исходным кодом Github C на C++. Я добавил новый метод, переименовал большинство методов в более описательные имена, удалил кучу лишних (по-моему) методов, очистил комментарии, сделал OO и т. Д.Этикет Github для принятия решения о том, следует ли создавать новый проект или филиал существующего

Я не связался с оригиналом авторами об этом пока нет. Итак, мне интересно, что такое правильный этикет. Должен ли я связаться с ними и попросить сотрудничать в проекте? Должен ли я сказать им, что я делаю, и если они не согласятся, то что?

Или, должен ли я просто создать свою собственную версию этого проекта на Github и сохранить контроль?

ответ

2

Для массивного рефакторинга на проект, который не находится на GitHub, чтобы начать с, один способ двигаться вперед заключается в следующем:

  • импортировать исходный код (по крайней мере, НАЧАЛЬНИК), чтобы GitHub
  • применять ваши модификации и нажмите их на этом репетиторе GitHub
  • свяжитесь с авторами и попросите их fork your project: они смогут контролировать свою версию своего кода и сотрудничать с вами through pull request.

Сохранение обоих разделов репозитория GitHub обеспечивает более чистое разделение беспокойства (массивный рефакторинг для вас, унаследованная поддержка для них) между репозиториями.

+0

спасибо. Хороший ответ. Первоначальный проект C находится на GitHub. Итак, вы предлагаете мне создать новый проект GitHub, импортировать исходный код C и затем применить мои изменения? Я не совсем понимаю, что вы имеете в виду, нажимая их на мой репо GitHub. Это делается путем создания ветки, вилки или, возможно, другой папки? Представленные вами ссылки предполагают сохранение 2 копий кода - по одному для каждого репо. Затем координация между двумя репозиториями выполняется вручную через «запросы на тягу» - это правильно? –

+0

@bob, если исходное репо уже было на Github, тогда вам нужно разблокировать это репо и применить к нему свои модификации. – VonC

1

Поскольку C++ сильно отличается от C (вопреки популярным белым), я ваш код гарантирует новый проект.

Также я должен добавить, что более подходящим способом справиться с ситуацией было бы создание C++-оболочки, которая бы просто ссылалась на эту библиотеку C. C++ не имеет проблем с привязкой к C (обратное не относится к истине), и это будет поддерживать оба лагеря счастливыми (тем, кто хочет библиотеку низкого уровня C и тем, кто нуждается в OO-OO и любой другой C++-библиотеке).

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

К сожалению, я не знаю, что это за проект, так что это в значительной степени просто размахивает руками.

Смежные вопросы