Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/vb6/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何在源代码管理中处理Visual Basic 6.0 frm和frx文件?_Version Control_Vb6_Frm - Fatal编程技术网

Version control 如何在源代码管理中处理Visual Basic 6.0 frm和frx文件?

Version control 如何在源代码管理中处理Visual Basic 6.0 frm和frx文件?,version-control,vb6,frm,Version Control,Vb6,Frm,无论我使用了什么源代码管理系统(,,等等),这总是一件痛苦的事。在合并Visual Basic窗体时,二进制.frx文件总是会导致问题 我知道…我知道…你为什么要使用Visual Basic…因为有很多遗留应用程序仍在使用它编写,尽管我不愿意承认,但我确实喜欢使用它(如西红柿)。你需要咬紧牙关,将它们包括在版本控制系统中。不幸的是,它们包含的信息在源代码的其他地方是不可用的。(例如,添加到ImageList控件中的位图。)如果丢失这些文件,则无法正确重建应用程序。Frx合并是一大难题。这就是为什

无论我使用了什么源代码管理系统(,,等等),这总是一件痛苦的事。在合并Visual Basic窗体时,二进制.frx文件总是会导致问题


我知道…我知道…你为什么要使用Visual Basic…因为有很多遗留应用程序仍在使用它编写,尽管我不愿意承认,但我确实喜欢使用它(如西红柿)。

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

Frx合并是一大难题。这就是为什么我建议如果您的版本控制系统允许锁定,请确保在frx文件上使用它以避免合并。例如,Subversion支持锁定以避免编辑位图和其他二进制文件时出现问题

话虽如此,我和我的公司在VisualBasic6.0CAD/CAM项目上使用Subversion已经五年多了,只有几次遇到frx合并的问题

在所有情况下,这都是一个很容易解决的问题。主要由一个人备份他的表单,并通过剪切和粘贴手动解决问题。如果有人在一个有很多位图的表单上做主要工作,那么我们要确保锁定它并尽快完成项目的这一部分


请不要为Visual Basic的FRX奇怪性道歉。当两个人编辑相同的位图、WAV或软件所依赖的任何其他类型的二进制文件时,其他软件包都会遇到同样的问题。

我在ClearCase上工作,遇到了完全相同的问题,而谷歌的查询让我到了这里。由于这里的答案并没有提供如何处理ClearCase上的这些文件的技术细节,请允许我补充一下我今天所做的工作来解决我的问题

问题:

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

解决方案:

我们将遵循的总体脚本在本文中进行了描述

  • 首先,您需要了解二进制文件需要哪种类型的处理:从不合并或复制。 对这两种新类型的引用可以在另一个目录中找到

    我个人选择.frx文件的副本类型

    您需要使用ClearCase类型资源管理器创建新类型

    我建议您首先在某个测试VOB上创建新类型。一旦您对测试感到满意,就在AdminVOB中创建新类型。 如果你在UCM上工作,那将是你的PVOB级别。 在这两种情况下,请确保将新类型声明为全局类型。 如果您不在UCM上工作,并且没有管理VOB,那么您必须在您想要使用它的所有单独VOB中创建新类型

    只需按照上述技术说明进行操作

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

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

  • 您需要确保使用正确的新类型创建任何新的.frx文件。 为此,您需要更改“魔法文件”。集中对magic文件的更改是一个好主意(而不是必须在每个客户机上更改它)。您希望在服务器(例如您的VOBs服务器)上更改一次,并让人们使用名为“MAGIC_PATH”的环境变量指向它

    看到这个了吗

    复制并重命名magic_路径位置中的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]" ;
    
    # New COPY type:
    
    frx_visual_basic vb_derived COPY : -name "*.[fF][rR][xX]" ;
    
    # catch-all, if nothing else matches
    compressed_file : -name "*" ;
    
    #EOF
    
    我对它们都进行了注释,并在magic文件的最后一个条目之前添加了以下行:

    (...)
    
    # 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”元素类型

  • 如果VOB中已有.frx文件,则要将其更改为新类型:
    • 锁定VOB
    • 在Windows上从DOS提示符(从VOB顶部)使用以下命令: 这会将所有*.frx文件的元素类型更改为新的副本类型

    • 解锁VOB 你需要为你所有的VOB做这些


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

    感谢锁定建议。我非常肯定ClearCase(我们使用的版本控制系统)会允许这样做。子弹已经咬住了。很高兴知道我不是唯一一个!