2011-02-01 2 views
1

Я успешно настроил SVN и XCode, это действительно здорово! Я фиксирую, обновляю, даже теги (в Терминале, хотя ...)! Все это довольно легко Теперь я хотел бы работать с разными ветвями, но я немного смущен.Как работать с ветвями в XCode (SVN)

I'v следовал this tutorial, и в нем есть раздел о ветвлении. То, что он говорит, чтобы использовать этот скрипт:

#!/bin/ksh 
# A script to branch a SVN trunk 
reporoot=/Library/Subversion/Repository/ 
projdir=Projects 

# Prompt for repository name 
print -n "Enter repository name:" 
read repo 

# Prompt for project name 
print -n "Enter project name:" 
read project 

# Prompt for branch name 
print -n "Enter branch name:" 
read branch 

# Create branch 
svn copy file://$reporoot/$repo/$projdir/$project/trunk file://$reporoot/$repo/$projdir/$project/branches/$branch -m "Creating a branch of the ‘$project‘ project." 

echo 
echo Creation of a branch of the $project project complete! 
echo 

Но что я вижу, это просто скрипт, который копирует текущий ствол в ветви (например, тег). И если я сделаю это, я все равно пойду в багажник нет?

Есть ли у вас какие-либо идеи относительно возможности «легко переключаться» между ветвями, обновлениями и фиксацией?

спасибо.

+0

Я хотел бы иметь возможность сделать это тоже. Как вы можете переключиться на ветку, как внутри, так и вне Xcode? Наверняка, весь смысл контроля версий - иметь возможность просматривать разные ветви или версии вашего проекта в рамках одного и того же проекта Xcode? Кажется, этого трудно достичь с помощью ветвей. Также кажется невозможным сравнить одну ветку с другой ветвью, хотя я думаю, что она встроена в SVN. –

ответ

2

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

Я не уверен, понравилось ли Xcode это, или нет.

1

Попробуйте XCode 4, он позволяет создавать ветви, переключать и объединять их в полном режиме, а не так, как это делал XCode 3.

ОБНОВЛЕНО: вы должны использовать svn switch после создания новой ветки. Он обновит вашу рабочую копию.

Пример:

svn switch http://[email protected]:8080/svn/alb.iphone/Branches/SuperFastAlgo 

Полное описание here

+0

Приятно знать, что XCode 4 работает лучше, чем XCode 3! Но мы пока не можем переключиться, поскольку Google Toolbox для Mac не поддерживает XCode 4 – Julien

1

Я хотел бы использовать Git над SVN и использовать GitX. У вас будет гораздо легче работать с филиалами, особенно если вы хотите использовать их практически и не тратите полчаса на слияния. Интеграция XCode3 SCM не особенно полнофункциональна. Если это вообще возможно, я бы попробовал XCode4 с Git и клонировать и добавлять библиотеки поставщиков в качестве подмодулей. (Это все немного SOP с 2012 года).

Вы всегда можете использовать команды git svn (sample tutorial).

Существует также Objective-C .gitignore Github project. Наличие Git repo только физически в корне проекта также является большим плюсом.

+0

В конечном итоге я сбросил SVN и использовал GIT. Это то, что все рекомендуют, и они правы! – Julien

Смежные вопросы