Subversion: как найти все ревизии, которые не объединены с транком? - PullRequest
55 голосов
/ 05 февраля 2010

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

В: Существует ли способ "одним щелчком мыши" получить все номера ревизий, которые не были объединены из ветви X в транк?

(Примечание: мне не нужны эти номера ревизий, чтобы найти, что объединить, мне нужны они для создания автоматической проверки, которая напомнила бы людям, что они не забыли объединить что-то с транком. .)

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

Сценарии, инструменты, любые svn-хуки в качестве решения приветствуются.

приписка

Последняя версия SVN. Не нужно спорить, насколько распространен или хорош этот сценарий;)

Ответы [ 11 ]

0 голосов
/ 05 февраля 2010

По этой причине CVS создал тег для обозначения корня ветви :) Для SVN это должно выглядеть так:

+ trunk / project1
+ tags / project1-b1-root
+ branches / project1-b1

Примечания:

  1. Тег project1-b1-root и ветвь project1-b1 создаются одновременно из транка.
  2. Никто не должен фиксировать project1-b1-root (вы можете ограничить эту операцию для tags / path).
  3. Когда все утверждают, что он положил все в транк, вы делаете различие между project1-b1-root и project1-b1 и пытаетесь применить его к транку: изменения, которые уже применены, будут молча пропущены, в остальном вы увидите разницу или коллизии.
...