2009-08-07 1 views
6

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

Насколько я могу судить, мне нужно сначала проверить новую копию ветви «1.0», а затем создать новую ветку Subversion под названием «1.1», а затем вручную скопировать мои ожидающие изменения до совершения.

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

ответ

9

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

$ 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" 
+0

Возможно, вы захотите скопировать ветку, а не тулу во второй строке. –

+0

Это сделало трюк. Огромное спасибо. – Rob

2

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

3

Фактически вы можете создать ветку, не имея извлеченной рабочей копии, используя только удаленные 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/ 

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