Мигрируйте от ClearCase до SVN/Mercurial

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

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

15
задан tshepang 7 July 2014 в 06:10
поделиться

12 ответов

Я определенно считал бы перемещение от clearcase до подверсии обновлением!

5
ответ дан 30 November 2019 в 23:52
поделиться

На основе моего опыта ClearCase имеет действительно много издержек, и мы справились значительно с SVN.

я голосую, "снижение" (на самом деле ОБНОВЛЕНИЕ). ;)

28
ответ дан 30 November 2019 в 23:52
поделиться

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

при реализации ClearCase (CC) с помощью модели SVN-типа, затем SVN будет работать просто великолепно и будет партия более дешев.

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

я нахожу, что большинство людей использует предпочтительный вариант, который похож на использование Феррари в трафике часа пик...

Пример? Определите маркирует GA, SP1, SP2 (Вы можете иметь как много выпусков между GA и SP1, как Вам угодно не релевантным, и помнить, маркировки CC НЕ являются тем же как SVN). GA был Вашим основным выпуском, SP1 является Вашим текущим выпуском. SP2 является Вашим следующим выпуском. Текущий выпуск основан на GA и SP1. Следующий выпуск основан на GA, SP1 и SP2 (см., что CC конфигурирует спецификации)

Начинают QA. Разработка делает продолжающуюся работу для "следующего выпуска", и пользователи могут сослаться (не, изменяются), GA и SP1, и может применить SP2. Обслуживание делает работу для восстановления дефектов, найденных QA, и может сослаться на GA и применить SP1.

Случай 1: В ClearCase простое действие применения маркировки SP1 делает фиксацию автоматически доступной команде выпуска Dev SP2. Никакая работа. Nada, Нуль.

В Подверсии, Вы внесли бы изменение на ответвлении QA, и затем (надо надеяться, помните к), перемещают изменение в SP2.

Случай 2: перед выяснением, конечно, если Вы добавляете изменение SP2, необходимо будет перейти для добавления последующего изменения для SP1, как это было бы в большинстве систем.

В моем мире, числах реального мира: Случай 1 произошел 122 раза для моего последнего SP (8 SPS в год). Более чем 800 изменений в год, которые я не должен был вносить в ClearCase, который я должен был сделать, если я использовал модель Subversion.

Случай 2 произошел 6 раз с начала 2002 года, когда мы установили CC.

Взгляд процесс , не только продукт .

(Извините за длину, это не запускало это долго :-)

18
ответ дан 30 November 2019 в 23:52
поделиться

Мы пошли от ClearCase LT до SVN, и любите его. Мы сохраняем много наличных в комиссии, и все работает точно так же как прежде.

мне просто жаль, что я не исследовал Мерзавца или что-то как этот, прежде чем я рекомендовал SVN.

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

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

6
ответ дан 30 November 2019 в 23:52
поделиться

Fourthing рекомендация, которую Вы переключаете. Если Вы не используете функции, это - плохой бизнес-выбор пойти с коммерчески оцененным решением.

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

Из двух, что Вы упоминаете, SVN является тем, который необходимо выбрать при текущем использовании централизованного репозитория VC. Мало того, что операционная модель SVN является простой и интуитивной, но SVN имеет просто лучшую документацию и сообщество разработчиков, которое я когда-либо видел в проекте с открытым исходным кодом. Пользовательский список рассылки великолепен, разработчики являются быстро реагирующими и ответственными своим пользователям, и , Красная Бобовая книга является единственной лучшей частью руководства с открытым исходным кодом, пишущего там.

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

У меня нет проблемы с Вашим "переключателем". Это будет обновление, если у Вас не будет многих взаимозависимых проектов с помощью UCM.

я управляю и SCM (ClearCase и Подверсией) и действительно рекомендую Подверсию для малого и среднего независимый проекты.

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

И учитывают сдвиг парадигмы:

  • ClearCase централен файлом (каждый файл, который Вы получаете, только для чтения, и Вы контроль только файлы, над которыми Вы действительно работаете)
  • Подверсия центральна репозиторием (каждый файл, который Вы получаете, чтение-запись, Вы регистрация все измененные/добавленные/удаленные файлы в одной атомарной фиксации)
3
ответ дан 30 November 2019 в 23:52
поделиться

Я просто проводил прошлые несколько недель в своем новом задании, изучающем инструменты SCM (Software Configuration Management) и ALM (Application Lifecycle Management) для принятия, чтобы заменить CVS и поддерживать принятие Гибких.

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

Для простого решения SCM изучают следующее:

  • Accurev: Это - инструмент SCM, который имеет собственную поддержку находящейся на потоке/параллели разработки. Это обеспечивает очень хороший потоковый браузер, дающий Вам графическое представление Ваших потоков и разрешающий Вам графически способствовать изменениям как проблемы, или как changeset (осуществляет атомарный, продвигает ряда исходных файлов). Это имеет созданное обсуждаемое средство отслеживания, чтобы дать Вам управление изменениями и позволить Вам работать основанным на задаче способом. С AccuFlow Вы можете иметь еще больше контроля своих изменений с рабочим процессом, и Аккубридж дает Вам интеграцию IDE.
  • Seapine Окружают: Это - симпатичный инструмент, который работает хорошо на ветвление, но не совсем столь же усовершенствованный как Accurev. То, что хорошо о Seapine, является интеграцией с их инструментом отслеживания ошибки, TestTrack Pro и также их решением по управлению тестового сценария TestTrack TCM (которые объединяются в TestTrack Stuido). Наконец у них также есть Мастер QA Pro, который является сетью, и winforms автоматизировали инструмент тестирования.
  • PureCM: Это - другая альтернатива, которая довольно популярна, но я не посмотрел на нее в мельчайших подробностях
  • По необходимости: Другая альтернатива в этом пространстве, которым я не был так впечатлен, но это действительно имеет некоторые интересные нишевые функции как способность сравнить и объединить изображения.
  • Пластмассовый SCM: незрелый продукт, но очень интересный посмотреть на.

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

, Если у Вас есть обширное Рациональное развертывание, Вы могли бы хотеть изучить эти альтернативы:

  • Целостность MKS: А хороший хорошо соединенный продукт, который имеет превосходные инструменты управления портфелем с хорошим, созданным в представлении тестового прогона. Все его инструменты попадают в один IDE, и очень настраиваемо.
  • Serena CM: Снова достаточно хороший комплект с обширными инструментами вокруг базового решения ALM. Очень большая часть управления портфелем и существует большая поддержка процесса buiness с их компонентами Мэшапов, и также поддерживайте для разработки прототипа.
  • Телелогика: Иронически теперь часть IBM и скоро быть рациональной IBM. Его решение SCM (Телелогическое Изменение и Совместные действия) является легко лучшим, я видел со способностью способствовать изменениям кода явно задачей в ответвление сборки конечных версий.

Все вышеупомянутые решения поддерживают те же понятия SCM как Accurev и т.д., но являются, очевидно, больше вплотную продуктами и являются масштабом предприятия.

Мы сузили в этой точке наш выбор или к MKS или к Телелогике.

Моя самая большая точка на этом - то, что существуют многие, много решений там промежуточный ClearCase и CVS/подверсия, которые являются коммерческими, но relitvely дешевый.

Hope это было полезно.

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

Мне было бы интересно слышать о том, как Ваша структура ответвления настраивается.

, Почему пользователи работают над 'соединительной линией' Вашего продукта? (Я предполагаю, что это означает Ваше основное ответвление). Разве ответвления разработки не препятствовали бы тому, чтобы Ваши разработчики влияли на основную соединительную линию?

, Почему Вы не могли представить триггер на rmview сценарии, препятствующем тому, чтобы пользователи удалили представление при тихом наличии контроля? Это - вполне тривиальное осуществление, и существует много источников онлайн (и я уверен, что StackOverflow предоставил бы Вам ответы, если Вы спрашиваете!).

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

0
ответ дан 30 November 2019 в 23:52
поделиться

Что мне понравилось в ClearCase, что я не смог сделать так же хорошо или вообще в других инструментах SCM:

  1. Работа с ветками разработчика была безболезненной. В CC (UCM) вы работаете в своем потоке (он же ветвь) и «доставляете» кучу работы в поток интеграции. Между тем, другие разработчики поступают так же. Интегратор (возможно, один из разработчиков) затем проводит некоторое тестирование потока интеграции и проверяет, все ли строится, и, возможно, проводит дымовые тесты, а затем рекомендует новую базовую линию, которая включает работу всех разработчиков. А вы продолжаете работать в своем филиале. В следующий раз, когда вы захотите выполнить поставку (или раньше, если хотите), вы увидите, что доступна новая базовая линия, поэтому вы сливаетесь со своим потоком. Фактически, вы вынуждены перебазировать, если доступна более новая базовая линия. Я пробовал сделать это в Microsoft Team Foundation Server и SVN. Во-первых, я не мог найти способ обеспечить соблюдение такой политики, как принудительное перебазирование CC, поэтому мне пришлось пойти и выяснить, какие из моих ревизий я сделал с момента последнего слияния, и что было сделано с тех пор в магистрали, и затем слейте из ствола в мою ветку. Затем, когда я захотел объединить свою новую работу в ствол, мне пришлось повторно объединить все, что я только что слил в свою ветку, плюс мою новую работу.
  2. Ветви разработчиков способствовали эффективному обзору кода. Когда я использовал CC, мы все проверяли. Однако на практике проверка требовала времени, и нам нужно было продолжать работу. Каждая работа соответствовала деятельности в CC. Только когда проверка была завершена, мы отправили активность в поток интеграции. Если обзор потребовал изменений, Я мог решить либо внести изменения в действие, в котором я выполнял исходную работу (при условии, что в файлы, измененные в этом действии, не были внесены последующие изменения), либо создать новое действие для исправления изменений обзора, либо, возможно, удалить все действие и начать заново (опять же, если не было сделано последующих изменений). В TFS и SVN после того, как вы что-то зафиксируете, вы не сможете легко вернуться, не уничтожив последующую работу. Поэтому нам пришлось найти другой способ показать наши изменения другим разработчикам. Это закончилось тем, что различия были преобразованы в веб-страницы, но все же мы не могли продолжить работу, не смешивая ее с работой, ожидающей рассмотрения.
  3. Кросс-платформенная разработка упрощается с помощью динамических представлений. У меня есть только SVN для сравнения, так что, возможно, Mercurial или другие лучше. Моей целью было внести изменения, построить, протестировать, отладка на платформах Linux и PowerPC (и Windows для другого проекта) и фиксация одного набора изменений, как только я буду доволен, что он работает на всех платформах. Для сборок PowerPC у нас была рабочая станция Sun (доступ к динамическому представлению), которую мы использовали для сборки и тестирования цели. Это было медленно, поэтому мы выполнили большую часть кодирования и отладки в Linux, а затем построили и протестировали на PowerPC перед окончательным тестированием на (PowerPC) target и, наконец, проверкой. Один из способов обойти это - сетевые файловые ресурсы. Одна проблема, которую я здесь видел, - это несовместимость версий между Linux svn и TortoiseSVN в Windows. Если вы поместите Tortoise в копию репозитория Linux, он изменит файлы .svn, и Linux svn затем пожалуется, что версия слишком новая. (Мы не смогли обновить наши Linux-боксы до достаточно новой svn из-за платформы, которую мы выбрали для своей цели.) Так что я могу ' Я не использую мой инструмент сравнения Windows в репозитории Linux svn. Если я пойду другим путем, используя извлечение Windows и Linux, монтирующий репозиторий Windows, символические ссылки не сохранятся (которые необходимы в сборке Linux).

Я не возражаю, поддержка ClearCase - это кошмар, и будет стоить вам денег. Но после настройки он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).

Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.

обслуживание ClearCase - это кошмар, а будет стоить вам денег . Но как только он настроен, он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).

Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.

обслуживание ClearCase - это кошмар, а будет стоить вам денег . Но после настройки он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).

Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.

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

По-моему, вы будете счастливы в git / mercurial и, вероятно, не в SVN. OTOH, весь мой опыт работы с прозрачным кейсом был утомительным и нелюбимым, поэтому я считаю, что любое действие по побегу действительно очень хорошо.

Похоже, распределенные системы лучше соответствуют вашему рабочему процессу.

0
ответ дан 30 November 2019 в 23:52
поделиться

Я рекомендую прочитать HG Init - руководство Джоэла Спольски о том, как перейти с SVN на Mercurial.

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

Это статья, которая окончательно убедила меня начать использовать Mercurial на работе.

1
ответ дан 30 November 2019 в 23:52
поделиться
Другие вопросы по тегам:

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