Клонирование репозитория от gitweb

Я хочу клонировать GIT-репозиторий, чей git:// сервер упал.

К счастью, его интерфейс gitweb все еще работает, и все данные, необходимые для восстановления репозитория git, доступны оттуда.

Итак, есть ли какая-нибудь команда git или другой инструмент, способный клонировать репозиторий git из gitweb?

(Я мог бы написать бота сам, но не хочу тратить свое время на это, если есть другой способ)

2 ответа

gitweb - это всего лишь Perl-скрипт (gitweb.perl ):

Если включено вgitweb.confgitweb может обслуживать "снимки" (в формате zip или tag.gz), но это не полная история хранилища: это только сжатый архив любого дерева или коммита, созданныйgit-archive,

http://<gitweburl>/gitweb.cgi?p=<repo>.git;a=snapshot;h=HEAD

Если есть какая-либо команда, ее необходимо выполнить на сервере.
Например, вы можете запросить комплект ( git bundle):

cd /path/to/bare/repo
git bundle create ../repo.bundle --all

Это создаст один файл, который вы сможете восстановить на своей локальной станции и который будет действовать как репозиторий git (только для чтения, только для клонирования / извлечения, без push):

cd /path/to/repo.bundle
git clone repo.bundle
cd repo

Вы можете попробовать получить репо, используя http:// вместо git://,

Например, репозиторий Linux git по адресу https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ может быть клонирован с использованием http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Попробуйте заменить git:// с http:// или же https:// и посмотрим, поможет ли это.

Реконструкция git-репозитория файл за файлом может быть возможной, но, учитывая, что репозиторий все еще существует, это не имеет особого смысла. Вы можете попробовать связаться с владельцами репо и проверить, не захотят ли они исправить доступ к репо.

Другие вопросы по тегам