Что такое рабочая копия и что для меня делает "переключение" в Tortoise SVN?

У меня есть программное приложение, и я достиг важного этапа, версии 2.0.

Я решил пометить эту версию как "Версия-2.0", поэтому я назвал этот снимок. Я также создал ветку "Версия-2.0" на случай, если мне нужно что-то исправить и слить обратно в мой ствол.

Прочитав файл справки Tortoise SVN, он сообщает мне, что я могу переключить свою "рабочую копию" во вновь созданную ветку.

Что это значит?

В настоящее время у меня есть:

/ Проект /Trunk /
/Метки проекта/
/ Проект / Филиалы /

Все проверено. Так в чем же смысл "переключения"? В настоящее время я просто захожу в папку / trunk и выполняю свою работу. И когда я сделал свой тег и ветку, он создал папки в моей папке /Tags / и /Branches/ после того, как я сделал обновление.

Почему бы мне просто не зайти в /Branches/Experiemental-v3.0/ и выполнить там свою работу, если бы захотел?

Может ли кто-нибудь объяснить мне понятия "Рабочая копия" и "Переключение"? Что мне не хватает? У людей вообще нет проверенного хранилища целиком, не так ли?

5 ответов

Решение

Рабочая копия - это копия, которую вы извлекли в свою рабочую зону. Неважно, ветка ли это или ствол. Это то, над чем вы работаете.

Вы можете переключаться между ветвями (или, вернее, копиями) одного и того же родителя с помощью svn switch. Это в основном скажет, что отличается между текущей рабочей копией и веткой, на которую я переключаюсь. Затем он выполняет обновление вашей текущей рабочей копии до версии ветки, на которую вы переключаетесь.

Так что рабочая копия - это ваша проверка, однако она была получена.

Переключение - это просто изменение ветви, в которую попадает ваша рабочая копия. Думайте об этом как об изменении указателя в хранилище, куда будут отправляться ваши коммиты. С помощью приобретения любых отличий от филиала до вашей рабочей зоны.

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

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

Или вы можете иметь одну проверку под названием "проект", и если она изначально указывает на ствол, вы можете переключить ее на одну из веток или тегов - это способ повторного использования оригинальной проверки, чтобы вам не нужно было получать все снова и снова

Это может быть очень полезно, если вы работаете над транком и вдруг понимаете, что вам нужно зафиксировать свои изменения в ветке - возможно, потому что они стали слишком экспериментальными. Для этого выполните ветвление из своей рабочей копии, переключитесь на новую ветвь, затем подтвердите, и ваши изменения будут направлены в ветвь, а не в ствол.

Рабочая копия - это ваша копия кода, которую вы проверили. Обычно вы проверяете только /Project/trunk/, а не всю структуру хранилища. Переключение изменяет корень вашей рабочей копии. То, как вы работаете с SVN, не так, как это должно быть сделано.

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

Это полезно для переключения с транка на ветку без необходимости извлекать новую копию. Это может, например, сэкономить вам некоторое время сборки, поскольку неверсионные файлы (ваши скомпилированные объекты, библиотеки, исполняемые файлы) не удаляются и не изменяются.

Дейв

Вы проверили все дерево проекта - это, вероятно, не то, что вы хотите. Для работы с стволом проверьте копию с корнем в "стволе", а не из корня проекта. Аналогично, для работы с ветками отметьте только ту ветку, которую вы хотите.

Другие вопросы по тегам