#svn #tortoisesvn #repository
#svn #tortoisesvn #репозиторий
Вопрос:
Я пытаюсь использовать TortoiseSVN для решения небольшой проблемы, которая у меня возникла.
У меня есть ноутбук для разработки, и я разрабатываю на нем большинство своих веб-сайтов. Однако, если я нахожусь в движении, и кто-то отправляет мне SMS с сообщением об ошибке, например, я часто захожу на свой ftp на любом компьютере и исправляю веб-сайт как таковой.
Если я затем внесу дополнительные изменения на своем ноутбуке для разработки, я часто забываю о внесенном мной реальном изменении и в результате теряю его.
Таким образом, я собираюсь использовать TortoiseSVN для решения этой проблемы.
Моя учетная запись хостинга — это учетная запись общего хостинга с hostgator, которая НЕ поддерживает репозитории SVN.
Правильно ли я считаю, что принцип работы SVN заключается в том, что моя «живая» копия ДОЛЖНА быть репозиторием? Или я не понимаю?
Может кто-нибудь объяснить, как я буду добиваться того, чего я хочу, даже если для этого потребуется смена хостинга .. или, возможно, альтернатива, которая лучше подходит для моей ситуации ..?
Большое спасибо.
Том
Ответ №1:
Я не уверен, что вы подразумеваете под «живой» копией, но вот как вы работаете с SVN.
Сначала у вас есть svn-сервер, он может быть на вашем ноутбуке, но предпочтительно должен быть отдельно с автоматическим резервным копированием и т. Д.
Тогда на вашем локальном компьютере у вас есть рабочая копия. Рабочая копия — это в основном клон содержимого на сервере, но с вашими локальными изменениями. Когда вы удовлетворены своими локальными изменениями, вы фиксируете (отправляете) изменения на сервер. Если вас не устраивают ваши локальные изменения, вы можете легко вернуться к версии на сервере (или более старой версии).
Передача данных в вашу производственную среду не имеет ничего общего с svn. Это называется процессом развертывания или процессом выпуска. Процесс развертывания обычно компилирует, поддерживает установщик или собирает файлы для установки и, наконец, устанавливает / копирует результат в вашу производственную среду.
«Основная» копия вашего приложения / веб-сайта должна находиться на сервере svn. Чтобы запустить что-то в производство, вы запускаете скрипт или выполняете ручную процедуру для передачи содержимого из рабочей копии в производство.
Используя svn-сервер в качестве основной копии вместо вашего ноутбука, вы не решаете проблему отсутствия обновлений, когда вы «обманываете», редактируя файлы непосредственно в рабочей среде. Но если у вас есть удаленный доступ к командной оболочке (ssh), вы можете иметь локальную рабочую копию на рабочем сервере, редактировать материалы в рабочей копии и проверять их с помощью инструментов командной строки svn.
Редактировать
Чтобы уточнить: ваша «живая» копия абсолютно не должна быть репозиторием. Репозиторий не структурирован как обычное файловое дерево с обычными файлами в нем. Больше похоже на последовательность наборов изменений.
Ваша «живая» копия также не должна быть рабочей копией. Рабочая копия содержит специальные папки и файлы для отслеживания «вещей», которые вы не хотите размещать на своем общедоступном веб-сайте. Ваша живая копия должна быть копией соответствующих файлов в рабочей копии. Либо с copy *.html /www-folder/
помощью или svn export
или какого-либо более сложного метода.
Комментарии:
1. Ну .. моя текущая учетная запись хостинга не разрешает настройку репозитория SVN, поэтому он должен быть на моем ноутбуке. По сути, вы хотите сказать, что я НЕ должен редактировать свою ЖИВУЮ версию .. Т.Е. Версию, Которую люди могут видеть в Интернете, а скорее, если я отвечаю за развертывание сайта, я должен убедиться, что моя рабочая копия обновлена, а затем вручную загрузить все файлы и т. Д..? Проблема здесь в том, что, например, если есть ошибка в одной строке, я должен обновить свой рабочий файл, обновить репозиторий, а затем попытаться повторно загрузить один файл.. Это то, что вы предлагаете?
2. Есть много внешних хостов svn, которые вы можете выбрать. Если ваш хостинг-провайдер предоставляет вам доступ к оболочке, им не нужно поддерживать хостинг svn, вы можете просто запустить svn-клиент на своем текущем хостинге и сохранить там локальную рабочую копию. Затем вы можете передавать файлы ftp в эту рабочую копию и обратно при редактировании, затем фиксировать через удаленную оболочку и выполнять сценарий развертывания (например
copy ./*.html /www-dir/site/
).3. Я просто говорю, что я не буду с помощью каких-либо сервисов от компании, которую я знаю, писать материал прямо в производство без предварительного тестирования и без каких-либо следов того, что было сделано.
4. Большое спасибо. Следуя: chrismweb.com/2011/02/24/svn-in-shared-hosting-with-hostgator Я создал онлайн-репозиторий. Теперь я настрою рабочую копию на обоих своих компьютерах, которая подключается к этому репозиторию. Таким образом, если у репозитория более новая версия, на моем компьютере будет красный крест, накладывающий изображение, и я смогу обновить свою версию… С точки зрения живой версии.. как только мой репозиторий обновится / когда я отредактирую свою рабочую копию и зафиксирую ее, я должен использовать доступ к оболочке для ее развертывания / запуска ..? Я правильно понял ваше предложение? Спасибо
5. Да, похоже, вы на правильном пути, за исключением одной детали. TortoiseSVN автоматически отображает красные крестики при изменении вашего репозитория, только когда изменилась ваша рабочая копия. Чтобы узнать, есть ли у вас удаленные изменения, вы можете использовать SVN Notifier или CommitMonitor .
Ответ №2:
Одним из лучших решений является использование распределенной системы управления версиями, где ваш веб-сайт является зеркальной веткой или непосредственно репозиторием (или рабочей копией, это то же самое в DVCS).
Таким образом, вы получаете прямую выгоду от вашего контроля версий!
Для этого вы можете использовать Bazaar, Git или mercurial (или любые другие DVCS, это только основные).
Комментарии:
1. Я только что освоился с tortoisesvn 🙂 Благодаря помощи Альбина.. TridenT, правильно ли я считаю, что Bazzar / Git / Mercurial делают текущую версию (как я ее описал) репозиторием .. и тогда у меня может быть много рабочих копий на многих компьютерах? Есть ли какая-либо программа в стиле tortoisesvn для использования с ними?
2. да, это точно. И, конечно, у вас есть TortoiseBzr, TortoiseGit и TortoiseHg. Даже если вы только начинаете с SVN, посмотрите на Bazaar и Mercurial (Hg), они очень похожи на SVN.