【问题标题】:BeyondCompare for .properties超越 .properties 的比较
【发布时间】:2012-05-08 18:45:55
【问题描述】:

我正在使用 BeyondCompare 来比较文件,我对此非常满意。但是,我也想比较和交叉编辑两个 .properties 文件。具体很明显 - 我不关心名称/值对的顺序,但我关心重复等。有人知道(或还需要)这样的应用程序吗?

【问题讨论】:

    标签: java file configuration editor beyondcompare


    【解决方案1】:

    sort the properties by key name when saving有个窍门。

    或者在比较它们之前对两个文件进行排序。

    【讨论】:

    • 我知道这个技巧。但即使在生产中,这些文件也有数百个共享所有者。几乎所有人都会同意。
    • 他们为什么不同意?
    • 因为这些文件中的信息在历史上的分组方式不同 - 有时按功能,有时按版本。开发人员甚至更多的运营商都希望找到过去的信息
    • 我明白了,也就是说,如果您手动创建文件。我通常做的是在程序中创建文件。在这种情况下,使用 java.util.Properties.store() 将不会保持顺序。
    【解决方案2】:

    我找到了一种非常适合我的方法。

    据我所知,这种方法的唯一问题是,当您保存使用 Beyond Compare 所做的任何更改时,属性文件会变得一团糟;因此您需要在保存或在 Beyond Compare 之外进行更改之前选择文件格式“”。

    基于the message #2 和链接it contains。我正在使用 BC v3.3.13

    诀窍是创建一种特殊的文件格式:

    1. 进入菜单Tools / File Formats...
      • 创建(点击左下角new按钮)或...
      • 修改一个(选择它)
    2. 为其设置一个正确的名称:Properties
    3. General 选项卡中设置掩码:*.properties
    4. Conversion 标签集中Sorting
    5. Gramar 选项卡中
      • 键=值
        1. 点击New按钮
        2. 设置专有名称:Equal sign to the end
        3. 单击名为Delimited 的单选按钮
        4. Text from: 字段中添加等号 (=)
        5. 设置名为Stop at end of line的复选框
      • cmets
        1. 点击New按钮
        2. 设置专有名称:Comments
        3. 单击名为Delimited 的单选按钮
        4. Text from: 字段中添加一个尖号 (#)
        5. 设置名为Stop at end of line的复选框
    6. 点击Save按钮或按Alt-S
    7. 关闭显示的对话框
    8. 按重新加载工具栏图标,或手动选择新文件格式

    1. 您可以告诉 Beyond 比较等号后和尖号后的文本不重要:
      1. 单击rules 工具栏图标(戴帽子的人)(在上图中的蓝色椭圆内显示)
      2. 转到Importance 标签
      3. 删除两个语法元素中的检查:

    4. Press the `Ok` button
    
    • Note Beyond Compare 在我添加到第一张图像的两个红色椭圆中显示文件格式
    • Note Beyond Compare 告诉您文件未按文件系统中的方式显示,但如果您看到显示的椭圆右侧的文本,它们会被转换(排序)。

    希望对某人有所帮助。

    【讨论】:

      【解决方案3】:

      尝试使用Sorted 格式进行比较。

      【讨论】:

      • 我知道,为了使这种比较有效,应该进行排序。问题是Beyond Compare样式编辑后的工具(向右复制,向左复制等)应使编辑后的文件尽可能接近其初始状态。
      • @Dima,排序是合乎逻辑的,它不会改变文件本身。
      • 我提到 Beyond Compare 是因为它的 UI 非常方便,您可以通过几乎一键将选定的行从一侧移动到另一侧,因此更改文件的目的是讨论的活动。
      • 如果我将 BeyondCompare 应用于来自不同版本的应用程序的冗长而凌乱的配置文件,它不会像考虑到信息严格 name=value 那样工作(当然 + cmets ) 并且不显示与名称对齐的文件名。这是所希望的。因此,您做出判断,如有必要,请从任何一方复制到另一方并提交。文件可能会更改,但最好以某种“最小”的方式更改。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多