2010-02-21 5 views
2

Я собираюсь переместить кучу моей работы из личного репозитория SVN в git repo. У меня была настройка задания cron, которая запускает svnadmin dump каждую ночь во всех моих репозиториях в удаленной папке. Есть ли аналогичная функциональность в git?svnadmin dump in git

Кроме того, я не полностью понимаю git, поэтому эта логика, скорее всего, неверна, но я сохранил все мои svn-репозитории под одним каталогом (/ home/svn /), git создает аналогичный каталог, который я могу просто скопировать в удаленное место? Или он сохраняет только моментальные снимки в каталоге .git?

ответ

4

Вы можете использовать только git clone. Обратите внимание, что git не имеет эквивалента svnadmin, так как каждый git «рабочая копия» (для использования SVN-терминов) представляет собой полный репозиторий.

0

Нет способа (встроенного в git) копировать/зеркально отображать несколько репозиториев на удаленный компьютер. Либо ваше новое задание cron должно будет клонировать/нажимать каждый репозиторий по отдельности, вы можете использовать другой способ синхронизации всех репозиториев. Репозитории - это просто обычные файлы, поэтому, если вы сохраните их все в /srv/svn или аналогичных, вы можете просто rsync этот каталог другому компьютеру.

Возможно, возникли проблемы с использованием rsync, в то время как хранилища обновляются, но если это для личного использования, вы, вероятно, в значительной степени можете гарантировать, что хранилища «простаивают» в ночное время или около того.

1
#!/bin/bash 
# tar.bz2 to the stdout the git repo from the current dir. 
TMP=`mktemp -d` 
trap "rm -rf $TMP" EXIT 
git clone --template=. --mirror . "$TMP" && tar -cjC "$TMP" . 

ps: Не каждый git «рабочая копия» - это полный репозиторий. Большинство из них, однако, тот, который создан на примере ниже, не является.

git clone --depth 4 . `mktemp -d` 
Смежные вопросы