No announcement yet.

Help with compare config

  • Filter
  • Time
  • Show
Clear All
new posts

  • Help with compare config

    I'd like BC to do a quick compare based on file size and if they are the same, then do a binary compare. It seem to me that if the sizes are different, the content *has* to be different, right? I'm excluding text-formatting/whitespace considerations as they don't really apply to my case. This seems like the best way to get a fast and certain comparison.

    I've looked at the options in the Session Settings and is seems so close but not quite what I'm looking for.

    Is my assumption about methodology correct? If so, can BC accomodate this and how would I set it?

  • #2
    If you leave the default settings at Timestamp, Size, and Override Quick Test Results, and also enable the "Content Compare: Binary", it will perform exactly this. The binary compare returns "not equal" as soon as it hits a difference, and if the file size is different, it immediately returns different and moves on to the next file.

    If you need to use one of the other scans (crc or rules-based) you can enable the additional option to "Skip if quick tests indicate files are same", but from your description, you should just use the binary option, since that will find files that are different but equal in size and timestamp.
    Aaron P Scooter Software


    • #3
      Hmmm, maybe I'm not seeing this right but I don't want it to do (or start) a binary compare *unless* the two files have the same size.

      I'm looking for (in pseudo code):

      if File1.exists and File2.exists
          if File1.size = File2.size
              Compare Binaries
              Flag as different
          end if
          Flag as different
      end if
      This seems the most efficient way to compare a large number of files quickly and also ensure that there are no identical-sized files that are different since I can do a very rapid files size compare and fall back to slower binary compare if there's some ambiguity (i.e. file sizes are the same). For example in my code, I may change file content from "if (x == y)" to "if (x != y)" - same file size but quite a difference that one would want to capture!

      I don't generally care for timestamp comparisons for a couple reasons but that's just me and I don't see them as essential given the algorithm I'm looking at above.

      Thanks for the rapid response and great software - I'm a paying customer!


      • #4
        Oops, sorry, I misread this:

        The binary compare returns "not equal" as soon as it hits a difference, and if the file size is different, it immediately returns different and moves on to the next file.

        Yes, that seems to do exactly what I'm looking for, I'll check it out. It's a little ambiguous in the UI and the docs, IMO.


        • #5
          Hi Namlak,

          You're overthinking it. We document the types of content comparison and what the results are (binary equal, binary difference, text equal, text similar, text difference). How we get there is an implementation detail that you shouldn't need to worry about. Rest assured, I take the performance in the folder compare very seriously, and we use a lot of optimizations and shortcuts to keep it as fast as possible.
          Zo P Scooter Software


          • #6
            Hmm, I see the hole in my thinking now.

            As I'm using this as a back up "solution" (long story but I have to do what I can here), all my files have a file-size match except for the changed ones which are only a handful out of thousands.

            Back to the drawing board....


            • #7
              Backup solutions often use the "archive" file attribute. When a file has been backed up, the archive bit is reset. Changing the file sets the attribute. Don't forget that the "Other Filters" tab on the "Folder Compare - Session Settings" dialog will also allow you to include or exclude files based on the "archive" file attribute. You may or may not find this useful when you go back to the drawing board...
              BC v4.0.7 build 19761