Мы планируем перенести один из наших последних больших хранилищ CVS в репозиторий Git.История папок старше x на cvs2git Миграция
Для миграции мы используем cvs2git svn2git. Поскольку этот репозиторий CVS вырос более чем через 12 лет, он имеет 31 ГБ данных.
Не удалось найти решение проблемы, касающейся истории, предшествующей заданному периоду времени (например, 2 года).
Вы знаете, любой инструмент/команда/разрешение для одного из этого ?: истории
- отброшенной из CVS
- Не экспортировать всю историю с cvs2git
- Не импортировать всю историю с Git импортом
- истории падения с Git
Спасибо и поздравления, Andreas
Решение по предложению Дмитрия Oksenchuk: После редактирования трансплантатов, я написал BASH сценарий Т.П. очистить перепутались теги и ветви:
#!/bin/bash
NEW_ROOT_REF=$1
git tag --contains $NEW_ROOT_REF | sort > TAGS_TO_KEEP.tmp
echo "Keep Tags:"
cat TAGS_TO_KEEP.tmp | wc -w
git branch --contains $NEW_ROOT_REF | sort > BRANCHES_TO_KEEP.tmp
echo "Keep Branches:"
cat BRANCHES_TO_KEEP.tmp | wc -w
git tag -l | sort > TAGS_ALL.tmp
echo "All Tags:"
cat TAGS_ALL.tmp | wc -w
git branch -l | sort > BRANCHES_ALL.tmp
echo "All Branchess:"
cat BRANCHES_ALL.tmp | wc -w
# Remove tags
COUNTER=0
for drop in `comm TAGS_ALL.tmp TAGS_TO_KEEP.tmp -23`; do
git tag -d $drop
COUNTER=$[$COUNTER +1]
done
echo "Dropped tags: $COUNTER"
# Remove branches
COUNTER=0
for drop in `comm BRANCHES_ALL.tmp BRANCHES_TO_KEEP.tmp -23`; do
git branch -D $drop
COUNTER=$[$COUNTER +1]
done
echo "Dropped branches: $COUNTER"
# Clean up
rm TAGS_ALL.tmp TAGS_TO_KEEP.tmp BRANCHES_ALL.tmp BRANCHES_TO_KEEP.tmp
Возможный дубликат [Как удалить старую историю из репозитория git?] (Http://stackoverflow.com/questions/4515580/how-do-remove-the-old-history-from-a -git-repository) – mik01aj
Вы также можете использовать неглубокий клон git. – mik01aj