Настройка черепахи SVN с существующей папкой - PullRequest
1 голос
/ 07 октября 2011

Я очень отчаянно пытаюсь настроить TortoiseSVN ... У меня есть две папки - / live / и / test / - я хочу, чтобы они зеркально отображались, а затем, если я обновлю папку / test /, SVN обнаружит это и обновите папку / live / соответствующим образом, когда я сделаю коммит .. Я пробовал множество вещей, чтобы заставить это работать, но, к сожалению, не испытывал радости.

Я, вероятно, очень глуп, но я нахожу, что весь SVN очень сбивает с толку, и, кроме Версий (Mac), мне никогда не удавалось заставить его работать. В идеальном мире я хотел бы выбрать две папки, и я уезжаю!

Спасибо!

(правка) После прочтения ниже и по-прежнему впечатляющего провала, мне, к сожалению, придется пропустить это. Большое спасибо за ответы, но на самом деле это совсем не по мне. Я просто использую WinMerge и пожертвую возможностью иметь архив изменений, которые я сделал. Еще раз, хотя большое спасибо за ответы, надеюсь, ответы будут полезны для кого-то, кто действительно обладает умственными способностями, чтобы настроить эти вещи!

Ответы [ 6 ]

2 голосов
/ 07 октября 2011

Прежде чем вы слишком запутаетесь с SVN, прочитайте главы 1-3 этой книги .

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

2 голосов
/ 07 октября 2011

Subversion (с использованием TortoiseSVN или командной строки) на самом деле не предназначен для таких вещей, как зеркалирование.

Вы можете сделать обновление вручную до /live/ до того момента, когда вы фиксируете /test/, или посмотреть на добавлениеПодключить после фиксации к TortoiseSVN, чтобы сделать это автоматически с помощью клиентского скрипта Hook.

Документация TortoiseSVN

Примечание: Если вам не нужно редактировать или изменять /live/, вам, вероятно, следует взглянуть на команду Subversion export вместо того, чтобы иметь рабочую копию (вам все равно придется делать это вручную или добавлять ловушку после фиксации).

1 голос
/ 08 октября 2011

Большинство уже было сказано в сокращенном виде, я могу добавить почти ничего нового ОК.Я попробую еще раз нарисовать детальную картинку

Прежде всего - вопрос плохо сформулирован с точки зрения терминологии и бизнес-задачи.Если TEST - это WorkingCopy вашего репо (кажется, что так), а LIVE - распакованный каталог с контентом, идентичным вашей последней ревизии в репо (HEAD), то вы можете и должны, как написали @crashmstr, использовать хук post-commit в TSVN для созданиясвежий архив

  • TortoiseSVN - Настройки - Сценарии хуков - Добавить
  • Тип хука - Post-Commit, путь WC - путь к TEST, Командная строка для выполнения - /somename.bat, Waitи Hide - отметка

Вот соответствующие части из моего Releaser.bat (я создаю архив с именем Custiom после каждого коммита, таким образом, используя subwcrev добавляет некоторую сложность)

SubWCRev.exe e:\Projs\CustomLocations e:\Projs\Builder.tpl  z:\Builder.bat
...
call z:\Builder.bat

шаблониз Builder.tpl

"c:\Program Files\_Net\VisualSVN Server\bin\svn.exe" export e:\Projs\CustomLocations\trunk z:\trunk$WCDATE=%Y%m%d$-r$WCREV$

становится чем-то похожим

"c:\Program Files\_Net\VisualSVN Server\bin\svn.exe" export e:\Projs\CustomLocations\trunk z:\trunk20110926-r1129

в исполняемом z: \ Builder.bat и в результате я

  • всегда
  • автоматически
  • после каждого коммита

имеют новую отдельную версию моей работы, отмеченную уникальным идентификатором.Да, это требует некоторой работы (один раз) и наличия клиента командной строки SVN, но это справедливая цена

1 голос
/ 07 октября 2011

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

Нет встроенной функциональности, которая предписывает некоторой рабочей копии автоматически обновляться, если доступна новая редакция. Обновление всегда выполняется вручную.

Я считаю, что вам на самом деле нужна какая-то функциональность "развертывания" (как предполагает название "live"). Развертывание - это не работа SVN. Вам нужен какой-то другой инструмент для этого.

1 голос
/ 07 октября 2011

Звучит так, будто вам нужны две рабочие копии одной ветви (или ствола) - одна в live и одна в test. Для этого создайте две директории и сделайте svn checkout вашей ветки (или ствола) в каждую (то есть сделайте checkout дважды). Убедитесь, что вы используете одну и ту же ветку (или ствол) в обеих проверках.

Когда вы svn commit в тесте, ваш следующий svn update вживую примет изменения.

Я не уверен, почему вы хотите это сделать, хотя. Пока вы не совершите коммит, вы можете редактировать «вживую» столько, сколько вам нужно. Если вам нужен контроль версий ваших изменений в тесте, вам нужно прочитать о ветвлении .

1 голос
/ 07 октября 2011

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

...