Подтвердить что ты не робот

Клонирование хранилища от gitweb

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

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

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

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

4b9b3361

Ответ 1

gitweb - это просто perl script (gitweb.perl):

Если включено в gitweb.conf, gitweb может обслуживать "моментальные снимки" (в формате zip или tag.gz), но это isn ' t полная история репозитория: это только сжатый архив любого дерева или commit, созданный 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 (только для чтения, только для клонирования/выталкивания, без нажатия):

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

Ответ 2

Вы можете попробовать выборку репо с помощью http:// вместо git://.

Например, Linux git repo at 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 может быть возможна, но, учитывая, что репозиторий все еще существует, это не имеет большого смысла. Вы можете попытаться связаться с владельцами репо и проверить, готовы ли они либо установить репо-доступ.