Контроль версий на внешнем проекте - PullRequest
3 голосов
/ 24 мая 2011

Я работаю над огромным проектом («проектом») с открытым исходным кодом, и я изменяю проект, но у меня нет разрешения на коммит. Я ищу стратегии для поддержания моей собственной ветви проекта. Некоторые вопросы, которые я рассматриваю:

  1. Как поместить свою работу в систему контроля версий, учитывая, что я изменяю исходный код проекта, добавляю новые файлы и т. Д.
  2. Как сохранить синхронизацию с проектом без необходимости вручную снова и снова объединять мои изменения.

Я никогда не был в такой ситуации - я всегда поддерживал свой полный проект в какой-то системе контроля версий. Мой план сейчас примерно такой:

  1. Создание дерева каталогов в моем SVN, аналогичное тому, которое есть в проекте.
  2. Хранение всех измененных файлов (и только их) в моем SVN.
  3. Каждый раз, когда я решаю синхронизироваться с новой базовой линией проекта, я проверяю, сливаю свое svn-дерево в новую версию, тестирую, затем фиксирую свои изменения в svn и распространяю их вместе с последним проектом базовый уровень.

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

Идеи

Ответы [ 2 ]

4 голосов
/ 24 мая 2011

Я бы использовал git или mercurial для этого;просто импортируйте проект в git или mercurial и объедините вышестоящие изменения в ветку вашего проекта для простого объединения с вашей стволом.

Если у вышестоящего проекта есть собственный репозиторий, то импорт еще проще.И git, и mercurial поддерживают прямой импорт других систем контроля версий.Я сделал это недавно, чтобы адаптировать существующий проект, который живет в SVN: https://github.com/mjpieters/rod.recipe.rabbitmq

Обратите внимание, что у этого проекта есть ветвь «вверх по течению».Этот конкретный проект принял мои предложенные изменения после просмотра изменений на github.com.

Здесь есть несколько вопросов по этой теме:

Создать аналогичную установку с помощью Mercurial должно быть тривиально.

1 голос
/ 24 мая 2011

Вы можете использовать git для поддержания контроля над исходным кодом в локальной системе.Фактически Git может использоваться для поддержки практически любого каталога под управлением версиями.Нет необходимости синхронизировать что-либо, git поддерживает все изменения локально.

Если вам нужно зафиксировать SVN, посмотрите документацию http://git -scm.com / docs / git-svn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...