Я использую TRUEchange с сентября 1999 года, и я думаю, что вам повезло, что вам сказали, что вам нужно перейти с Perforce на TRUEchange.
Я работал с рядом открытых, коммерческих и коммерческих программных систем CM, и, безусловно, TRUEchange - лучший продукт, который я когда-либо использовал.
Четыре вещи, которые делают TRUEchange настолько хорошим (их больше четырех - это четыре ключевых):
Изменение набора данных вместо файла diff . Если 50 файлов извлекаются как группа, изменяются и затем возвращаются обратно, изменения в этих 50 файлах представляют собой единое целое, называемое набором изменений. TRUEchange обрабатывает параллельные параллельные базовые линии лучше, чем любое программное обеспечение CM, которое я когда-либо использовал. Csets могут быть перенесены на базовую линию с меньшим номером или перенесены на базовую линию с более высоким номером. Конфликты миграции / слияния редки, и в клиентах есть встроенный трехсторонний инструмент слияния, который позволяет пользователю с легкостью разрешать конфликты. Наборы изменений могут быть удалены из определенной версии (в любом порядке) и могут быть добавлены обратно. Если в файле было 5 изменений в 5 различных наборах изменений, 2-е изменение можно удалить, оставив изменения 1, 3, 4 и 5 нетронутыми. Он также хранит полные метаданные для поддержки перемещения файлов из одного каталога в другой, переименования файлов или переименования каталогов. Файлы могут быть удалены, и есть набор изменений, который удаляет файл. Поскольку набор изменений, который удаляет файл, сохраняет идентификатор файла, имя файла и родительский каталог, файлы можно восстановить в любое время, не загружая их снова в систему. История изменений восстанавливается при восстановлении файла.
Версия проекта, основанная на версии файла . Когда версия помечена контрольной точкой (аналогично тегированию), содержимое всех файлов во всем проекте записывается как единое целое. Вместо того, чтобы отслеживать отдельные номера версий для 5000 файлов, вам нужно будет только отслеживать контрольные точки для проектов, которые содержат эти файлы. Ведение истории того, что было построено для QA или развертывания, является «абсолютно простым», так как не нужно отслеживать версии файлов. TRUEchange использует конфигурации сборки для группировки связанных проектов и путей к файлам, куда были извлечены файлы для процесса сборки - в файловых системах Unix / Linux, Windows или VMS. Мы используем номер версии из трех сегментов, такой как 2.1.0. Первая сборка (или итерация) для версии будет 2.1.0.1. Второй будет 2.1.0.2 и так далее. Когда мы запускаем сборку и она завершается, мы берем подробную информацию о конфигурации сборки и вставляем данные в две таблицы базы данных. Одна таблица содержит информацию об уровне конфигурации сборки, такую как имя конфигурации сборки, основной номер версии, вспомогательный номер версии, номер вспомогательной версии, итерация, описательный заголовок, тип сборки (QA или Production), а также дата и время завершения. Другая таблица содержит внешний ключ, указывающий на строку уровня конфигурации сборки в первой таблице, и содержит имя проекта, основной номер версии, вспомогательный номер версии, номер вспомогательной версии и итерацию от контрольной точки, используемой для запуска сборки. Имея информацию об уровне конфигурации сборки и информацию об уровне проекта, мы можем запросить базу данных и сразу узнать точное содержание любого прогона сборки. В настоящее время у нас есть история сборок с сентября 2001 года - почти 33 500 сборок и более 228 000 дочерних записей. За считанные минуты или две я мог воссоздать исходную структуру каталогов для любого запуска сборки за последние 8 лет и знал, что он абсолютно точен и идентичен первоначальному запуску сборки. Если бы мне пришлось сделать это с системой CM, основанной на версии файла, потребовалось бы довольно много времени для воссоздания любой данной сборки.
Команды командной строки, Windows GUI, клиент Java GUI (StreamCM), настраиваемость и надежность . TRUEchange имеет множество команд командной строки, обеспечивающих высокий уровень автоматизации. Используя сценарии оболочки и PHP, мы смогли разработать полностью автоматизированные циклы сборки и настраиваемые веб-интерфейсы для взаимодействия разработчиков с системой CM. Сборки разработки запускаются как пользователь управления конфигурацией с извлечением файлов из TRUEchange, запускаются с веб-страницы. Это гарантирует, что код, проверенный инженерами, будет собран при запуске CM. StreamCM работает на различных платформах - Unix (Solaris, AIX, HP-UX, Irix и т. Д.), Linux (Red Hat, Fedora, Gentoo и т. Д.), Windows (XP, Vista) и MacOS (PPC и Intel). ). Этот унифицированный интерфейс позволяет разработчикам использовать несколько платформ и заставить клиента работать одинаково независимо от ОС. TRUEchange можно настраивать, используя язык сценариев. Мы настроили TRUEchange для взаимодействия с нашей базой данных CM, работающей под PostgreSQL, чтобы веб-приложения могли считывать метаданные из базы данных, а не запрашивать систему CM. Мы также настроили TRUEchange для взаимодействия с нашей системой отслеживания проблем в Mercury Interactive Test Director через соединение с базой данных Oracle. Это очень надежно. За почти 10 лет у нас был один сбой репозитория, который требовал возврата к резервной копии - из-за ошибки диска. И поскольку TRUEchange поддерживает транзакции, которые публикуются для каждого репозитория, мы смогли воспроизвести транзакции, которые изменили репозиторий, в точном порядке, в котором они были первоначально применены. Это был слабо используемый репозиторий, но для воспроизведения всех транзакций в течение трех дней потребовалось всего 10 минут. У нас более 200 пользовательских лицензий, и у нас никогда не было более двух инженеров CM для поддержки пользовательской базы. В 2008 году мы с другим инженером CM выполнили более 6300 сборок QA и создали более 1800 образов развертывания для производственного развертывания. По сравнению с любой другой системой CM, которую я когда-либо использовал, TRUEchange требует гораздо меньшего администрирования - с огромным отрывом. Другим плюсом является готовность McCabe улучшить продукт в соответствии с потребностями их клиентов. Мы просили о многочисленных улучшениях за эти годы, и они выполнили почти каждый запрос и превзошли наши ожидания. Еще одна замечательная особенность TRUEchange - он предназначен для работы в распределенной среде. Менеджер лицензий контролирует доступ к системе и отслеживает, на каких серверах работают репозитории. У нас есть сервер лицензий и четыре сервера Linux, на которых работает 97 репозиториев. Если бы нам нужно было добавить серверы для размещения дополнительных репозиториев, это было бы просто вопросом запуска этих серверов, создания репозиториев (или перемещения существующих на новый сервер), воссоздания сценариев запуска и остановки (посредством автоматизированного процесса) и запуск репозиториев на новом сервере. Никакого вмешательства клиента не требуется. И мы управляем почти 52 миллионами строк исходного кода плюс двоичные файлы (такие как gif-файлы, jpeg-файлы и т. Д.).
Плагин CruiseControl . В последнем выпуске программного обеспечения McCabe разработал плагин CruiseControl, который позволяет интегрировать TRUEchange. На данном этапе мы не использовали CruiseControl, потому что наше программное обеспечение чрезвычайно сложное и имеет много взаимозависимостей. Это не недостаток TRUEchange, а недостаток в CruiseControl. Кажется, он лучше всего подходит для автономных систем, которые не сильно зависят от других систем.
Для того, чтобы легко перейти с другого продукта CM на TRUEchange, itt просто понимает концепцию, ориентированную на проект, а не на файл, а затем настраивает репозитории для удовлетворения требований безопасности (кто может и на каком уровне получить доступ) и логических проектов. организация программных систем. Если репозитории и проекты настроены правильно, это просто вопрос извлечения файлов из старой системы CM и массовой загрузки их в проекты TRUEchange.