SVN объединить ствол в ветку удаления файлов - PullRequest
2 голосов
/ 08 декабря 2011

Я пытаюсь сделать что-то, казалось бы, простое, но у меня возникают проблемы.

По сути, у меня есть svn репо, у него есть ствол и ветвь, которые были созданы из ревизии 122.

Я добавил файл (src / utils / foo.py) в ветку, зафиксировал его как ревизию 128, все хорошо.

Однако, было несколько коммитов (а именно (123,124,125,126,127) в ствол, которые я хотел бы видеть в моей ветке.

$ svn merge -r122:127 ^/projects/my_project/trunk/src/utils .
--- Merging r123 through r127 into '.':
D    foo.py

Упс! Он удалил мой файл! Что я делаю не так, чтобы этого не случилось?

Ответы [ 3 ]

1 голос
/ 08 декабря 2011

Сначала вы находитесь в правильном каталоге, где вы выполнили команду svn merge?Вторые никогда не объединять только подпапки в SVN.Просто используйте

svn merge ... ^/projects/my_project/trunk 

в корне вашей рабочей копии.Это будет лучше, в частности, в связи с историей слияния (svn: mergeinfo).

1 голос
/ 08 декабря 2011

Возможно, это больше связано с папкой, которой принадлежит файл, чем с самим файлом. Я полагаю, что большинство инструментов SCM рассматривают папки как файлы в том смысле, что они также имеют версии. Возможно, вам придется подняться на один уровень выше, чтобы убедиться, что папка «utils» также объединена.

Edit:

Просто, чтобы объяснить немного больше, это папка "utils", которая записывает, что файл "foo.py" является его дочерним, поэтому даже если foo.py существует в trunk, без объединения обновленной папки utils может не отображаться.

0 голосов
/ 08 декабря 2011

Ах! Кто-то действительно слил ветку в ствол, который добавил файл в ствол, но затем откатил этот коммит, удалив файл из ствола. Спасибо за помощь. Хороший урок о том, как работает SVN Merge.

...