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

gitolite

Date: 2022-02-28 01:50 pm (UTC)
vazhnov: (Default)
From: [personal profile] vazhnov

Посмотрите в сторону gitolite: https://github.com/sitaramc/gitolite/wiki

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 11:16 pm
Powered by Dreamwidth Studios