В настоящее время у меня есть несколько репозиториев SVN, и это выглядит так:
Customer1 (this is a proper "SVN Repository")
project1
foo82
trunk
tags
branches
bar01
trunk
tags
branches
project2
...
project3 ...
...
Customer2 (this is a proper "SVN Repository")
tool1
windows-version
trunk
tags
branches
mac-version
trunk
tags
branches
server-component
trunk
tags
branches
ios-app
trunk
tags
branches
tool2
(same subfolders as tool1)
tool3
(same subfolders as tool1 with slight modifications)
Customer3
(similarily complicated folder structure)
... (about 5 more customers) ...
Я хотел бы как-нибудь перевести все это на мерзавец. Итак, у меня, вероятно, будет несколько репозиториев:
foo82
bar01
tool1-windows-version
tool1-mac-version
tool1-server-component
tool1-ios-app
tool2-windows-version
tool2-mac-version
tool2-server-component
tool2-ios-app
... (150 more projects) ...
проблема в том, что все они находятся на одном уровне иерархии. Я хотел бы поместить репозитории git в некоторую иерархию, например
Customer1 (this is not a repository, just a folder!)
project1 (this is not a repository, just a folder!)
foo82.git (this is a git repository)
bar01.git
project2 (this is not a repository, just a folder!)
... (here lie a bunch of git repositories)
Customer2 (this is also not a git repository, just a folder!)
Существует ли инструмент, позволяющий мне управлять сотнями репозиториев git и делить репозитории на вложенные группы? Я не вижу, как этого добиться, например, с помощью GitHub. Я хотел бы иметь возможность определять политики доступа для групп (а не только отдельные репозитории). Например, я хотел бы сказать, что User1, User2 и User3 могут читать / записывать в Customer1, а User4-User6 может читать / записывать в Customer2, а User1-User6 может читать все репозитории, а User7-8 может читать / записывать все репозитории. User9 является администратором для всего под Customer2, а User10 является суперпользователем.
Мне все равно, как хранилища на самом деле хранятся в файловой системе серверов. Я счастлив, если у меня просто есть интерфейс, который притворяется, что они аккуратно организованы в группы, и где я могу устанавливать политики доступа для целых "папок". Если фактические URL-адреса репозитория git также отражают видимую структуру проекта, было бы неплохо.
Или любые советы о том, как быть администратором для 100+ git-репозиториев, не сходя с ума, будут приветствоваться.