Редактировать: добавлен скрипт Bash.
Ответы, данные здесь, работали только частично для меня; В кеше осталось много больших файлов. Что в итоге сработало (после нескольких часов работы в #git на freenode):
git clone --no-hardlinks file:///SOURCE /tmp/blubb
cd blubb
git filter-branch --subdirectory-filter ./PATH_TO_EXTRACT --prune-empty --tag-name-filter cat -- --all
git clone file:///tmp/blubb/ /tmp/blooh
cd /tmp/blooh
git reflog expire --expire=now --all
git repack -ad
git gc --prune=now
В предыдущих решениях размер хранилища составлял около 100 МБ. Этот уменьшил его до 1,7 МБ. Может быть, это кому-нибудь поможет:)
Следующий скрипт bash автоматизирует задачу:
!/bin/bash
if (( $# < 3 ))
then
echo "Usage: [111] </path/to/repo/> <directory/to/extract/> <newName>"
echo
echo "Example: [111] /Projects/42.git first/answer/ firstAnswer"
exit 1
fi
clone=/tmp/${3}Clone
newN=/tmp/${3}
git clone --no-hardlinks file://$1 ${clone}
cd ${clone}
git filter-branch --subdirectory-filter $2 --prune-empty --tag-name-filter cat -- --all
git clone file://${clone} ${newN}
cd ${newN}
git reflog expire --expire=now --all
git repack -ad
git gc --prune=now
Мы используем Tomcat в качестве наших внутренних серверов, но проектируем наши приложения так, чтобы использовать как можно меньше информации о сеансах (в основном, только логины). Затем мы предлагаем Tomcats балансировщик нагрузки, такой как Apache или Nginx (последний, который я предпочитаю в последнее время), и используем липкие сессии. Если сервер переходит в автономный режим (что маловероятно), то пользователю просто нужно снова войти в систему, что в зависимости от того, как вы его настроите, может быть прозрачным для них.
Когда я хотел сделать больше кластеризации на основе сеансов, Terracotta выглядела очень впечатляет. Но дизайн без сохранения состояния значительно упрощает масштабирование.
который, в зависимости от того, как вы его настроите, может быть прозрачным для них.Когда я хотел сделать больше кластеризации на основе сеансов, Terracotta выглядела очень впечатляюще. Но дизайн без сохранения состояния значительно упрощает масштабирование.
который, в зависимости от того, как вы его настроите, может быть прозрачным для них.Когда я хотел сделать больше кластеризации на основе сеансов, Terracotta выглядела очень впечатляюще. Но дизайн без сохранения состояния значительно упрощает масштабирование.
Другой альтернативой может быть memcached-session-manager, решение для отработки отказа сеанса для tomcat: http://code.google.com/p / memcached-session-manager /
Я создал этот проект, чтобы получить максимальную производительность и надежность, а также иметь возможность масштабирования путем простого добавления дополнительных узлов tomcat и memcached.
Ура, Мартин