git

Как известно, любой хорошей программе можно найти множество применений, для которых она не предназначена.

После вынужденного изучения git (в связи с введением gear в ALT ), разумеется я не мог не приспособить такое чудесное приложение ко многим другим задачам.

Несмотря на все преимущества git при работе с множеством бранчей, а также распределенной работе, его вполне можно использовать как “RCS на стероидах”. Ага, забивание гвоздей микроскопом. А почему бы и нет, если микроскоп попался для этой цели куда более удобный чем молоток?

Идея такая. Создаю каталог ~/git, в котором двухуровневая система каталогов (для группировки и более удобной навигации). В каждом из них создаю git-репозиторий. После чего можно пользоваться каждым из этих каталогов так, будто никакого git там отродясь не было.

После этого пишется простой скрипт:
git add
git commit -a -m “‘date’”
git repack -d

Обращаю внимание что для repack опция -a не используется, с целью экономии времени.

Что у нас получается? Группа каталогов с информацией, для которой хранится история. Подразумевается что речь идет никоим образом не о той информации, где важна история с комментариями (такие репозитории можно тоже держать внутри этой иерархии, но ни в коем случае не запускать для них вышеприведенный скрипт).

Далее пишется второй чудесный скрипт:

OUTDIR=~/nobackup/‘date-I’
mkdir -p $OUTDIR
nice find ~/git -print0 \
| grep -z ‘\.git’ \
| nice cpio -o0 \
> $OUTDIR/disk1/git.cpio

Обращаю внимание что здесь не используется сжатие (так как git-репозиторий и так хранит данные в сжатом виде, и экономия от сжатия подобного архива малозаметна).

Далее запуск второго скрипта добавляется в crontab.

У меня эта технология используется для хранения:
 — архива заметок;
 — документов “для прочтения/переработки”;
 — заготовок проектов (то, что ещё не доведено даже до уровня альфы, а может и никогда не будет доведено);
 — TODO;
 — PIM;

Запись опубликована в рубрике Новости с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Оставьте эти два поля как есть:

Защищено Invisible Defender. Показывать 403 для 308 111 плохих парней.