2011-01-11 4 views
6

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

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

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

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

Спасибо!

+0

Это было бы очень полезно, но, увы, я не знаю такого. Как вы уже упоминали, только способы пойти в другом направлении. Интересно, что нужно было написать? –

ответ

-1

Благодарим за ответы, svick и Damien! Они оба хороши, но, поскольку я не могу принять их обоих, я собираюсь кое-что сказать в своем собственном ответе.


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

сделать официальным репо мерзавец один, и автоматически нажать на ведомый Svn репо с использованием ГИТА-SVN, либо с хронами или в посте-фиксации.

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


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

4

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

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

4

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

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