你如何处理源代码管理中的visual basic 6 frm和frx文件?

And*_*ter 20 vb6 version-control frm

无论我使用什么源代码控制系统(源代码安全,cvs,clearcase ......),这总是很痛苦.二进制.frx文件在合并可视化基本表单时总会导致问题.

我知道......我知道......你为什么使用Visual Basic ...因为有许多遗留的应用程序仍在使用它写,虽然我不想承认它我真的喜欢用它(鸭子西红柿)

Jef*_*ffK 15

你需要咬紧牙关并将它们包含在版本控制系统中.不幸的是,它们确实包含源中其他任何地方都无法获得的信息.(例如,位图添加到ImageList控件.)如果丢失了这些文件,则无法正确重建应用程序.


RS *_*ley 8

Frx合并是一个主要的痛苦.如果您的版本控制系统允许锁定,我建议您使用它来确保您在frx文件上使用它以避免合并.例如,Subversion支持锁定以避免编辑位图和其他二进制文件的问题.

据说我的公司和我在VB6 CAD/CAM项目上使用Subversion已经超过5年了,并且只是遇到了frx合并一些时间的问题.在所有情况下,解决问题都很简单.主要由一个人备份他的表格并通过剪切和粘贴手工解决问题.如果某人在其中一个具有大量位图的表单上做了大量工作,那么我们确保锁定它并尽可能快地完成项目的这一部分.

PS不要为VB的FRX奇怪道歉,其他软件包在任何时候编辑相同的位图,wav或软件依赖的任何其他类型的二进制文件时都会遇到同样的问题.


Tho*_*iol 5

我在 ClearCase 上工作并偶然发现了完全相同的问题,谷歌查询让我最终来到这里。由于这里的答案并没有真正提供有关如何在 ClearCase 上处理这些文件的技术细节,请允许我添加我今天所做的来解决我的问题。

问题:

.frx 文件是在 ClearCase 中使用“compressed_files”类型创建的,它不支持合并,并且可能会产生冲突,让不知情的用户感到困惑(并让您在 CM 团队中获得支持电话)。

解决方案:

我们将遵循的整个脚本在此IBM 技术说明中进行了描述

  1. 首先,您需要了解您希望对二进制文件进行哪种类型的处理:NEVER_MERGE 或 COPY。

    可以在另一个IBM 技术说明中找到对这两种新类型的引用

    我个人为 .frx 文件选择 COPY 类型

    您需要使用 ClearCase Type Explorer 创建新类型。

    我建议您首先在某处的测试 VOB 上创建新类型。一旦您对测试感到满意,请在您的 Admin VOB 中创建新类型。如果您正在研究 UCM,那将是您的 PVOB 级别。无论哪种情况,请确保将新类型声明为 Global。如果您不在 UCM 上工作,并且没有管理员 VOB,则必须在要使用它的所有单个 VOB 中创建新类型。

    只需按照上述技术说明中的说明进行操作即可。

    注意,重要提示:如果在管理 VOB 中创建新类型之前已在测试 VOB 中创建它们,则必须从“较低”VOB 中删除新类型(假设您的测试 VOB 在管理 VOB 下)。删除元素类型会删除该类型的所有实例,因此不要创建这种新类型来测试真实文件,因为从较低级别的 VOB 中删除类型将删除与其关联的所有文件!

    小心不要丢失任何重要数据!

  2. 您需要确保使用正确的新类型创建任何新的 .frx 文件。

    为此,您需要更改“魔术文件”。将更改集中到魔法文件是一个好主意(而不是必须在每个单独的客户端上更改它)。您想在服务器(例如您的 VOB 服务器)上更改一次,并让人们使用名为“MAGIC_PATH”的环境变量来指向它。

    请参阅此IBM 技术说明

    复制并重命名 MAGIC_PATH 位置中的 default.magic 文件后,您需要更改 .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]" ;
    
    Run Code Online (Sandbox Code Playgroud)

    我对它们都进行了评论,并在魔法文件的最后一个条目之前添加了以下行:

    # New COPY type:
    
    frx_visual_basic vb_derived COPY : -name "*.[fF][rR][xX]" ;
    
    # catch-all, if nothing else matches
    compressed_file : -name "*" ;
    
    #EOF
    
    Run Code Online (Sandbox Code Playgroud)

    每个定义 MAGIC_PATH 环境变量的客户端现在都应该正确选择它,因此任何使用 .frx 后缀创建的新文件都将具有“COPY”元素类型。

  3. 如果您的 VOB 中已经有 .frx 文件,您希望将它们更改为新类型:
    • 锁定VOB
    • 在 Windows 上从 DOS 提示符(从 VOB 的顶部)使用以下命令:
      cleartool find . -all -name "*.frx" -exec "cleartool chtype COPY %CLEARCASE_XPN%"
      
      Run Code Online (Sandbox Code Playgroud)

      这会将所有 *.frx 文件的元素类型更改为新的 COPY 类型

    • 解锁VOB

      您需要为所有 VOB 执行此操作。

注意:此答案顶部的第一个技术说明指出“Rational ClearCase 远程客户端不支持这种类型的合并(即复制)。” 从 ClearCase 7.0.1 和我今天所做的测试来看,现在支持了。