eddy_em: (Default)
По сути, если стоит пакет 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.

September 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 8th, 2025 11:31 am
Powered by Dreamwidth Studios