Как мне структурировать свои разработки плагинов и как применить патч к патчу в SVN?

Я только начал разрабатывать плагины и патчи для Redmine и использую SVN. У меня есть следующая структура:

doc/
src/
src/branches/
src/plugins/
src/patches/
src/trunk/

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

Прямо сейчас я сталкиваюсь со следующей проблемой: я создал ветку issue_x для разработки патча. После первой версии я использовал svn diff > patch.diff чтобы получить патч. Затем я сохранил его в папке патчей, а затем применил его к стволу с patch -p0 < ../patch.diff, Круто, но я должен сделать небольшую модификацию патча, потому что в работе обнаружена ошибка.

Что я должен делать?

  • Создать новый патч, чтобы исправить ошибку?
  • Исправить ошибку, создать целый патч (включая все сделанные изменения), вернуть патч в транк и затем повторно применить новый патч?
  • Что-нибудь еще?

2 ответа

Subversion (и любой общий SCM) - это "Объединение изменений" из разных линий разработки.

Т.е. вместо того, чтобы использовать diff-patch, вы используете внутреннюю технику svn - объединяйте ветку с транком, повторяйте слияние после того, как некоторые изменения добавлены в ветку, пока вы не получите нужный результат

Почитай SVN Book, это полезная вещь

Я не уверен, почему вы используете патчи вместо слияний. Это довольно странно.

Самым очевидным (для меня) было бы отделение от issue_x, исправить ошибку, слить обратно в issue_x а затем объединить issue_x Вернуться в trunk,

В вашем сценарии я предлагаю вам внести изменения, чтобы исправить ошибку в issue_xсоздать патч и применить его к trunk, Вы все равно должны узнать о ветвлении и слиянии SVN из книги SVN.

Другие вопросы по тегам