Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > fish_r

Рейтинг: 4.67. Голосов: 3.

SVN. Автоматическая архивация локального репозитория.

Запись от fish_r размещена 23.06.2011 в 11:50
Обновил(-а) fish_r 23.06.2011 в 17:48

К сожалению, совсем недавно стал пользоваться системой SVN. Клиент, естественно (для Windows), TortoiseSVN. Тащусь! Нет слов... Как мне раньше этого не хватало!

Однако, рекомендуется, периодически снимать архивную копию с репозитория. Для этого надо набивать "что то там" в командной строке. Это не очень удобно. А не удобно значит - лень. А лень - значит это будет делаться не систематически и риск потерять репозиторий "в один прекрасный день" вполне вероятен. Покумекав набросал батник (на случай, если кто не в курсе: файл с расширением .bat, например archiveStart.bat) , который можно активировать кликом, а можно вставить в "Планировщик", или подобную программу. Привожу здесь его код для тех лентяев которые его ещё не написали :


Код:
@ECHO OFF

goto NX
---------------------------
bat-файл предназначен для автоматизированного
создания архива SVN-репозитория.
В результате запуска создается
папка с именем текущей даты,
в папке создается архив
текущего репозитория.

Внимание! Если пути к файлам включают кириллические
символы bat-файл необходимо сохранять в кодировке
DOS-866. Блокнот эту функцию не поддерживает, 
сохраняет в win CP1251.
Можно использовать FAR, утилиты NortonCommander и т.д.
Пути содержащие пробелы (напр. C:\Program Files\...) 
необходимо экранировать кавычками,
пример:"C:\Program Files\..."

---------------------------
:NX



ECHO ***********************************************
ECHO *   Creating an archive of this repository.   *
ECHO *   Please wait ...                           *
ECHO *  ------------------------------------------ * 
ECHO *   Добавление текущего репозитория в архив.  *
ECHO *   Пожалуйста ждите...                       *
ECHO ***********************************************


:: Создаем перем. с текущей датой.
SET datetemp=%DATE%

::Создаем папку с именем текущей даты

MD H:\ArchiveCopySVN\%datetemp%_archiv

goto next
------------------------------------------
         ПАРАМЕТРЫ КОМАНДЫ АРХИВИРОВАНИЯ

svnadmin - вызов утилиты программной строки,
           утилита устанавливается автоматически.
           Последнюю версию можно загрузить с
           http://Subversion.apache.org/getting.html,

hotcopy  - команда копирования,

1 путь   - путь к репозиторию,
2 путь   - путь к созданной папке для помещения
           архивируемых данных

--clean-logs - необязательная команда удаления 
               излишних файлов экономит некоторое место. 

------------------------------------------
:next


:: Добавляем команды SVN

svnadmin hotcopy D:\Training\ActionScriptCS3\SVN\Repository1  H:\ArchiveCopySVN\%datetemp%_archiv  --clean-logs

@ECHO ON

:: end off

EXIT
На последок замечу, только, что если пути к файлам включают кириллические символы bat-файл необходимо набрать и сохранить в кодировке DOS-866 (об этом, так же, есть замечание в тексте батника). Блокнот эту функцию не поддерживает, сохраняет в win CP1251. Можно использовать FAR, утилиты NortonCommander и т.д.
Пути содержащие пробелы (напр. C:\Program Files\...) необходимо экранировать кавычками , пример: "C:\Program Files\..."

Приятного версирования!
Всего комментариев 19

Комментарии

Старый 23.06.2011 13:45 alatar вне форума
alatar
 
Аватар для alatar
Если пути будут содержать пробелы, то этот батник работать не будет. Надо экранировать кавычками.
Старый 23.06.2011 14:13 fish_r вне форума
fish_r
 
Аватар для fish_r
Yes, of course, just like any other ... Спасибо за это замечание. На всякий случай дополню запись.
Старый 23.06.2011 15:06 КорДум вне форума
КорДум
 
Аватар для КорДум
К слову, для *nix есть RabbitVCS (почти полный аналог черепашки), батники там — .sh =)
Старый 23.06.2011 16:56 alatar вне форума
alatar
 
Аватар для alatar
Цитата:
пример: C:\"Program Files"\...
Вообще-то "C:\Program Files"\...". Пробел может быть и не один. Запаришься экранировать.
А для автоматически создаваемых путей, например, с переменными окружения или с %~dp0 лучше ставить всегда ибо неизвестно, что в пути будет в итоге.

В общем, лучше добавить ссылку на мануал по батникам (например).
Обновил(-а) alatar 23.06.2011 в 17:15
Старый 23.06.2011 17:51 fish_r вне форума
fish_r
 
Аватар для fish_r
Ты прав. Больше того - он так вообще не найдет путь... Исправил.
Ссылка интересная.... для админов, которые и так всё это знают
Кому нужны будут нюансы - спросит, я думаю.
Обновил(-а) fish_r 23.06.2011 в 17:53
Старый 23.06.2011 18:21 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Так это в смысле если и сервер и клиент локально, на одной машине. Ну так собственно можно было бы просто еще один чекаут сделать, эффект тот же будет
Я начал было крон джоб искать, ну, думал, это удаленно как-то
Старый 23.06.2011 18:27 alatar вне форума
alatar
 
Аватар для alatar
Ну, определенный смысл в этом есть. Если архивировать на внешний винчестер или на другую машину. Если локальный винт навернется, чекаут не спасет.
Старый 23.06.2011 18:46 Aloran вне форума
Aloran
Для приятного "версиворания", по мне лучше git юзать в купе с github.com. Кстати черепашка для git тоже есть.
Старый 23.06.2011 19:01 fish_r вне форума
fish_r
 
Аватар для fish_r
Цитата:
Для приятного "версиворания", по мне лучше git юзать в купе с github.com. Кстати черепашка для git тоже есть.
Да, есть черепашка. А чем git лучше svn?

Цитата:
Я начал было крон джоб искать, ну, думал, это удаленно как-то
Да-к... это... Батнику то всё равно что запускать... можно и сетевое соединение открыть...
через svn, наверно...
И лог записать, и расписание сделать... Такой задачи не было у меня.
Обновил(-а) fish_r 23.06.2011 в 20:11
Старый 23.06.2011 20:24 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
git не лучше и не хуже. git - другой.
Старый 23.06.2011 23:54 Котяра вне форума
Котяра
 
Аватар для Котяра
Ну для локального использования и архивирования гит удобнее (имхо)
Фишка в том что у кажого юзера есть вся версия репозитария. т.е. глобального сервера нет. Просто в какой-то момент можно установить один из клиентов (юзеров) или как там зовётся - хабом (Но в основном всё равно юзают какой-то центральный хаб - наприемер github.) А для сохранения копии достаточно сделать обновление на бэкапной версии - весь репо, а не только последняя ревизия попадёт в чекаут.
В общем есть свои плюсы, но есть и минусы. Холиваров на эту тему тыщща.
Есть ещё меркуриал, vss и cvs.
Обновил(-а) Котяра 23.06.2011 в 23:58
Старый 24.06.2011 03:19 surlac вне форума
surlac
 
Аватар для surlac
Цитата:
А чем git лучше svn?
Холивар "СтоПицотПервый"

Кстати, батники и sh-ники — это "не круто", гораздо удобнее использовать ANT. Это вам и кроссплатформенность, и интеграция с IDE, и запуск "интересных" команд, например: собрать всё кроме .svn, сжать в zip, залить через FTP или отправить почтой.
Старый 27.06.2011 14:11 nuran вне форума
nuran
Есть же программы для резервного копирования.
И резервировать лучше всего на внешний хард/ftp а лучше сразу в 10 мест
Старый 27.06.2011 15:04 fish_r вне форума
fish_r
 
Аватар для fish_r
Можно довести мысль до абсурда и копировать каждые 2 часа в 10 мест .

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

К чему я это? Если вы сделаете архив на не системном разделе диска, то это уже хорошо. И уже защищает. У меня, например, для подобных вещей стоит в компе 2-ой диск, несъемный, но от этого не менее надежный. Это защитит от "закидонов" ОСи, скачков напряжения (хотя ИБП тоже стоит), выгорания мамки и пр., пр., пр. А сами по себе харды довольно надежны и достаточно редко выходят из строя (а чтобы 2 харда разом аллилуйю спели - такого не припомню вообще). Для верности можно раз в полгода, год и на внешний носитель...

Что касается программ... @surlac уже упоминал, здесь, про ANT. Есть, конечно, и другие. Но мне, например, их функционал избыточен, пока. Поэтому данное решение вполне меня устраивает.
Возможно устроит и кого то ещё
Обновил(-а) fish_r 27.06.2011 в 15:14
Старый 27.06.2011 20:26 Котяра вне форума
Котяра
 
Аватар для Котяра
У приятеля был ноутбук с RAID-1 массивом - всё мне хвалился, что мол практически нет опасности потерять данные, т.к. вряд ли оба винта выйдут из строя одновременно. Они и не вышли - просто ноутбук украли)
Старый 27.06.2011 22:41 fish_r вне форума
fish_r
 
Аватар для fish_r
Так это уже "форс-мажор". Съемный диск тоже можно уронить ...
Старый 28.06.2011 01:03 Котяра вне форума
Котяра
 
Аватар для Котяра
Просто я про то, что не надо хранить все яйца в одной корзине Бэкап - это и есть лекарство от форс-мажоров.
Сам бэкаплю в основном только фотки - в 3 места. т.е. на CD-DVD диски, на мэйлру, и на раб компе (кроме того ещё на флэшке фоторамки, но там не всё, а только выбранное).
Код лежит на гитхабе и гуглокоде (свой) + локальные копии. Рабочий - на серверах компаний.
Обновил(-а) Котяра 28.06.2011 в 01:07
Старый 30.06.2011 12:07 nuran вне форума
nuran
> Можно довести мысль до абсурда и копировать каждые 2 часа в 10 мест

Почему же абсурд? Вот когда упадёт хард с дневной работой а завтра надо сдавать — вот тут уже и подумаешь абсурд или нет это
Старый 24.10.2012 21:12 elder_Nosferatu вне форума
elder_Nosferatu
 
Аватар для elder_Nosferatu
Ага. Завтра сдавать, а ты не работой занят, а все время на часы смотришь - может уже пора резервировать.
Во всем нужно равновесие!
 

 


Часовой пояс GMT +4, время: 05:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.