Система контроля версий своими руками

Реально работающие задачи в реальных условиях.
Ответить
Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Система контроля версий своими руками

Сообщение Alex » Пн окт 30, 2006 2:01 pm

Наверное у многих работающих за компьютером найдется самая важная папка с текущей работой. У меня, как программиста, эта папочка - каталог с исходниками. И конечно же, одна из главный задач - обеспечить сохранность этой папки. Кроме этого, часто хочется зайти в файл и посмотреть - а что же в нем было, например, 2 недели назад? Как это сделать? Правильно - надо купить, установить и настроить систему контроля версий. Или… Или заставить делать это хStarter! Итак, задача стоит следующим образом - продублировать рабочую папку и сохранить историю изменений файлов в этой папке.

Приступим:
  • Создаем папку под именем “_backup”, в ней создадим еще две папки с именами “_snapshot” и “_versions” (При желании каталоги можно поменять на свои).
    В xStarter выбираем Меню -> Файл -> Загрузить из файла -> Задача и выбираем файл “backup_tasks.xstk”.
    А вот собственно и все.
Указанная схема работает следующим образом:
  • Исходная папка “_source” синхронизируется с нашей папкой “_backup/_snapshot”.
    По событию “Изменения файлов в каталоге” сравниваются две папки: исходная “_source” и целевая “_backup/_snapshot”, все неэквивалентные файлы копируются в папку _versions.
    Далее xStarter создает ZIP архив с названием вида “Day_history_ТекущаяДата” и переносит туда все файлы из папки _versions, добавляя к имени файла текущее время.
Что мы получаем:
  • Всегда есть дубликат нашей папки с “последним” состоянием. Если этот дубликат будет находиться на другом компьютере или компакт-дисках, то потери нам совсем не грозят (стихийные бедствия не в счет).
    Можно посмотреть историю изменений файлов за любой день с того момента, как Вы доверили резервирование своих данных xStarter.
Варианты настройки данной задачи:
  • Добавить отдельную задачу, которая будет архивировать папку “_backup/_snapshot” в ежедневный архив. (Это может быть полезно если вы часто удаляете все содержимое рабочей папки) :)
    В действии синхронизации каталогов “_source” и “_backup/_snapshot” убрать галочку “Удалять файлы, присутствующие только в целевом каталоге”, тогда в папке “_backup/_snapshot” будут оставаться все удаляемые из исходной папки файлы.
Вложения
backup_source.xstk
Задача для архивирования новых или измененных файлов в отдельные файлы
(40.09 КБ) 1194 скачивания

isovs
Пассажир
Сообщения: 1
Зарегистрирован: Чт июл 18, 2013 1:06 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Система контроля версий своими руками

Сообщение isovs » Чт июл 18, 2013 1:20 pm

Добрый день, подскажите, как можно сделать так, чтобы при изменении файла в исходном каталоге (и/или в подпапках) устаревший файл в целевом каталоге менял имя (добавлялась дата и время: filename.* менялось на filename_18.07.2013_13:30.*) и затем измененный файл копировался в целевой каталог.
В итоге получим в целевом каталоге структуру папок такую-же как в исходном а файлы:
filename1.*
filename1_18.07.2013_13:30.*
filename1_18.07.2013_11:30.*
filename1_18.07.2013_10:30.*
filename1_18.07.2013_09:30.*
filename2.*
filename2_18.07.2013_13:30.*
filename2_18.07.2013_11:30.*
filename2_18.07.2013_10:30.*
filename2_18.07.2013_09:30.*

Чем-то похоже на версии в WinRar, но без архивации и с указанием даты копирования измененного файла.

Ответить