eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2022-02-28 02:08 pm
Entry tags:

Устанавливаем локальный git-сервер

По сути, если стоит пакет dev-vcs/git, то и сервер у вас уже стоит, остается лишь добавить пользователя, изменить настройки и запустить. В вики все доступно расписано. А вот дальше — косячок: ведь для работы с репами у пользователя git шеллом должен быть /usr/bin/git-shell, а для любых прочих манипуляций (ключи SSH забросить, да просто даже новый репозиторий сделать), нужен баш. Поэтому если у вас нет доступа рута на удаленную машину с git-сервером, просто так вы там ничего не сделаете, придется просить, чтобы вам развернули жирного монстра gitlab.
У меня же доступ есть, поэтому все просто. От рута заходим в /home/git и рисуем там скриптик initrepo:
#!/bin/bash

DIR=${1}.git
mkdir $DIR
cd $DIR
git init --bare
chown -R git.git .
cd ..
echo "$DIR done!"

Теперь на локальной машине во всех репах, которые нужно экспортировать, делаем
git remote set-url --add --push origin ssh://git@server/home/git/user/reponame.git

а на удаленной рутом запускаем скриптик:
./initrepo reponame

Потом на локальной git push и, после всех push-url'ов последним будет наш, который отправит сведения на удаленный сервер в локалке.
Для массовой миграции можно собрать список директорий и скормить его скрипту на удаленном сервере, а у себя локально скриптом добавить везде новый push-url и сделать push.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org