SVN - Как сделать файлы ревизии в консистенции в папке / trunk и / tag? - PullRequest
1 голос
/ 30 марта 2011

У меня есть проект .NET, и я использую VisualSVN Server и tortoiseSVN Client.Когда-нибудь, когда я закончу задачу и гарантирую, что она достаточно стабильна для производственного использования, я сделаю следующее:

1. Откройте браузер репозитория, удалите все файлы в / trunk.2. Импортируйте последнюю копию в / trunk из моего локального проекта.3. переключитесь на / tag, создайте имя папки с датой и временем (например, 2011.03.30) и снова импортируйте последнюю копию из моего локального проекта.

однако, файлы в / tag, ревизия новее, чем/хобот.Но оба набора файлов одинаковы.

Так что мой вопрос, как сделать их согласованность?

Или мой шаг неверен?

Как я знаю / trunk является текущей версиейдаже стабильный или в разработке./ тег для стабильной сборки.

Ответы [ 3 ]

3 голосов
/ 30 марта 2011

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

2 голосов
/ 30 марта 2011

Только не удаляйте / trunk при создании рабочей версии (почему вы считаете, что это необходимо, вы теряете историю для каждого файла?). Передайте текущую работу в хранилище, создайте новую папку тегов (если хотите, datetime) и используйте svn copy, чтобы скопировать последнюю версию транка в папку тегов. Например, вот основная строка из скрипта тега, который я использую:

svn copy %SVNREPOSITORY%/ProjectFolder/trunk %SVNREPOSITORY%/ProjectFolder/tags/%NEWTAG% -m"Version %NEWTAG%"

Если вы хотите убедиться, что / trunk не содержит ненужных файлов, удалите их в тот момент, когда они больше не нужны в репо, а не позже.

2 голосов
/ 30 марта 2011

В дополнение к тому, что написал @Keith, вам нужно понимать номера ревизий в SVN: они как счетчик изменений, внесенных во весь репозиторий . Существуют системы контроля версий, такие как CVS, которые работают на уровне файлов, и там можно синхронизировать номера версий файлов между ветвями, но в SVN вы создаете copy для создания ветки. Это модификация хранилища, и поэтому вы получаете новую ревизию.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...