Subversion филиал вопрос - PullRequest
       11

Subversion филиал вопрос

6 голосов
/ 07 августа 2009

Я проверил определенную ветку Subversion моего приложения. Назовите это «1.0». Я работал над некоторыми изменениями, добавил несколько новых файлов и т. Д., Но еще не зафиксировал эти изменения. Однако я не хочу фиксировать изменения в ветке '1.0'. Вместо этого я хочу зафиксировать свои изменения в новой ветви '1.1'.

Насколько я вижу, мне нужно сначала проверить свежую копию ветки '1.0', затем создать новую ветку Subversion под названием '1.1', а затем вручную скопировать ожидающие изменения перед фиксацией.

Есть ли более простой способ сделать это?

Ответы [ 3 ]

9 голосов
/ 07 августа 2009

Вы можете удаленно создать ветку, затем переключиться на новую ветку и зафиксировать изменения.

$ cd /path/to/working
$ svn copy svn://my/repos/trunk svn://my/repos/branches/1.1 -m "Created branch 1.1"
$ svn switch svn://my/repos/branches/1.1
$ svn commit -m "Your message"
3 голосов
/ 07 августа 2009

На самом деле вы можете создать ветку, вообще не имея извлеченной рабочей копии, используя только удаленные URL-адреса. Если вы делаете svn copy ствола (или ветку 1.0) в ветке 1.1, вы можете затем сделать svn switch, чтобы переместить вашу рабочую копию, чтобы указать на новую ветку, а затем зафиксировать там. (Если вы еще не сделали что-то подобное, целесообразно сохранить резервную копию текущей рабочей копии, чтобы не потерять свои модификации.)

Например ...

svn copy http://svn.example.com/branches/1.0/ \
         http://svn.example.com/branches/1.1/ \
    -m "Creating 1.1 branch."

cd /path/to/working/copy
svn switch http://svn.example.com/branches/1.1/

Посмотрите svn help switch для более подробной информации.

2 голосов
/ 07 августа 2009

svn switch позволяет переключать рабочую копию в другую ветвь. Вы можете создать ветку заранее, не проверяя новую копию с помощью svn copy <repository>/branches/1 <repository>/branches/2

...