Ограничьте доступ пользователей к определенному репозиторию ветки git и репозиторию истории, сохраняя при этом возможности слияния.

  • Вот мой контекст:

    1. I have a software with 20 vesion, each version represents( is the same) a branch in my git repo.
    2. У меня есть две команды, одна локальная и одна удаленная.
  • Вот мои ограничения:

    1. Local team have full access to the repo.
    2. У удаленной команды есть ограниченный доступ к 15-й версии (15-я ветвь)
    3. Команда Remoe не может иметь доступ к истории до 15-й ветки
    4. У удаленной команды нет доступа к работе с локальной темой
    5. удаленная команда имеет доступ только к своей работе
  • Вот предпосылка:

    1. Would be awesome if the local team could be able to merge from remote team code, with minimum conflicts pain.
  • Что я пробовал?

    1. 1-й я создал форк из репо, и я гарантировал, что мастер будет только до 15-й версии. Некоторый мастер и 15-я ветвь являются некоторой версией кода. Проблема в этом решении: удаленная команда по-прежнему имеет доступ ко всему репо, истории и коду.

    2. 2. Создайте новое репо, начиная с 15-й ветки. Проблема в этом случае будет заключаться в том, когда локальная команда выполняет слияние удаленной команды с локальной командой кодов.

До сих пор я бы придерживался второго варианта, даже если у меня есть проблемы со слиянием.

Итак, у кого-нибудь есть лучшее решение или более элегантное?

На самом деле надежда заставила меня объясниться.

=====================================

Я выполнил эти команды:

git clone --mirror --depth 1 --branch release/v15 https://[email protected]/old_repo.git

cd old_repo

git push --mirror https://[email protected]/new_repo.git

Чем я получил это сообщение:

C:\old_repo>git push --mirror https://[email protected]/new_repo.git
Password for 'https://[email protected]':
Counting objects: 131, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (95/95), done.
Writing objects: 100% (131/131), 9.72 MiB | 238.00 KiB/s, done.
Total 131 (delta 28), reused 131 (delta 28)
To https://[email protected]/new_repo.git
 ! [remote rejected] release/v15 -> release/v15 (shallow update not allowed)
error: failed to push some refs to 'https://[email protected]/new_repo.git'

Что мне делать?

мелкое обновление не разрешено


person Angelo Carlotto    schedule 03.05.2016    source источник


Ответы (1)


Сделайте неглубокий клон, чтобы у вас осталось только до 15-й версии. Затем отправьте его в новый голый репозиторий. Разрешить удаленной команде доступ только к этому новому репозиторию. Локальная команда должна иметь возможность использовать это как второй удаленный и объединять удаленный с локальным.

person Michael Barker    schedule 03.05.2016