SVN, merge change set

6yrop

Есть ветка, в ней было несколько коммитов. Как смерджить в trunk изменения, которые были в последних нескольких коммитах. Изменения из ранних коммитов мерджить не надо.
Желательно написать как это сделать в tortoisesvn.

lubanj

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-...
чекаутишь то, куда надо мерджить, т.е. trunk, будешь работать в нем. это рабочая копия
жмешь по папке на локальном диске правой кнопкой, tortoiseSvn
->merge
-> выбираешь merge a range of revisions
-> url to merge from - выбираешь бранч на сервере SVN из которого будешь мерджить коммиты
-> ниже specific range
-> жмешь кнопку "show log"
-> ставишь слева галочки напротив коммитов, которые нужны -> ok
-> next
> merge
-> изменения попали в твою рабочую копию, теперь их надо закоммитить. правый клик по той же папке, -> svn commit.
-> чтобы автоматически сформировался комментарий к коммиту жмешь "recent messages" и выбираешь там верхний из предложенных (там как раз про "merge from branch...")
п.с. к сожалению в транк такой мердж (да и любой другой merge) попадет одним цельным коммитом. тут ничего не поделаешь (ибо SVN), ну или мерджить несколько раз, выбирая галочками по одному коммиту

6yrop

Я вроде так и пробовал. Может что на путал, завтра еще раз попробую.
В результате у меня получилось следующее.
В комите 753 в файл вставлялась 3 строчка.
В коммите 754 в тот же файл вставлялась 7 строчка.
Я смерджил в trunk 754 коммит. В итоге в trunk попали обе строчки и 3 и 7. А хочется, чтобы 7 попала (и стала 6), а 3 строчка не попала.
В TFS мердж отдельных коммитов работал так, как я описал (как хочется).

lubanj

ты точно выбирал галочками этот самый range of revisions? че он в это вполе вписал? должен был конкретные номера, а у тебя может получилось типа
"-123456", т.е. имеется ввиду "0-123456" и ты выходит смерджился К этому коммиту.

6yrop

я отмечал конкретные коммиты, нажимая Ctrl. Завтра еще раз внимательно проделаю это.
А точно надо "Merge a range of revisions", а не "Merge two different trees"?
Может надо "Merge two different trees" и указать url=branch from 754 и url=branch to 754, а мерджить в trunk?

lubanj

нет. точно. сто раз так делал.
не надо нажимать ctrl при расстановке галочек, ну и не забудь посмотреть че в поле впишется при этом.
может и сам туда вписать через запятую номера ревизий.
черепашка-то не совсем древняя? (ну мало-ли, последние 4 года оно точно так работало уже)

6yrop

черепашка-то не совсем древняя? (ну мало-ли, последние 4 года оно точно так работало уже)
Ставил свежую летом 2014.

6yrop

нет. точно. сто раз так делал.
Ок. Спасибо!

Maurog

я отмечал конкретные коммиты
я сталкивался с таким поведением черепашки: ставишь одну галочку, потом вторую -> первая галочка слетает (не всегда, возможно, если между галочками есть дырки - неотмеченные коммиты). тоже приседал с нажатием ctrl. в общем, ставь галочки внимательно и проверяй, что впишется в поле revision range (ну или как-то так)
Оставить комментарий
Имя или ник:
Комментарий: