Подтвердить что ты не робот

Как вы справляетесь с визуальными базовыми файлами 6 frm и frx в контроле источника?

Это всегда боль, независимо от того, какую систему управления версиями я использовал (исходный сейф, cvs, clearcase...), двоичные файлы .frx всегда вызывают проблему при слиянии визуальных базовых форм.

Я знаю... Я знаю... почему вы используете Visual Basic... потому что есть много устаревших приложений, которые все еще написаны с его использованием, и хотя я ненавижу признаться в этом, мне действительно нравится использовать его (уток помидоров)

4b9b3361

Ответ 1

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

Ответ 2

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

С учетом сказанного моя компания и я используем Subversion в проекте VB6 CAD/CAM более 5 лет и столкнулись с проблемой слияния frx в течение нескольких минут. Во всех случаях это было просто решить. В основном одним человеком, создающим резервную копию его формы и разрешающей проблему вручную путем вырезания и вставки. Если кто-то делает большую работу над одной из форм с большим количеством растровых изображений, то мы убеждаемся, что мы заблокировали его и как можно быстрее выполнили эту часть проекта.

P.S. Не извиняйтесь за странность VB FRX. У других пакетов такая же проблема возникает в любое время, когда два человека редактируют один и тот же битмап, wav или любой другой тип двоичного файла, от которого зависит программное обеспечение.

Ответ 3

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

Проблема:

Файлы .frx были созданы с использованием типа "сжатых_файлов" в ClearCase, который не поддерживает слияния, и может создавать конфликты, которые могут озадачить незнакомого пользователя (и получить вам вызов поддержки в команде CM).

Решение:

Общая script, которую мы будем отслеживать, описана в этом IBM technote

  1. Прежде всего, вам нужно понять, какой тип обработки вы хотите для своих двоичных файлов: NEVER_MERGE или COPY.

    Ссылка на эти два новых типа может быть найдена в этом другом IBM technote

    Я лично выбираю тип COPY для файлов .frx

    Вам нужно создать новые типы с помощью проводника типа ClearCase.

    Я предлагаю вам сначала создать новые типы на тестовом VOB. И как только вы довольны своим тестированием, создайте новые типы в своем VOB-администрировании. Если вы работаете над UCM, это будет на уровне PVOB. В любом случае убедитесь, что вы объявляете новый тип глобальным. Если вы не работаете в UCM и не имеете VOB-администрирования, вам придется создавать новые типы во всех отдельных VOB файлах, которые вы хотите использовать.

    Просто следуйте инструкциям, приведенным выше.

    ПРИМЕЧАНИЕ, ВАЖНО: Вам нужно будет удалить новые типы из "более низкого" VOB, если вы создали их в тестовом VOB, прежде чем создавать их в VOB администратора (при условии, что ваш тестовый VOB был под администратором VOB). Удаление типа элемента удаляет все экземпляры этого типа, поэтому НЕ создавайте эти новые типы для тестирования на реальных файлах, так как удаление типов из более низкого уровня VOB приведет к удалению всех связанных с ним файлов!

    Будьте осторожны, чтобы не потерять важные данные!

  2. Вам нужно убедиться, что новые .frx файлы будут созданы с соответствующим новым типом.

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

    Смотрите IBM Technote

    После того, как вы скопировали и переименовали файл default.magic в своем местоположении MAGIC_PATH, вам нужно изменить определение файлов .frx.

    В файле по умолчанию по умолчанию есть две записи:

    (...)
    
    # Match non-printable files by name
    
    (...)
    
    vb_form_compiled vb_derived compressed_file : !-printable & -name "*.[fF][rR][xX]" ;
    
    (...)
    
    # assumed to be binary
    
    (...)
    
    vb_form_compiled vb_derived compressed_file : -name "*.[fF][rR][xX]" ;
    

    Я прокомментировал их оба и добавил следующую строку до последней записи в магическом файле:

    # New COPY type:
    
    frx_visual_basic vb_derived COPY : -name "*.[fF][rR][xX]" ;
    
    # catch-all, if nothing else matches
    compressed_file : -name "*" ;
    
    #EOF
    

    Каждый клиент, который определяет переменную среды MAGIC_PATH, теперь должен правильно выбирать, поэтому любые новые файлы, созданные с суффиксом .frx, будут иметь тип элемента "COPY".

  3. Если у вас уже есть .frx файлы в VOB, вы хотите изменить их на новый тип:

    • Блокировка VOB

    • используйте следующую команду в Windows из командной строки DOS (вверху вашего VOB):
      cleartool find . -all -name "*.frx" -exec "cleartool chtype COPY %CLEARCASE_XPN%"
      

      Это изменит тип элемента для всех *.frx файлов на новый тип COPY

    • Разблокируйте VOB

      Вам нужно сделать это для всех ваших VOB.

    Примечание. В первом техническом примечании в верхней части этого ответа указано, что "этот тип слияния (то есть COPY) не поддерживается удаленным клиентом Rational ClearCase". с ClearCase 7.0.1 и из теста, который я сделал сегодня, это теперь поддерживается.

    Приветствия,

    Томас