Почему Git лучше, чем Subversion?

Мне пришлось добавить его в viewDidAppear: чтобы он работал

    - (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.pageAnimationFinished = YES;
}
393
задан 7 revs, 5 users 65% 23 July 2010 в 10:24
поделиться

26 ответов

Мерзавец не лучше, чем Подрывная деятельность. Но также не хуже. Это отличается.

основное отличие - то, что это децентрализовано. Предположите, что Вы - разработчик на дороге, Вы разрабатываете на своем ноутбуке, и Вы хотите иметь управление исходным кодом так, чтобы можно было возвратиться 3 часа.

С Подрывной деятельностью, у Вас есть проблема: репозиторий SVN может быть в месте, которого Вы не можете добраться (в Вашей компании, и у Вас нет Интернета в данный момент), Вы не можете фиксировать. Если Вы хотите сделать копию своего кода, Вы имеете к буквально скопировать/вставить ему.

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

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

Мерзавец, кажется, "новая, солнечная, прохладная" вещь. Это ни в коем случае не плохо (существует причина, которую Linus записал ему для разработки Ядра Linux, в конце концов), но я чувствую, что многие люди вскакивают на "Распределенное Управление исходным кодом" поезд просто, потому что это является новым и записано Linus Torvalds, на самом деле не зная, почему/если это лучше.

Подрывная деятельность имеет проблемы, но также - Мерзавец, Подвижный, CVS, TFS или что бы то ни было.

Редактирование: , Таким образом, этот ответ является теперь годом и все еще генерирует много upvotes, таким образом, я думал, что добавлю еще некоторые объяснения. В прошлом году начиная с записи этого, Мерзавец развил большую скорость и поддержку, особенно так как сайты как GitHub действительно взлетели. Я использую и Мерзавца и Подрывную деятельность в наше время, и я хотел бы совместно использовать некоторое персональное понимание.

, В первую очередь, Мерзавец может действительно сбивать с толку сначала когда децентрализованная работа. Что такое удаленное? и Как правильно открыть начальный репозиторий? два вопроса, которые подходят вначале, особенно по сравнению с SVN's, простым "svnadmin, создают", "мерзавец Мерзавца init" может взять параметры - пустой, и - совместно использовал, который, кажется, "надлежащий" способ настроить централизованный репозиторий. Существуют причины этого, но это добавляет сложность. Документация команды "контроля" очень сбивает с толку людей, переключающихся - "надлежащий" путь, кажется, "клон мерзавца", в то время как "контроль мерзавца", кажется, переключает ответвления.

Мерзавец ДЕЙСТВИТЕЛЬНО блистает, когда Вы децентрализованы. У меня есть сервер дома и Ноутбук на дороге, и SVN просто не работает хорошо здесь. С SVN у меня не может быть локального управления исходным кодом, если я не подключен к репозиторию (Да, я знаю о SVK или о способах скопировать repo). С Мерзавцем это - режим по умолчанию так или иначе. Это - дополнительная команда хотя (фиксация мерзавца фиксирует локально, тогда как ведущее устройство источника нажатия мерзавца продвигает основное ответвление к удаленному, названному "источником").

, Как сказано выше: Мерзавец добавляет сложность. Два режима создания репозиториев, контроля по сравнению с клоном, фиксируют по сравнению с нажатием... Необходимо знать, какие команды работают локально и которые работают с "сервером" (я принимаю большинство людей все еще как центральный "главный репозиторий").

кроме того, инструменты все еще недостаточны, по крайней мере, в Windows. Да, существует Visual Studio AddIn, но я все еще использую удар мерзавца с msysgit.

SVN имеет преимущество, которое НАМНОГО более просто изучить: существует Ваш репозиторий, все изменения в к нему, если Вы знаете, как создать, фиксировать и контроль, и Вы готовы пойти, и может материал погрузки как ветвление, обновление и т.д. позже.

у Мерзавца есть преимущество, что оно НАМНОГО лучше подходит, если некоторые разработчики не всегда подключаются к главному репозиторию. Кроме того, это намного быстрее, чем SVN. И от то, что я слышу, переходя и объединяя поддержку, намного лучше (который должен ожидаться, поскольку это причины ядра, что она была записана).

Это также объясняет, почему это получает так много шума в Интернете, как Мерзавец отлично подходит для проектов С открытым исходным кодом: Просто Разветвите его, передайте свои изменения в Вашем собственном Ветвлении, и затем попросите, чтобы исходный специалист по обслуживанию проекта вытянул Ваши изменения. С Мерзавцем это просто работает. Действительно, попробуйте его на GitHub, это волшебно.

, Что я также вижу, Мерзавец-SVN Bridges: центральным репозиторием является Подрывная деятельность repo, но разработчики локально работают с Мерзавцем, и мост тогда продвигает их изменения в SVN.

, Но даже с этим долгим дополнением, я все еще поддерживаю свое базовое сообщение: Мерзавец не лучше или хуже, это просто отличается. Если у Вас есть потребность в "Офлайновом Управлении исходным кодом" и готовности провести некоторое дополнительное время, изучая его, это фантастически. Но если Вы имеете строго централизованное Управление исходным кодом и/или изо всех сил пытаетесь представить Управление исходным кодом во-первых, потому что Вашим коллегам не интересно, тогда простота и превосходные инструменты (по крайней мере, в Windows) сияния SVN.

548
ответ дан 2 revs 23 July 2010 в 10:24
поделиться

Благодаря факту это не должно постоянно связываться с центральным сервером, в значительной степени каждая команда выполнения в меньше, чем секунда (очевидно, нажатие/получение по запросу/выборка мерзавца медленнее просто, потому что они имеют к initalise соединениям SSH). Ветвление далеко намного легче (одна простая команда перейти, одна простая команда для слияния)

3
ответ дан dbr 23 July 2010 в 10:24
поделиться

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

6
ответ дан Pat Notz 23 July 2010 в 10:24
поделиться

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

Мое собственное обоснование также заставляет меня думать, что DVCS делает вещи тяжелее для QA и управления версиями, если Вы делаете вещи как централизованные выпуски. Кто-то должен быть ответственен за то, что сделал то нажатие/получение по запросу от всех репозиторий else, разрешив любые конфликты, которые были бы разрешены в начальное время фиксации прежде, затем делание сборки, и затем имея всех других разработчиков повторно синхронизирует их repos.

Все это может быть обращено с человеческими процессами, конечно; DVCS просто повредил что-то, что было зафиксировано централизованным управлением версиями для обеспечения некоторых новых удобств.

5
ответ дан jaredg 23 July 2010 в 10:24
поделиться

Это - все о простоте использования/шагов, требуемого сделать что-то.

, Если я разрабатываю единственный проект на своем ПК/ноутбуке, мерзавец лучше, потому что намного легче настроить и использовать. Вам не нужен сервер, и Вы не должны удерживать URL репозитория ввода, когда Вы делаете слияния.

, Если бы это были всего 2 человека, я сказал бы, что мерзавец также легче, потому что можно просто продвинуть и вытянуть друг от друга.

, Как только Вы добираетесь кроме того, хотя, я пошел бы для подрывной деятельности, потому что в той точке необходимо настроить 'выделенный' сервер или местоположение.

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

SVN также обладает преимуществом лучших инструментов GUI, однако экосистема мерзавца, кажется, нагоняет быстро, таким образом, я не волновался бы об этом в долгосрочной перспективе.

6
ответ дан Orion Edwards 23 July 2010 в 10:24
поделиться

Мерзавец также делает ветвление и слияние действительно легкими. Подрывная деятельность 1,5 просто добавленного отслеживания слияния, но Мерзавец еще лучше. С Мерзавцем, переходящим, является очень быстрым и дешевым. Это делает создание ответвления для каждой новой возможности более выполнимым. О, и репозитории Мерзавца очень эффективны с пространством памяти по сравнению с Подрывной деятельностью.

7
ответ дан 2 revs, 2 users 50% 23 July 2010 в 10:24
поделиться

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

, Конечно, SubVersion имеет Черепаху, которая [обычно] очень хороша.

8
ответ дан swilliams 23 July 2010 в 10:24
поделиться

Основные моменты мне нравится приблизительно DVCS, являются теми:

  1. можно фиксировать поврежденные вещи. Это не имеет значения, потому что другие народы не будут видеть их, пока Вы не опубликуете. Опубликуйте время, отличается из времени фиксации.
  2. из-за этого можно фиксировать чаще.
  3. можно объединить полную функциональность. Эта функциональность будет иметь свое собственное ответвление. Все фиксации этого ответвления будут связаны с этой функциональностью. Можно сделать это с CVCS однако с DVCS, это - значение по умолчанию.
  4. можно искать история (найдите, когда функция изменилась)
  5. , можно отменить получение по запросу, если кто-то завинчивает основной репозиторий, Вы не должны фиксировать ошибки. Просто очистите слияние.
  6. при необходимости в управлении исходным кодом в любом каталоге сделайте: мерзавец init. и можно фиксировать, отменяя изменения, и т.д.
  7. Это быстро (даже в Windows)

, главной причиной для относительно большого проекта является улучшенная связь, созданная точкой 3. Другие являются хорошими премиями.

22
ответ дан 3 revs, 2 users 83% 23 July 2010 в 10:24
поделиться
  • 1
    Обратите внимание, что я всегда использовал бы полный путь для пути к ключу. – Alexis Wilke 22 December 2012 в 06:27

Ну, это распределяется. Сравнительные тесты указывают, что это значительно быстрее (учитывая ее распределенный характер, операции как diffs и журналы все локальны поэтому, конечно, это ослепительно быстрее в этом случае), и рабочие папки меньше (который все еще уносит мой ум).

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

С распределенным управлением версиями, у Вас нет снимка, а скорее всей кодовой базы. Хотите сделать разность с 3-месячной версией? Без проблем, 3-месячная версия находится все еще на Вашем компьютере. Это не только означает, что вещами является путь быстрее, но если Вы разъединяетесь от своего центрального сервера, можно все еще сделать многие операции, к которым Вы привыкли. Другими словами, у Вас только есть снимок данного пересмотра, но вся кодовая база.

Вы думали бы, что Мерзавец поднимет набор пространства на Вашем жестком диске, но от пары сравнительных тестов я видел, это на самом деле берет меньше. Не спрашивайте меня как. Я имею в виду, это было создано Linus, он знает вещь или два о файловых системах, которые я предполагаю.

26
ответ дан 2 revs, 2 users 92% 23 July 2010 в 10:24
поделиться

С Мерзавцем можно сделать практически что-либо офлайн, потому что у всех есть их собственный репозиторий.

ответвления Создания и слияние между ответвлениями действительно легко.

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

Это тривиально, чтобы разветвить проект, изменить его, и все еще продолжать объединяться в bugfixes от ГЛАВНОГО ответвления.

Мерзавец работает на разработчиков ядра Linux. Это означает, что это действительно быстро (это должно быть), и масштабируется тысячам участников. Мерзавец также использует меньше пространства (до 30 раз меньше пространства для репозитория Mozilla).

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

Наконец, существует GitHub, большой сайт для хостинга Ваших репозиториев Мерзавца.

Недостатки Мерзавца:

  • намного более трудно учиться, потому что у Мерзавца есть больше понятий и больше команд.
  • изменения не имеют номеров версий как в подрывной деятельности
  • , много команд Мерзавца являются загадочными, и сообщения об ошибках очень недружелюбны пользователем
  • , она испытывает недостаток в хорошем GUI (таком как великое TortoiseSVN)
145
ответ дан 2 revs, 2 users 76% 23 July 2010 в 10:24
поделиться
  • 1
    Ваши закрытые ключи не делают , входят в ~/.ssh/config. – ephemient 10 October 2008 в 20:12

Технический Разговор о Google: Linus Torvalds на мерзавце

http://www.youtube.com/watch?v=4XpnKHJAok8

страница

сравнения Wiki Мерзавца http://git.or.cz/gitwiki/GitSvnComparsion

54
ответ дан ESV 23 July 2010 в 10:24
поделиться

Другие ответы сделали хорошее задание объяснения базовых функций Мерзавца (которые являются большими). Но существуют также так многие мало способы, которыми Мерзавец ведет себя лучше и помогает сохранить мою жизнь более нормальной. Вот некоторые небольшие вещи:

  1. у Мерзавца есть 'чистая' команда. SVN отчаянно нужна эта команда, рассматривая, как часто это будет выводить дополнительные файлы на Вашем диске.
  2. у Мерзавца есть 'разделить пополам' команда. Это хорошо.
  3. SVN создает .svn каталоги в каждой папке (Мерзавец только создает один .git каталог). Каждый сценарий, который Вы пишете, и каждый grep, который Вы делаете, должен будет быть записан для игнорирования этих .svn каталогов. Вам также нужна вся команда ("svn экспорт") только для получения нормальной копии файлов.
  4. В SVN, каждый файл & папка может прибыть из различного пересмотра или ответвления. Сначала, звучит хорошим иметь эту свободу. Но то, что это на самом деле означает, - то, что существует миллион различных путей к Вашему локальному контролю, который будет полностью завинчен. (например, если "svn переключатель" перестал работать на полпути через, или если Вы вводите команду неправильно). И худшая часть: если Вы когда-либо входите в ситуацию, куда некоторые Ваши файлы прибывают из одного места, и некоторые из них от другого, "svn состояние" скажут Вам, что все нормально. Необходимо будет сделать "svn информацию" о каждом файле/каталоге, чтобы обнаружить, как странные вещи. Если "состояние мерзавца" говорит Вам, что вещи нормальны, то можно положить, что вещи действительно нормальны.
  5. необходимо сказать SVN каждый раз, когда Вы перемещаете или удаляете что-то. Мерзавец просто поймет его.
  6. Игнорируют семантику, легче в Мерзавце. При игнорировании шаблона (такого как *.pyc), он будет проигнорирован для весь подкаталоги. (Но если Вы действительно хотите проигнорировать что-то всего для одного каталога, Вы можете). С SVN кажется, что нет никакого простого способа проигнорировать шаблон через все подкаталоги.
  7. Другое вовлечение объекта игнорируют файлы. Мерзавец позволяет иметь "частный", игнорируют настройки (использующий файл .git/info/exclude), который не будет влиять ни на кого больше.
110
ответ дан 2 revs 23 July 2010 в 10:24
поделиться

Подрывная деятельность является все еще намного более используемой системой управления версиями, что означает, что она имеет лучшую поддержку инструмента. Вы найдете зрелые плагины SVN для почти любого IDE, и существуют хорошие доступные расширения проводника (как TurtoiseSVN). Кроме этого, я должен буду согласиться с Michael: Мерзавец не лучше или хуже, чем Подрывная деятельность, это отличается.

9
ответ дан 2 revs 23 July 2010 в 10:24
поделиться

Забавная вещь: Я размещаю проекты в Подрывной деятельности Repos, но получаю доступ к ним через команду Git Clone.

читайте , Разрабатывают с Мерзавцем на Google Code Project

, Хотя Google Code исходно говорит Подрывную деятельность, можно легко использовать Мерзавца во время разработки. Поиск "мерзавца svn" предполагает, что эта практика широко распространена, и мы также поощряем Вас экспериментировать с ним.

Используя Мерзавца на репозитории SVN приносит мне пользу:

  1. я могу работать , распределил на нескольких машинах, фиксируя и вытягивая от, и до них
  2. я имею центральный backup/public репозиторий SVN для других для проверки
  3. , И они свободны использовать Мерзавца для своего собственного
15
ответ дан Andre Bossard 23 July 2010 в 10:24
поделиться

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

, Например, говорят, что Вы доверяете 5 разработчикам и только вытягиваете коды из их репозитория. У каждого из тех разработчиков есть их собственная доверительная сеть от того, где они вытягивают коды. Таким образом разработка основана на той доверительной матрице разработчиков, где ответственность за код является общей для сообщество разработчиков.

, Конечно, существуют другие преимущества, которые упоминаются в других ответах здесь.

5
ответ дан 2 revs, 2 users 80% 23 July 2010 в 10:24
поделиться

" , Почему Мерзавец Лучше, чем X " основы различные за и против Мерзавца по сравнению с другим SCMs.

Кратко:

  • дорожки Мерзавца содержание, а не файлы
  • Ответвления легки , и слияние легко , и я имею в виду действительно легкий .
  • Это распределяется, в основном каждый репозиторий является ответвлением. Намного легче разработать одновременно и совместно, чем с Подверсией, по-моему. Это также делает в режиме офлайн разработка возможный.
  • Это не налагает рабочего процесса , как замечено на вышеупомянутый связанный веб-сайт , существует много рабочих процессов, возможных с Мерзавцем. Рабочему процессу стиля Подверсии легко подражают.
  • репозитории Мерзавца очень меньшего размера в размере файла , чем репозитории Подверсии. Существует только один ".git" каталог, в противоположность десяткам ".svn" репозиториев (отметьте Подверсию 1.7 и выше теперь использование единственный каталог как Мерзавец.)
  • подготовка область является потрясающей, она позволяет Вам видеть изменения, Вы будете фиксировать, фиксировать частичные изменения и делать различный другой материал.
  • Прячущий неоценим, когда Вы делаете "хаотическую" разработку или просто хотите исправить ошибку, в то время как Вы все еще работаете над чем-то еще (на другом ответвлении).
  • Вы можете переписывать историю , который является большим для подготовки наборов патча и фиксации Ваших ошибок ( прежде , Вы публикуете фиксации)
  • †¦ и партия [еще 1111].

существуют некоторые недостатки:

  • еще нет многих хороших графический интерфейсов пользователя для него. Это является новым, и Подверсия была вокруг для намного дольше, таким образом, это естественно, поскольку существует несколько интерфейсов в разработке. Некоторые хорошие включают TortoiseGit и GitHub для Mac.
  • контроль/клоны Partial репозиториев не возможен в данный момент (я считал, что это находится в разработке). Однако существует поддержка подмодуля. Мерзавец 1.7 + поддерживает редкий контроль .
  • могло бы быть более трудно учиться, даже при том, что я не нашел, что это имело место (приблизительно год назад). Мерзавец недавно улучшил его интерфейс и довольно удобен для пользователя.

В самом упрощенном использовании, Подверсия и Мерзавец являются в значительной степени тем же. Нет большого различия между:

svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit -m "foo"

и

git clone git@github.com:foo/bar.git
cd bar
# edit
git commit -a -m "foo"
git push

то, Где Мерзавец действительно блистает, переходит и работает с другими людьми.

56
ответ дан 5 revs, 3 users 94% 23 July 2010 в 21:24
поделиться

Несколько ответов упоминали об этом, но я хочу указать 2 пункта:

1 ) Возможность делать выборочные коммиты (например, git add --patch ). Если ваш рабочий каталог содержит несколько изменений, которые не являются частью одного и того же логического изменения, Git упрощает выполнение фиксации, включающей только часть изменений. С Subversion это сложно.

2) Возможность коммитить без публикации изменений. В Subversion любая фиксация немедленно становится общедоступной и, следовательно, безотзывной. Это сильно ограничивает способность разработчика «фиксировать рано, фиксировать часто».

Git - это больше, чем просто VCS; это также инструмент для разработки патчей. Subversion - это просто VCS.

4
ответ дан 22 November 2019 в 23:45
поделиться

Все ответы здесь, как и ожидалось, ориентированы на программиста, однако что произойдет, если ваша компания использует контроль версий вне исходного кода? Существует множество документов, не являющихся исходным кодом, которые выигрывают от контроля версий и должны находиться рядом с кодом, а не в другой CMS. Большинство программистов не работают изолированно - мы работаем в компаниях как часть команды.

Имея это в виду, сравните простоту использования клиентских инструментов и обучения между Subversion и git. Я не вижу сценария, при котором любая распределенная система контроля версий будет проще в использовании или объяснении непрограммисту. Я бы хотел, чтобы меня доказали, что он ошибается, потому что тогда я смогу оценить git и действительно надеяться, что он будет принят людьми, которые не являются программистами, которым нужен контроль версий.

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

Отказ от ответственности: Я стал заинтересовался Subversion на ранней стадии (около v0.29), поэтому, очевидно, я предвзято, но компании, в которых я работал с того времени, получают пользу от моего энтузиазма, потому что я поощрял и поддерживал его использование. Я подозреваю, что именно так и происходит с большинством компаний-разработчиков программного обеспечения. Учитывая, что так много программистов подключаются к git, мне интересно, сколько компаний упустят преимущества использования контроля версий вне исходного кода? Даже если у вас есть отдельные системы для разных команд, вы упускаете некоторые преимущества, такие как (унифицированная) интеграция отслеживания проблем, увеличивая объем обслуживания,

11
ответ дан 22 November 2019 в 23:45
поделиться

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

С Git вы получаете более гибкую VCS. Вы можете использовать его так же, как SVN, с удаленным репозиторием, в котором вы фиксируете все изменения. Но вы также можете использовать его в основном в автономном режиме и только время от времени отправлять изменения в удаленный репозиторий. Но Git более сложен и требует более крутого обучения. Я впервые обнаружил, что совершаю переход к неправильным ветвям, косвенно создавая ветки или получаю сообщения об ошибках с небольшим количеством информации об ошибке и о том, где я должен искать с помощью Google, чтобы получить лучшую информацию. Некоторые простые вещи, такие как замена маркеров ($ Id $), не работают, но GIT имеет очень гибкий механизм фильтрации и перехвата для объединения собственных скриптов, поэтому вы получаете все, что вам нужно, и многое другое, но для этого требуется больше времени и чтения документации ;)

Если вы работаете в основном в автономном режиме с локальным репозиторием, у вас нет резервной копии, если что-то потеряно на вашей локальной машине. С SVN вы в основном работаете с удаленным репозиторием, который одновременно является вашей резервной копией на другом сервере ... Git может работать таким же образом, но Линус не ставил перед собой цель создать что-то вроде SVN2. Он был разработан для разработчиков ядра Linux и для нужд распределенной системы контроля версий.

Git лучше SVN? Разработчики, которым нужна только некоторая история версий и механизм резервного копирования, могут легко и легко работать с SVN. Разработчики, часто работающие с ветвями, тестирующие больше версий одновременно или работающие в основном в автономном режиме, могут извлечь выгоду из функций Git. Есть несколько очень полезных функций, таких как хранение, которых нет в SVN, которые могут облегчить жизнь. Но с другой стороны, не всем нужны все функции. Так что я не вижу мертвых SVN.

Git нужна лучшая документация, и отчеты об ошибках должны быть более полезными. Кроме того, существующие полезные графические интерфейсы встречаются редко. На этот раз я нашел только 1 графический интерфейс для Linux с поддержкой большинства функций Git (git-cola). Интеграция с Eclipse работает, но она не выпущена официально, и официального сайта обновлений нет (только некоторые внешние сайты обновлений с периодическими сборками из магистрали http://www.jgit.org/updates ) Так что в наши дни наиболее предпочтительным способом использования Git является командная строка.

2
ответ дан 22 November 2019 в 23:45
поделиться

Эрик Синк из SourceGear написал серию статей о различиях между распределенными и нераспределенными системами контроля версий. Он сравнивает плюсы и минусы самых популярных систем контроля версий. Очень интересное чтение.
Статьи можно найти в его блоге www.ericsink.com :

2
ответ дан 22 November 2019 в 23:45
поделиться

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

SVN довольно не интуитивно понятен. Git еще хуже. [саркастическая спекуляция] Это может быть потому, что разработчики, которым нравятся такие сложные проблемы, как одновременный контроль версий, не очень заинтересованы в создании хорошего пользовательского интерфейса. [/sarcastic-speculation]

Сторонники SVN думают, что им не нужна распределённая система контроля версий. Я тоже так думал. Но теперь, когда мы используем исключительно Git, я верю. Теперь контроль версий работает на меня и команду/проект, а не только на проект. Когда мне нужна ветка, то я ветка. Иногда это ответвление имеет соответствующее ответвление на сервере, а иногда нет. Не говоря уже о всех других преимуществах, которые мне придётся изучить (отчасти благодаря скрытому и абсурдному отсутствию пользовательского интерфейса, который является современной системой управления версиями)

.
1
ответ дан 22 November 2019 в 23:45
поделиться

Git в Windows теперь довольно хорошо поддерживается.

Проверьте GitExtensions = http://code.google.com/p/gitextensions/

и руководство для лучшего опыта работы с Git в Windows.

1
ответ дан 22 November 2019 в 23:45
поделиться

http://subversion.wandisco.com/component/content/article/1/40.html

Думаю, можно с уверенностью сказать, что среди разработчиков спор SVN vs. Git бушует уже некоторое время, и у каждого есть своя точка зрения на то, что лучше. Об этом даже шла речь в одном из вопросов на нашем вебинаре по Subversion в 2010 году и далее.

Хайрам Райт, наш директор по открытым исходным текстам и президент Subversion Corporation, рассказывает о различиях между Subversion и Git, а также другими распределенными системами контроля версий (DVCS).

Он также рассказывает о предстоящих изменениях в Subversion, таких как Working Copy Next Generation (WC-NG), которые, по его мнению, заставят многих пользователей Git вернуться к Subversion.

Посмотрите его видео и дайте нам знать, что вы думаете, комментируя этот блог или публикуя сообщения на наших форумах. Регистрация проста и займет всего минуту!

1
ответ дан 22 November 2019 в 23:45
поделиться

Похоже, что вы перепутали серверный код с клиентским.

Код Grails будет оцениваться при «построении» страницы для отправки в браузер клиента.

Код Javascript будет вычислен после доставки страницы в браузер.

С учетом этого рассмотрим ваше назначение onblur:

onblur=${remoteFunction(
         action:'dave', 
         update:'pack'+it.id, 
         params: [denom: document.getElementById(denomValue+${it.id}).value, 
                  amount: this.value ])}

Учитывая, что вызов $ {remoteFunction...} является тэгом Grails, он будет вычисляться на сервере, генерировать фиксированную последовательность, а затем отправляться клиенту. Все внутри вызова должно быть действительным кодом Groovy.

Посмотрите на карту параметров, вы добавили несколько Javascript в значение denom, в код Groovy:

document.getElementById(denomValue

затем вы пытаетесь добавить значение из Groovy

+${it.id}

, затем некоторые Javascript снова

).value

Компилятор Groovy попытается оценить Javascript как код Groovy и не получится.

Если требуется получить доступ к параметрам на стороне клиента в Javascript, необходимо обработать Javascript самостоятельно (а не использовать тэг remoteFunction), например, для обработки удаленного вызова:

var path=${createLink(action:'dave',
                      params: [amount:this.value])} 
           + "&denom=" 
           + document.getElementById(denomValue+${it.id}).value

Также необходимо обработать удаленный ответ самостоятельно с помощью Javascript для обновления элементов «пакета». Всегда можно посмотреть, что создает вызов remoteFunction, скопировать его на страницу и отредактировать для выполнения необходимых действий.

HTH

-121--3559981-

Вы также можете рассмотреть возможность обернуть его в Javabean следующим образом:

package com.stackoverflow.q2240722;

public class StateBean {

    public State[] getValues() {
        return State.values();
    }

}

Это путь он доступен для < jsp: useBean > :

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<jsp:useBean id="stateBean" class="com.stackoverflow.q2240722.StateBean" />

<!doctype html>
<html lang="en">
    <head>
        <title>SO question 2240722</title>
    </head>
    <body>
        <select>
            <c:forEach items="${stateBean.values}" var="state">
                <option value="${state}">${state}</option>        
            </c:forEach>
        </select>
    </body>
</html>
-121--3545596-

Я абсолютно люблю иметь возможность управлять локальными ветвями моего исходного кода в Git без грязи Во многих случаях я извлекаю код с сервера Subversion и запускаю локальный репозиторий Git, чтобы сделать это. Также здорово, что инициализация репозитория Git не загрязняет файловую систему множеством раздражающих папок .svn.

Что касается поддержки инструментов Windows, TortoityGit очень хорошо справляется с основами, но я по-прежнему предпочитаю командную строку, если не хочу просматривать журнал. Мне очень нравится, как Tortoise {Git 'SVN} помогает при чтении журналов фиксации.

3
ответ дан 22 November 2019 в 23:45
поделиться

В последнее время я живу на земле Git, и мне нравится это для личных проектов, но я пока не смогу переключить рабочие проекты на него с Subversion, учитывая изменение в мышлении, требуемом от персонала, без каких-либо неотложных преимуществ. Кроме того, самый большой проект, в рамках которого мы выступаем:house чрезвычайно зависит от svn:externals, который, из того, что я видел до сих пор, не работает так красиво и плавно в Git.

1
ответ дан 22 November 2019 в 23:45
поделиться

Я думаю, что с Subversion все в порядке ... пока вы не начнете слияние ... или делать что-нибудь сложное ... или делать что-нибудь, что Subversion считает сложным (например, выполнение запросов, чтобы узнать, какие ветки испортили конкретный файл , откуда происходит изменение на самом деле , обнаружение копирования и вставки и т. д.) ...

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

Просто он невероятно мощный и быстрый и, после того, как вы привыкли к концепциям, очень полезен (да, в этом смысле: удобен для пользователя).

Подробнее об истории слияния см. Здесь: Использование git-svn (или аналогичного) * просто * для облегчения слияния svn?

4
ответ дан 22 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: