Подтвердить что ты не робот

Subversion: как слить конкретную фиксацию

У меня есть фиксация в моих ветках. Я хочу объединить ветки в багажник, но есть кое-что, что я не сливаюсь с багажником на своих ветвях. Как мне сделать?

4b9b3361

Ответ 1

То, что вы хотите выполнить, обычно называется cherrypicking в системах контроля версий.

Предположим, что вы хотите объединить ревизии 345, 364 и 377, вы сделаете следующее в каталоге верхнего уровня чистой рабочей копии вашего ветки:

svn merge -c345,364,377 ^/trunk

Дополнительную информацию вы можете найти в соответствующем разделе в книге SVN.

Ответ 2

Просто чтобы продлить ответ Янику.
Когда вы можете объединить один или несколько конкретных коммитов из одной в другую ветку, вам нужно (например, необходимо, чтобы слияние совершало r13 и r666 от ветки "от" до ветки "до" ):

  • Проверить наличие доступности (только для гарантии):

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_
    
  • Swith on branch to:

    svn sw https://fullpathtoyourproject/branches/_to_
    
  • Объединить фиксации

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_
    

Если вам нужно получить "fullpathtoyourproject", просто введите:

svn info

В URL-адресе раздела вы увидите этот путь.

Я предпочитаю использовать FULL url/path, потому что личный относительный путь не работал у меня в некоторых проектах.

Ответ 3

Вы можете объединить требуемые коммиты с номером ревизии.