2012-05-31 5 views
0

У меня возник вопрос о том, как лучше поддерживать некоторый код.Сохранять изменения кода в репозитории SVN отдельно, за пределами репозитория

Существует проект, размещенный в репозитории SVN в Интернете. Проект активно развивается, поэтому багажник продолжает меняться. У меня также нет доступа на запись к этому репо.

Я внес некоторые изменения в этот проект, который потребовал внесения изменений во многие модули проекта. Мои изменения - довольно «ниша», и нет смысла проверять их в багажнике. Кроме того, мои изменения будут продолжать развиваться.

Файлы, которые я изменил, не сильно изменены в багажнике, поэтому, даже если ствол продолжает изменять мои изменения, скорее всего, останется в силе, если они будут применены к багажнику.

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

По существу, это было бы здорово, если бы кто-то, кто хотел бы использовать мои изменения должны были сделать что-то вроде:

  1. Выезд Ствол (или конкретного тега) из SVN репо
  2. Проверьте мои последние изменения (или конкретный тег) одна из где-того
  3. Объединить два используя некоторый сценарий (который я могу разработать)

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

Я открыт для использования любой системы для сохранения изменений, которые я сделал. Не обязательно должен быть SVN или что-то конкретное.

ответ

2

Вы можете использовать git-svn, чтобы клонировать репозиторий subversion, а затем сохранить свой клон git-svn. Если вы это сделали, то, кто хочет, чтобы ваша версия/ветвь кода не нуждалась в трехэтапном процессе, как вы описываете; скорее, они просто «git clone» вашего репо (или тег, который вы указали, и т. д.).

Вы также можете поддерживать несколько ветвей ствола репозитория SVN, либо отслеживать несколько ветвей Svn отдельно и т.д.

+0

Спасибо! Я пробовал и этот метод, и метод @ mark-phippard по отдельности, и оба кажутся хорошими. – hide0

1

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

https://www.google.com/search?q=svn+vendor+branch

В принципе, просто создать свой собственный репозиторий SVN локально и использовать скрипт для сохранения копии нетронутого ствола в вашем хранилище. Создайте ветку в своем репозитории и внесите в нее свои изменения. Затем просто используйте скрипт для синхронизации соединительной линии в своих репозиториях с магистралью в главном устройстве, а затем смените изменения с этой магистрали на свою ветку.

Я бы предположил, что вы также можете использовать git-svn для поддержания git-зеркала багажника, а затем просто использовать ветви git, чтобы сохранить ваши изменения и синхронизировать их.

+0

Спасибо! Это ответило на мой вопрос. Я выбрал ответ git выше, потому что я нашел его немного более удобным с git, учитывая мой рабочий процесс, но я бы хотел отметить это право. – hide0

1

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

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

  • Нет связанных вопросов^_^