svn-checkout из репозитория GIT

Есть ли способ сделать svn-checkout из репозитория git?

Проблема в том, что я хотел бы иметь репозиторий git, хранящийся на сервере, и я могу нормально работать с git, отправляя и извлекая изменения.

Однако есть разработчики, которым не нужно вносить изменения в код, но им нужна возможность получить последний снимок исходного кода и собрать его на своей машине. Эти так называемые «разработчики» действительно хотели бы использовать SVN как SCM, с которым они уже знакомы.

Итак, есть ли способ настроить такой сценарий? Или это единственный возможный способ — использовать репозиторий SVN и работать с ним с помощью git-svn, если я хочу использовать git для себя и SVN для остальных моих коллег?

Спасибо!


person Alexei Sholik    schedule 11.01.2011    source источник
comment
Это было бы очень полезно, но, увы, я ничего подобного не знаю. Только способы пойти в другом направлении, как вы упомянули. Интересно, что нужно, чтобы написать один.   -  person    schedule 11.01.2011


Ответы (3)


Если вы хотите проверить репозиторий с помощью SVN, у вас должен быть репозиторий SVN, что неудивительно. Без этого было бы трудно отслеживать вещи, которые плохо переводятся между SVN и git (например, номер версии, ветки).

Но то, что вы просите, не очень похоже на репозиторий, вам просто нужно синхронизировать папку. Для этого, вероятно, лучше подходят другие инструменты, кроме SVN, например. rsync. Другая возможность — иметь всегда актуальный архив, содержащий исходный код (например, это предоставляет Github).

person svick    schedule 11.01.2011

Использование репозитория SVN через git-svn для вас будет работать, но если есть другие люди, которым нравится git, вы потеряете преимущества сотрудничества с git. Это то, что я использую на работе, где SVN является стандартом де-факто, и я просто предпочитаю команды git и лучшее отображение журнала. В любом случае мы в основном используем SVN в качестве инструмента архивирования: никаких веток, и мы синхронизируемся в реальной жизни для совместной работы над одним документом.

Другим решением было бы сделать официальный репозиторий git и автоматически нажать на подчиненный репозиторий svn, используя git-svn, либо с помощью cron, либо в ловушке после фиксации. Это кажется лучшим, если, как вы говорите, пользователям svn никогда не нужно будет фиксировать.

person Damien Pollet    schedule 11.01.2011

Спасибо за ваши ответы, svick и Дэмиен! Они оба хороши, но, поскольку я не могу принять их обоих, я собираюсь рассказать обо всем этом в своем собственном ответе.


Таким образом, в принципе, можно было бы иметь репозиторий git с только для чтения svn-доступом к нему. Как сказал Дэмиен,

сделайте официальное репозиторий git и автоматически переместите его в подчиненное репозиторий svn с помощью git-svn либо с помощью cron, либо в хуке post-commit.

Еще один способ получить доступ только для чтения к коду в любом репозитории — это иметь архив с последним моментальным снимком исходного кода, хранящийся где-то на вашем сервере и доступный для загрузки.


Если некоторым пользователям необходимо внести изменения в код, единственный подходящий способ сохранить их — это зафиксировать их обратно в репо, независимо от того, какой SCM используется. В этом случае, если пользователь, внесший изменение, не знает, как его зафиксировать, должен быть программист (ответственный за исходный код), который с радостью просмотрит изменение и зафиксирует его обратно в репо.

person Community    schedule 14.01.2011