У меня есть отдельные персональные проекты на общедоступном хостинге; вот несколько мыслей, из того, что я делаю на одном из этих (тот, который наиболее активен и нуждается в некотором, по крайней мере, полуавтоматическом способе синхронизации):
Несколько слов о моей настройке :
- Некоторое время назад у меня было все на SVN; теперь, я использую bazaar; но идея точно такое же (за исключение, с базаром, я местная история и все, что)
- У меня есть доступ по SSH к серверу производства, как вы делаете
- Я работаю на Linux эксклюзивно (так то, что я не мог бы быть столь же легко с окнами)
Теперь, как я работаю:
- Все, что имеет то быть на производственном сервере (исходный код, изображения, .. .) является поручен к SVN/bazarr/все
- Я работаю на местном уровне, с Apache/PHP/MySQL (я использую дамп производственной БД, что я импортировать локально раз в то время)
- Я только один работа над этим проектом; вероятно, было бы хорошо для небольшой команды из 2/3 разработчиков, но не более.
То, что я делал раньше:
- У меня был некоторые PHP скрипт, проверяющего сервер SVN для изменения между «последним пересмотром толкнул производство» и ГОЛОВА
- Я предполагаю, что это самодельный PHP-скрипт выглядит как скрипт Perl, который вы сейчас используете. ^^
- Этот скрипт создал список каталогов/файлов для загрузки в производство
- И загрузил их через FTP-доступ
- Это было не очень приятно (были ошибки в моем скрипте, я полагаю; Я никогда не успевал их исправить); и заставил меня вспомнить номер ревизии, когда я в последний раз толкнул производство (ну, он автоматически сохраняется в файл с помощью сценария, так что не трудно ^^)
Что мне теперь делать:
- При переключении на базар, я не хочу, чтобы переписать этот сценарий, который не работал очень хорошо в любом случае
- Я уронил сценарий полностью
- Поскольку у меня есть доступ по SSH к серверу производства , Я использую rsync для синхронизации от моей машины разработки до производственного сервера, когда то, что у меня локально, считается стабильным/готовым к производству.
Несколько примечаний о том, как делать вещи:
- не имеют промежуточный сервер: моя локальная установка достаточно близко, чтобы один
- Не имея промежуточный сервер по производству в это нормально для простого проекта с одним или двумя developpers
- Если бы я был промежуточный сервер, я бы, вероятно, пойти с:
- сделать «обновление СВН» на него, когда вы хотите ГНА GE
- , когда он в порядке, запустите команду Rsync от промежуточного сервера (который будет ба в последнем «стабильный» ревизии, поэтому OK для толкания производства)
- С большим проектом, с более разработчиков, я бы, вероятно, не пошел с такой настройкой; но я нахожу это вполне нормально для (не слишком большого) персонального проекта.
Единственное «специальный» здесь, которые могли бы быть «линукс-ориентированный» использует Rsync; быстрый поиск, кажется, указывает на наличие исполняемого файла rsync, который может быть установлен на окнах: http://www.itefix.no/i2/node/10650
Я никогда не пробовал.
Как Замечание, вот что моя команда Rsync выглядит следующим образом:
rsync --checksum \
--ignore-times \
--human-readable \
--progress \
--itemize-changes \
--archive \
--recursive \
--update \
--verbose \
--executability \
--delay-updates \
--compress --skip-compress=gz/zip/z/rpm/deb/iso/bz2/t[gb]z/7z/mp[34]/mov/avi/ogg/jpg/jpeg/png/gif \
--exclude-from=/SOME_LOCAL_PATH/ignore-rsync.txt \
/LOCAL_PATH/ \
[email protected]:/REMOTE_PATH/
Я использую открытый/закрытые ключи Механизм, так Rsync не запрашивает пароль, кстати.
И, конечно же, я обычно использую ту же команду в режиме «сухого хода» первым, чтобы увидеть, что будет synchorised, с опцией «--dry-run
»
И ignore-rsync.txt
содержит список файлы, которые я не хочу быть прижаты к продукции:
.svn
cache/cbfeed/*
cache/cbtpl/*
cache/dcstaticcache/*
cache/delicious.cache.html
cache/versions/*
Здесь я просто предотвратить каталоги кэша для толкания производства - кажется логичным, чтобы не отправлять тех, так как данные производства не то же самое, как развитие данные.
(Я просто заметил, что есть еще «.svn
» в этом файле ... Я мог бы удалить его, так как я не использую SVN больше для этого проекта ^^)
Надежда это немного помогает ...
Большое спасибо. Меня по-прежнему удивляет то, что такие люди, как ты, вложили ответы с такой детальностью и ясностью. – zenna
Добро пожаловать :-) (Некоторые ответы, которые я получаю и/или вижу, поражают меня тоже ;-) Так что, когда я могу помочь ... ну, вот что такое!) –