Subversion демистифицирована? - PullRequest
0 голосов
/ 19 июня 2010

Я наконец решил перейти к рабочему процессу управления версиями, но ... уже месяц я пытаюсь настроить рабочий процесс с SVN, но безуспешно.

работаю с Coda (svn есть поддерживается) + Медиа Храм Хостинг. Я просто настроил репозиторий (следуя руководству по MT) в / data / svn / myproject и импортировал мой корень сайта.

Проблема 1: SVN импортировал только половину файлов в корне, а не каталоги.

Затем я попытался (после обучения) оформить заказ в Coda.

Проблема 2: Я получаю сообщение об ошибке (локальный каталог не является рабочей копией), и была создана только папка .svn.

Теперь я думаю, что совсем не понимаю, как работает система управления версиями. Просто дайте мне понять: когда я впервые извлекаю файлы, они будут скопированы из моего удаленного каталога в мою локальную папку? Проверка FTP и версии остается двумя отдельными задачами? Я имею в виду: когда я фиксирую файл в Coda, он автоматически помещается в каталог моего удаленного веб-сайта, обновляя старый? И речь идет только о коде или все находится под контролем версий (изображения и т. Д.)?

Извините, я прочитал много руководств, прежде чем спрашивать, но я не понимаю!

Спасибо

1 Ответ

3 голосов
/ 19 июня 2010

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

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

По сути, рабочий процесс SVN состоит из двух вещей - репозитория и локальной папки.Репозиторий похож на сервер.Это центральное место для всех вещей.Думайте об этом как о «умной папке FTP».

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

Ну, на самом деле это немного более «умно», чем простое копирование.SVN отслеживает все изменения, поэтому при локальном удалении файла коммит также удаляет файл на сервере.Это похоже на то, как если бы папка сервера выглядела точно так же, как ваша локальная папка.

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

Другое основное преимущество SVN перед простой папкой FTP - это когда несколько пользователей вносят изменения в одни и те же файлы.Он отслеживает все, поэтому, когда вы и ваш собеседник изменили один и тот же файл, он предупредит вас о совершении.Чаще всего SVN сможет объединить ваши изменения автоматически, но иногда вам придется разбирать вещи и вручную.Но опять же - никто не может случайно потерять свои изменения, потому что кто-то переписал файл, который они изменили.История сохраняет все это, и как только вы оба попытаетесь перезаписать один и тот же файл, вы получите большие жирные предупреждения и прочее.

Итак, рабочий процесс ...

Ну, большинствовремя это так:

  1. Вы создали свой репозиторий.Сначала он пуст, как пустая папка.
  2. Затем вы «извлекаете» пустую папку в вашу локальную папку.Также выберите новую пустую папку, чтобы быть в безопасности.Это бессмысленно, но устанавливает связь между вашей локальной папкой и хранилищем.А именно, будет создана маленькая папка .svn (вы должны оставить эти маленькие папки в покое и игнорировать их).Отныне SVN будет знать, что эта локальная папка отражает папку хранилища, и будет фиксировать эту папку хранилища.
  3. Теперь вы скопируете все свои материалы в новую пустую папку.
  4. Скажите SVN "Добавить все файлы". Это пометит все файлы как новые дополнения, которые должны быть скопированы в репозиторий при следующей фиксации. Теперь обычно есть некоторые файлы, которые вы не захотите копировать на сервер. То, что вы включаете, а что нет, зависит от вас, но, как правило, все вещи, относящиеся к исходному тексту программы (включая такие ресурсы, как изображения и прочее), копируются, а локальные файлы, автоматически воссозданные в среде IDE, остаются. из. Подумайте об этом так: когда другой парень захочет присоединиться к вам, он заберет все файлы из хранилища. Какие из них будут актуальны для него, а какие он удалит? SVN также включает функцию под названием «игнорировать», чтобы в будущем не получать подсказки о ненужных файлах.
  5. Тогда зафиксируй. Это скопирует ваши файлы на сервер и заполнит там папку.
  6. После этого начните работать над следующей функцией. Когда вы закончите, зафиксируйте. И начнем со следующей функции. И т. Д. На самом деле, вы должны совершать, когда захотите. Правило большого пальца - держите копию сервера в нормальном состоянии. Не выполняйте коммит, если он не компилируется или находится в середине какого-то грязного переписывания, из-за которого половина программы не работает. Совершить завершенные вещи.

Вот и все. Если вы работаете вместе со своим приятелем, вы также будете время от времени делать «Обновление». Это скопирует изменения, которые ваш собеседник внес в вашу локальную папку.

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

...