Лучшие практики для следующих стволов хранилища Subversion: Git (Mirror), Git-Svn, Subversion? - PullRequest
3 голосов
/ 30 октября 2008

Я хочу оформить заказ, а затем при необходимости обновить магистраль Django Subversion на компьютере Mac OS X Leopard 10.5.5.

Меня интересует только обновление кода Django на моем Mac. Я не заинтересован в внесении исправлений в проект Django. Мне не нужна история Subversion для ствола Django.

Я планирую использовать Git в качестве DVCS / SCM для всех моих личных проектов.


Как лучше обновлять мой Mac до последней версии багажника Django и почему?

Я новичок в Git, поэтому понимание того, почему вы выбрали свой вариант, будет очень полезно.

  1. Использование Subversion 1.4.4, установленного на моем Mac: svn co http://code.djangoproject.com/svn/django/trunk/. По сути, использование Subversion для получения репозиториев Subversion и Git для моих личных проектов.

  2. Используйте Git SVN для получения репо Django Subversion . Инструкция как это сделать для новичка Git?

  3. Используйте Git для получения Git-зеркала репозитория Django . Я немного обеспокоен тем, что зеркало может исчезнуть в будущем, но я готов использовать его, если это лучший вариант.

Ответы [ 4 ]

11 голосов
/ 30 октября 2008

Если вы не собираетесь вносить изменения в код Django, то нет причин импортировать его в Git. Просто используйте вариант 1.

Использование git-svn (либо путем его запуска самостоятельно, либо путем клонирования чьего-либо репозитория) полезно, если вы хотите внести локальные изменения в проект, который использует Subversion (независимо от того, отправляете ли вы какие-либо из этих изменений обратно в проект) , Но если вы не делаете никаких локальных модификаций, то это просто ненужная сложность.

2 голосов
/ 30 октября 2008

Что ж, если вы используете git для всех своих проектов и вы достаточно хорошо с ним знакомы, я бы предложил использовать зеркало git, так как оно выглядит достаточно актуально. Git также должен быть быстрее, чем при использовании Subversion. Если зеркало исчезает / устареет, вы всегда можете просто svn co / svn up , чтобы получить текущий источник.

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

Git-svn немного более утомителен в настройке и синхронизации. Вы должны сначала получить обновления Subversion, используя git svn fetch , а затем выполнить git svn rebase для применить изменения к хранилищу git. Это также будет занимать больше дискового пространства. Это несколько более подвержено ошибкам, и я бы порекомендовал использовать git-svn только в том случае, если вы действительно хотите заниматься разработкой в ​​дереве исходного кода. Если вы чувствуете себя предприимчивым и хотите попробовать, взгляните на этот урок - я нашел весьма полезным начать работу с git-svn.

1 голос
/ 21 февраля 2012

Лучше поздно, чем никогда .. может быть .. Я должен не согласиться с текущим победным ответом. Я бы пошел с

  1. Используйте Git, чтобы получить зеркало Git репозитория Django

Об аргументе против это: кто-то, кто (или хочет, чтобы) чувствовал себя комфортно с Git, не должен находить это "просто ненужной сложностью". Примечание: аргумент может быть действительным для случая git-svn, для некоторых людей (не для меня).

Некоторые причины для это:

  • скорость

  • мощные запросы (журнал) и визуализация (gitk & даже любитель) кузены)

  • меньше дискового пространства в большинстве случаев

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

  • согласованность - если все остальные проекты находятся в git

  • даже если вы еще не планируете вносить свой вклад, вы можете поэкспериментировать с локальными изменениями

  • если вы передумаете - вы все равно можете быть на шаг ближе к вкладу

Даже если это зеркало исчезнет, ​​вы все равно можете переключиться на другое зеркало, не нужно снова клонировать.

Кстати, текущее зеркало на https://github.com/django/django,, и оно считается официальным.

0 голосов
/ 30 октября 2008

Я согласен с @cjm. Если вы просто хотите получить копию исходных текстов Django, используйте простой Subversion.

Мой опыт работы с git-svn заключается в том, что он наиболее полезен для людей, которые предпочитают и более знакомы с Git, которым необходимо отслеживать хранилище Subversion, и не очень полезен для людей, которые знают Subversion, но хотят новичков в git. что-то лучше, чем Subversion. У git-svn есть несколько ограничений, вытекающих из того факта, что Subversion имеет низкое отслеживание слияний, и если вы не обладаете каким-либо существенным опытом работы с git, эти ограничения будут время от времени подпрыгивать и кусать вас.

...