Как в SVN создать новую ветку в branches, переключиться на неё и закоммитить файлы?

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

Ответить
Arvalon
Сообщения: 9
Зарегистрирован: 03 ноя 2016, 16:48
Контактная информация:

03 июн 2017, 14:39

Доброго дня.

Есть ветка trunk, оттуда совершён update и внесены свои изменения. необходимо создать ветку в папке branches (она сейчас пуста), обозвать как-то (лучше всего подойдёт цифровой номер задачи RedMine...), закоммитить туда файлы проекта и переключится на неё.
Можно в консоли, можно в среде (Android Studio) куда нажать? Вкратце какие команды?

Боюсь ошибиться и:
1. снести всё что наработал уже!
2. по ошибке сделать коммит в trunk, туда пока что это делать нельзя, не доделано.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

03 июн 2017, 17:29

Чем svn copy не подходит?
Даже самый дурацкий замысел можно воплотить мастерски
Arvalon
Сообщения: 9
Зарегистрирован: 03 ноя 2016, 16:48
Контактная информация:

03 июн 2017, 18:38

Есть непонимание что произойдёт после copy
Вот допустим выплню

Код: Выделить всё

svn copy svn://svnserver/var/bump/trunk svn://svnserver/var/bump/branches/my-branch -m="Creating a private branch of /bump/trunk"
Тогда всё что находится в trunk скопируется в my-branch. Но изменения, внесённые на локальной машине ещё нет ни в trunk ни в my_branch.
Далее мы можем переключиться в новую ветку:

Код: Выделить всё

svn switch svn://svnserver/var/bump/branches/my-branch
В этот самый момент не произойдёт самое страшное - будет все локальные файлы вернуться в состояние актуальное для ветки my_branch? Т.е. не откатятся ли назад некоторые файлы, и не удалятся те что были добавлены в проект?
Если нет, то далее можно как обычно продолжать работать, и первый commit добавит в my_branch всё новое?
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

03 июн 2017, 20:12

Уже много лет в руках шашки не держал :) Что-то около 15-ти.

Смотри как мне помнится. Локальные изменения записываются на сервер с помощью команды commit. То есть пока ты не выполнишь эту команду, ничего страшного не произойдёт. В смысле на сервере не изменится. Соответственно локально что-то поменяется только если ты заберёшь новые версии командой checkout/update.

switch - это только переключение источника.
Даже самый дурацкий замысел можно воплотить мастерски
Arvalon
Сообщения: 9
Зарегистрирован: 03 ноя 2016, 16:48
Контактная информация:

03 июн 2017, 20:17

А вот мне в 2017 году приходиться возиться в нём...

Есть небольшой опыт работы с GIT и от этого всё становиться только запутаннее.

Первое - выполнение команды switch точно не вызывает автоматом команду update?
Второе - даже если switch не вызывает update, commit то вызывает? Т.е. сначала всё равно придётся проапдейтится из скопированной ветки, и это может затрёт всё наработанное...

И потренироваться не на чем, под рукой лишнего сервера SVN нет, могу только убить рабочие данные.
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

04 июн 2017, 02:42

Arvalon писал(а):И потренироваться не на чем, под рукой лишнего сервера SVN нет, могу только убить рабочие данные.
Делать так:

F6 Tab Enter
F6 Tab Enter

И напевать:
I like to move it, move it
Ya like to (Move it)

Потребуется Far Manager или Total Commander :)

Я серьёзно - сделать локальную копию руками будет вполне разумно. А уже после можно спокойно экспериментировать.

P.S: Глянул в вики, судя по дате появления на свет svn, я работал с какой-то другой системой контроля версий. Склероз.
А switch в svn действительно является расширенной версией команды update.
Даже самый дурацкий замысел можно воплотить мастерски
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

04 июн 2017, 12:26

А что сейчас модно для групповой разработки? svn последний раз так же нацать лет назад пользовался, остался недовольным, не удобно без дополнительного контроля кто что делает, вполне возможны моменты когда одновременно один и тоже участок будут долбить несколько человек..
[syntax=Delphi] [/syntax]
Arvalon
Сообщения: 9
Зарегистрирован: 03 ноя 2016, 16:48
Контактная информация:

04 июн 2017, 15:17

Duncon писал(а):А что сейчас модно для групповой разработки?
GIT наверное. В нём есть локальный репозиторий!
А мне с SVN приходится работать т.к. в нём ведётся рабочий проект.
Ответить