Могу ли я использовать git-svn и посмотреть, как я использовал SVN, если да, то как? - PullRequest
6 голосов
/ 09 марта 2011

Я привык к git и мне это очень нравится, но один из моих клиентов (все еще?) Использует subversion, сейчас я не совсем о svn, но я знаю, что есть пакет git-svn.

Я знаю, что можно получить репозиторий из SVN с помощью Git, но могу ли я использовать Git вместо SVN и по-прежнему фиксировать, и "подтолкнуть" на центральный сервер SVN?

Я хочу использовать Gitа не svn, если я могу, вы можете указать мне любой учебник, чтобы сделать это?

Спасибо

РЕДАКТИРОВАТЬ:

Мне на самом деле все равночтобы получить ВСЕ коммиты, достаточно будет только 10/20 предыдущего, так как приложение находится в рабочем состоянии, и это только для улучшений, поэтому я буду извлекать всю историю коммитов, только если это действительно необходимо.

Ответы [ 2 ]

5 голосов
/ 09 марта 2011

git-svn предоставляет мост от Git и SVN.Он будет вести себя как ванильный Git локально, но как только вы попытаетесь отодвинуть или вытащить ваши изменения на или от мастера, он станет совершенно другим.

Вместо того, чтобы делать push, вы будете использовать git commit для фиксациилокально и git svn dcommit для отправки ваших локальных коммитов в SVN.

git-svn документация объясняет, как извлечь из репозитория SVN.Обратите внимание, что это чрезвычайно медленный (по сравнению с обычным git), потому что он выбирает каждую ревизию из SVN.См. Примеры в нижней части документации.

Вот типичный способ, которым я его использовал:

  1. git svn clone http://svn.example.com/project -T trunk -b branches -t tags - URL-адрес вашего репозитория SVN, и вы указываете-T, -b и -t переключают, чтобы указать подпути в вашем каталоге SVN.Затем Git будет использовать эти каталоги SVN для поиска веток и тегов, а транк - как master.
  2. Внести некоторые изменения в код
  3. git add... для внесения изменений
  4. git commit... для фиксации ваших изменений локально.
  5. git svn dcommit для отправки локальных коммитов в SVN.Для каждого локального коммита Git будет делать эти отдельные коммиты на сервере SVN.
0 голосов
/ 09 марта 2011

Возможно, но я думаю, что лучше всего изменить приложение для контроля версий:)

, чтобы svn зафиксировал git (после того, как вы, конечно, git svn инициализировали его)

git svn fetch

Чтобы ваш git отправлял в svn

git commit git svn dcommit

...