2013-06-25 2 views
0

Для лучшего понимания: делает в svn branch является копией какой-либо другой ветви (ствол)? Я имею в виду, что svn не тракает какое-либо отношение между ними? Итак, я могу создать имя копии как ветку myproject-x.y.z, зафиксировать ее, и это будет ветка? Итак, я мог бы использовать операции, такие как merge? Спасибо.Есть ли в svn ветке простая копия?

+0

Когда вы говорите, «Так что я могу создать имя копии в качестве филиала MyProject-x.y.z, совершить это, и это будет филиал?» вы могли бы включить пример командной строки из того, что вы подразумеваете под именем «create copy name as branch myproject-x.y.z»? –

+0

. Я хочу скопировать только файлы проекта, а не файлы .svn. – user710818

ответ

3

Да, вы должны сделать копию дерева проекта в репозитории, используя команду svn copy. Будет создана копия исходного кода. Вы можете выбрать любое имя для филиала, который вы хотите.

Теперь вы копируете, вы можете проверить код.

$ svn checkout http://svn.example.com/repos/calc/branches/my-calc-branch 
A my-calc-branch/Makefile 
A my-calc-branch/integer.c 
A my-calc-branch/button.c 
Checked out revision 341. 
$ 

Subversion осознает историю вашей ветки и знает, когда она отделилась от ствола. Чтобы выполнить синхронизацию слияния, сначала убедитесь, что рабочая копия ветки «чистая», что она не имеет локальных изменений, о которых сообщает статус svn. Затем просто выполните:

$ pwd 
/home/user/my-calc-branch 
$ svn merge ^/calc/trunk 
--- Merging r345 through r356 into '.': 
U button.c 
U integer.c 
--- Recording mergeinfo for merge of r345 through r356 into '.': 
U . 
$ 

Используйте svn status чтобы проверить изменения кода из главной копии.

$ svn status 
M  . 
M button.c 
M integer.c 
$ 

Смотрите мой любимый http://svnbook.red-bean.com/

1

Да, если вы svn copy source_url/trunk source_url/myproject-x.y.z -m "Insert comment here", вы создали филиал myproject-x.y.z. Между ними нет явной отслеживаемой связи. Сделав больше коммитов на myproject-x.y.z, вы можете объединить его в trunk, но вы также можете объединить его в гипотетический branch_b.

Нужно использовать команду svn copy, а не dos copy или Unix/Linux/OSX cp.