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



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



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



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



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



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




/ Project / Trunk/

/ Project / Tags/

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




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



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



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

919   5  

5 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

Дэйв

Comments

    Ничего не найдено.