При создании ветки в TortoiseSVN, что означают «заголовок», «рабочая копия» и «конкретные» ревизии? - PullRequest
8 голосов
/ 17 января 2010

Новый пользователь Tortoise SVN, работающий над контролем исходного кода.

У меня есть решение Visual Studio, которое состоит из 5 проектов webAppliation. Мне нужно взять один и работать над ним в филиале. Когда я пытаюсь разветвить его, он запрашивает один из этих вариантов

  • Головная ревизия в хранилище
  • конкретная ревизия в хранилище
  • редакция рабочей копии

альтернативный текст http://img25.imageshack.us/img25/3747/svnfile.jpg

Задача 1: Что именно это? Меня смущают слова «главная редакция» и «рабочая копия», поскольку они кажутся мне одинаковыми.

альтернативный текст http://img34.imageshack.us/img34/8079/svn2.jpg

EDIT:

Проблема 2: Почему мы не можем перейти из самого графического интерфейса репозитория (будет головной версией)?

Проблема 3: Можете ли вы перечислить шаги, необходимые для перехода из каталога!

Ответы [ 4 ]

14 голосов
/ 17 января 2010

Головная ревизия в хранилище - это самая последняя ревизия, которая была передана в систему контроля версий. Ваша рабочая копия ревизия - это ревизия, отраженная вашим текущим деревом. Поскольку люди могли совершать какие-либо действия во время вашей работы, ревизия вашей рабочей копии может не совпадать с ревизией HEAD.

Когда вы разветвляетесь, вас просят разветвляться с определенной точки . TSVN спрашивает вас, что вы хотели бы, чтобы этот пункт был, и у вас есть один из трех вариантов:

  • откуда вы работаете сейчас (версия вашей рабочей копии)
  • где сейчас находится хранилище (HEAD редакция хранилища)
  • некоторая другая произвольная ревизия (конкретная ревизия)
<Ч />

Обновление: ОП добавил несколько дополнительных вопросов, которые не были частью оригинала, поэтому я исправил свой ответ.

Почему мы не можем перейти от самого графического интерфейса репозитория (будет головной версией)?

Графический интерфейс TortoiseSVN не представляет полный набор операций, которые возможны с Subversion. Subversion - это просто набор инструментов командной строки, а TSVN - это оболочка для них. Если вы хотите полностью создать новую ветку на сервере, просто используйте:

svn copy svn://example.com/repo/trunk/ svn://example.com/repo/branches/1.4

Можете ли вы перечислить шаги, необходимые для перехода из каталога?

В руководстве TortoiseSVN достаточно подробно описано, как это сделать. См. здесь .

3 голосов
/ 17 января 2010
  • HEAD revision означает последнюю версию ревизия в репозитории.
  • конкретная ревизия в репозитории: здесь вы можете ввести любую ревизию, которая вам нравится. TortoiseSVN заполнить ревизию вашей рабочей копии автоматически. Но вы, конечно, можете это изменить (возможно, вы хотите пометить ревизию, созданную вами неделю назад). Ревизия, которую TortoiseSVN заполняет автоматически, часто является ревизией, в которой находится ваш репозиторий (т. Е. HEAD), особенно если вы часто обновляете. Но: пока вы готовитесь выполнить ветку / тег, кто-то другой может зафиксировать что-то, что вы, возможно, не хотите включать в ветку / тег. Вот почему безопаснее использовать эту версию вместо HEAD. Однако, если вы уверены, что в данный момент никто не совершает, вы можете использовать HEAD здесь.
  • рабочая копия: используйте это, если ваша рабочая копия имеет локальные изменения, которые вы хотите включить в ветку / тег. Эта опция полезна, если вы хотите сохранить свою работу в ветке (также известной как стеллаж).
2 голосов
/ 24 января 2010

Чтобы ответить на вопрос №2, вы можете создать ветку из графического интерфейса TortoiseSVN. Используйте обозреватель хранилища и найдите путь, по которому вы хотите перейти, а затем щелкните правой кнопкой мыши папку и выберите «Копировать в ...». Введенный вами URL-адрес будет URL-адресом, который вы хотите разветвить от до (обычно с корнем в папке "branch").

Это создаст ветку удаленно в хранилище без необходимости сначала создавать рабочую копию. Причина, по которой операция называется «Копировать» вместо «Ветвь», заключается в том, что операция ветвления в svn - это то же самое, что создание копии (это не отдельная операция).

2 голосов
/ 17 января 2010

Ваша рабочая копия может использовать другую ревизию в качестве головной версии репозитория. То есть вы извлекаете конкретную ревизию, которая не является новейшей, или люди вносят изменения в хранилище, когда вы работаете с рабочей копией.

...