МЕРЗАВЕЦ по сравнению с По необходимости - Два VCS введут …, который каждый оставит [закрытым]

85
задан Phil Miller 26 July 2010 в 03:54
поделиться

8 ответов

Perl  5 исходных кодов интерпретатора в настоящее время проходят муки преобразования от По необходимости до мерзавца. Возможно, средство импорта Sam Vilain’s git-p4raw представляет интерес.

В любом случае, одна из главных побед you’re собирающийся иметь по каждому централизованному VCS и наиболее распределенным также является сырыми данными, покрываясь пузырями скорость . Вы, которых воображают can’t, как освобождение его должно иметь всю историю проекта под рукой, простые части частей секунды далеко, пока Вы не испытали его. Даже генерация журнала фиксации целой истории проекта, которая включает полную разность для каждой фиксации, может быть измерена в частях секунды. Мерзавец так быстр, Ваша шляпа отлетит. VCSs, которые имеют к распространению в прямом и обратном направлениях по сети просто, не имеют никакого шанса конкуренции, даже по ссылке Gigabit Ethernet.

кроме того, мерзавец делает очень легким быть тщательно выборочным, делая фиксации, таким образом, позволяя изменениям в Вашей рабочей копии (или даже в единственном файле) быть распространенными по нескольким фиксациям †“и через различные ответвления, если Вам нужно это. Это позволяет Вам делать меньше умственных примечаний при работе †“Вы, don’t должен распланировать Вашу работу так тщательно, решив впереди что набор изменений you’ll фиксация и удостоверяющийся откладывать что-либо еще. Можно просто внести любые изменения, которые Вы хотите, поскольку они происходят с Вами, и все еще распутывают их †“почти всегда довольно легко †“когда it’s время для фиксации. притон может быть очень большой справкой здесь.

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

I’m уверенный существует больше вещей я, can’t думают прямо сейчас. Одна проблема с суждением продажи Вашей команды на мерзавце состоит в том, что много преимуществ взаимосвязаны и игра друг от друга, поскольку я намекнул выше, такой, что трудно просто посмотреть на список особенностей и преимуществ мерзавца и вывести, как они собираются изменить Ваш рабочий процесс, и какие изменения будут bonafide улучшениями. Необходимо принять это во внимание, и также необходимо явно указать на него.

75
ответ дан Aristotle Pagaltzis 24 November 2019 в 08:09
поделиться

У меня нет опыта с Мерзавцем, но я имею с Подвижным, который является также распределенным VCS. Это зависит от проекта действительно, но в нашем случае распределенный VCS удовлетворил проекту как в основном устраненным частым поврежденным сборкам.

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

2
ответ дан Terminus 24 November 2019 в 08:09
поделиться

Команда, которая продала меня на мерзавце лично, была , делят пополам . Я не думаю, что эта функция доступна в любой другой системе управления версиями на данный момент.

Однако если люди привыкли к клиенту GUI для управления исходным кодом, они не собираются быть впечатленными мерзавцем. Прямо сейчас единственный полнофункциональный клиент является командной строкой.

9
ответ дан Ryan 24 November 2019 в 08:09
поделиться

, Что используют функции Perforce люди?

  • Несколько рабочих областей на единственной машине
  • Пронумерованные ответвления разработчика changelists
  • Интеграция с IDE (Visual Studio, Eclipse, SlickEdit...)
  • Много вариантов сборки
  • Составные рабочие области
  • Интеграция некоторых мер, но не других
  • и т.д.

я спрашиваю, потому что, если все люди делают, получают и помещают из командной строки, мерзавцу покрыли это, и все другие РТС - также.

9
ответ дан Thomas L Holaday 24 November 2019 в 08:09
поделиться

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

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

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

15
ответ дан tialaramex 24 November 2019 в 08:09
поделиться

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

, Сколько разработчиков Вы говорите об обмене?

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

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

46
ответ дан Tim 24 November 2019 в 08:09
поделиться

По-видимому GitHub теперь предлагают учебные курсы мерзавца компаниям . Quoth их сообщение в блоге об этом :

I’ve, до кампуса Google неоднократно за последние несколько недель, помогая обучить Android там в Мерзавце. Меня спросил Shawn Pearce (можно знать его от его Мерзавца и славы EGit/JGit †“, он - герой, который принимает обслуживание, когда Junio вне города) войти, чтобы помочь ему обучить инженеров Google, работающих над Andriod в переход от По необходимости до Мерзавца , таким образом, Android мог быть совместно использован с массами. Я могу сказать Вам, что был более, чем рад сделать это.

[†¦]

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

шахта Emphasis.

6
ответ дан Aristotle Pagaltzis 24 November 2019 в 08:09
поделиться

Я использую Perforce на работе. Я также использую Git, потому что мне все еще нужна какая-то форма контроля версий, когда я работаю над кодом и не могу подключиться к серверу. Нет, согласовать офлайн-работу просто не одно и то же. Вот где я нашел большое преимущество git:

  1. Скорость ветвления - git занимает самое большее несколько секунд.
  2. Конфликты - автоматическое разрешение P4Merge однажды уничтожило недельный объем работы. С тех пор я предпочел бы решать вручную при слиянии. Когда Git сообщает мне о конфликте, на самом деле это конфликт. В остальное время git решает все правильно, и я экономлю кучу времени.
  3. Отслеживание слияний - если у вас есть одна ветка, которая постоянно принимает слияния из двух других веток, вы знаете, что это может быть головной болью, если это необходимо. С помощью git головная боль сводится к минимуму, потому что результатом слияния в git на самом деле является новый коммит, который знает, кто его предки.
  4. Разрешения - я потерял счет, сколько раз пытался работать с файлом, но не смог, потому что он не был извлечен в Perforce. Если вы работали с XCode (или любым редактором, не имеющим надежного плагина Perforce SCM) в автономном режиме, вы знаете, насколько это может раздражать. С Git мне не нужно об этом беспокоиться. Вношу свои изменения. Git меня не останавливает и отслеживает их в фоновом режиме.
  5. Поддержание порядка в основном дереве - с помощью git я могу отсортировать свои коммиты и привести в порядок код, чтобы история выглядела аккуратно и аккуратно. Ничего из этого мусора "проверка этого файла, потому что он должен был быть частью предыдущей проверки". Я сквошу такие коммиты, потому что они никому не помогают.
  6. Пришивание - ваш perforce сервер должен быть версии 2010.1 или новее, чтобы использовать команду p4 shelve.
  7. Создание патчей - Легко сделать в git. Не знаю, возможно ли это в Perforce без использования командной строки.
  8. Рассылка патчей из графического интерфейса - опять же, здесь побеждает git.
  9. Дисковое пространство - По желанию каждая ветвь является копией. Это означает, что если ваше исходное дерево огромно, ваше дисковое пространство быстро израсходуется. Это даже не считая дополнительного места после начала строительства. Зачем вообще есть связь между ветвями и дисковым пространством? С помощью git у вас может быть 100 веток, и одновременно существует только одна ветка. Если вы специально хотите работать над двумя версиями одновременно, вы можете клонировать, выполнять свою работу, а затем, если хотите, избавиться от одного клона, ничего не теряя.
  10. Если вы используете XCode4, поддержка perforce была прекращена, а поддержка git теперь встроена. Если вы выполняете кроссплатформенную работу, как я, это имеет большое значение. В Visual Studio вы можете использовать расширения git. С perforce это одинаково мерзко на обеих ОС. Что ж, может быть, теперь немного больше о Mac с XCode4 на сцене.
  11. Обнаружение ошибочной проверки (или, git bisect rules) - Вы когда-нибудь пытались выполнить бинарный поиск, чтобы выяснить, где была обнаружена ошибка? Довольно хлопотно, да? Еще больше хлопот, когда в середине были интеграции из других веток. Почему? Потому что для таких задач нет автоматизации. Вам нужно написать свой собственный инструмент, чтобы разговаривать с ним по необходимости, а у вас обычно нет на это времени. С помощью git вы задаете ему отправные точки («хорошая» и «плохая» точки), и он автоматизирует для вас поиск. Еще лучше, если у вас есть сценарий, который может автоматизировать процесс сборки и тестирования, вы можете подключить git к сценарию, и весь процесс поиска отметки будет автоматизирован. Так должно быть.
  12. Отслеживание изменений в рефакторах - Попробуйте разделить BigClass на SmallClass1 и SmallClass2. Для Perforce BigClass прекратил свое существование, и к дереву исходных текстов присоединились два новых класса (SmallClass1 и SmallClass2). Для Perforce нет никакой связи между BigClass, SmallClass1 и SmallClass2. Git, с другой стороны, достаточно умен, чтобы знать, что x% BigClass теперь находится в SmallClass1, а y% BigClass находится в SmallClass2, и что BigClass прекратил свое существование. Теперь, с точки зрения того, кто просматривает изменения в нескольких ветках, вы говорите мне, какой подход вы найдете более полезным - Git или Perforce. Лично я предпочитаю подход Git, потому что он более точно отражает фактическое изменение кода. Git может это сделать, потому что он отслеживает содержимое внутри файла, а не сам файл.
  13. Централизованный или децентрализованный: Git - это система DVCS , в то время как принудительно централизованная. Централизованная VCS не может быть децентрализована позже, но DVCS (особенно git) может быть централизованной. Есть несколько продуктов, которые добавляют в git очень мелкозернистый контроль доступа, если это то, что нужно бизнесу. Лично я бы выбрал систему, которая дает мне большую гибкость в долгосрочной перспективе.
  14. Отображение ветвей: если вы хотите выполнять ветвление прямо в Perforce, вам необходимо создать сопоставление ветвей. На это есть причины,но они связаны с тем, как Perforce концептуализирует ветвь. Как разработчик или команда, это просто означает еще один шаг в рабочем процессе, который я вообще не считаю эффективным.
  15. Распределение работы между командами: с Perforce вы не можете разбить задание. Команда A работает над функцией A. Команда B над функцией B. Команда C работает над исправлением ошибок. Теперь командам A и B необходимо исправить кучу ошибок, чтобы реализовать свои функции. Единственное, они не были так дисциплинированы при фиксации своих изменений (вероятно, потому, что они спешат к крайнему сроку), и поэтому их «исправления ошибок» являются частями более крупных представлений, которые также содержат новые вещи в том, что касается контроля версий на их отрасли обеспокоены. Однако команда C сейчас делает точечный выпуск и хотела бы получить исправления ошибок от других команд. Если бы они использовали Git, команда C могла бы выбрать соответствующие изменения других команд, разделить их и взять только то, что им нужно, не беспокоясь о внедрении каких-либо частично реализованных функций. С помощью Perforce команда C может получить затронутые файлы, но ей придется разделить соответствующие изменения, используя гораздо более ручной процесс.
  16. Смена платформы. Если по какой-либо причине в будущем вы решите сменить платформу, выбранную вами, с помощью Perforce, вы окажетесь на милости Perforce.com и доступности инструментов для выбранной вами платформы .
  17. Переход на будущую замечательную систему управления версиями X - если вы решите изменить то, что вы используете для управления версиями, извлечение истории управления исходным кодом из Perforce и перемещение ее в новую систему X будет { {1}} будет кошмаром, потому что это закрытый исходный код, и лучшее, что вы можете сделать, это догадаться - просто переходите с Google для Perforce на Git, чтобы понять, что я говоря о. По крайней мере, с Git, его открытым исходным кодом, так что он избавляет от множества догадок.

Ну, это мои 2 цента. В защиту Perforce я должен сказать, что их правила поддержки клиентов, как и их инструмент Time Lapse View, тоже. Я не знаю, как получить покадровый просмотр с помощью git. Но для удобства и экономии времени я бы выбрал git в любой день.

84
ответ дан 24 November 2019 в 08:09
поделиться
Другие вопросы по тегам:

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