Как легко разделить тематическую ветку в Subversion / git?

Итак, у меня есть / trunk , которому в конечном итоге передаются все золотые вещи. У меня есть тематическая ветка / topicA .

Обычно вы объединяете / topicA в транк, и это будет одна фиксация. Ура! Чтобы отменить это слияние, вам просто нужно отменить слияние фиксации, вызванной этим слиянием.

Теперь, допустим, у меня есть / topicA , и я сливаю его в / trunk ... Но затем у меня есть исправление, относящееся к / topicA . Итак, следует ли мне снова совершить фиксацию в / topicA ? Я даже могу повторно добавить / topicA , чтобы / trunk содержал / topicA . Но как мне легко откатить все / topicA , оригинальные работы И исправления ошибок?

История фиксации:

  • Зафиксировать в / topicA
  • Зафиксировать в / topicA
  • Зафиксируйте в / topicA
  • ...
  • Объедините / topicA в / trunk
  • ...
  • Bugfix1 в / topicA
  • Переместите / topicA в / trunk для исправления ошибок
  • ...
  • Bugfix2 в / topicA
  • Bugfix3 в / topicA
  • Переместите / topicA в / trunk для исправления ошибок
  • ...
  • ??? (unmerge / topicA , включая исправления)

Я знаю, что вы можете просто разъединить каждое исправление ошибки, а затем начальное слияние, но это совсем не выглядит привлекательным.

Есть ли у git ответ на это тоже?

9
задан Mark Canlas 11 July 2011 в 20:46
поделиться