File should practically be marked as a Binary for that matter


  • Notification Spam Recipient

    Editing an SSIS package to change a flag on a few columns (about 140 in total).
    Checking the Diff to make sure I didn't miss anything, and discovered how futile that would be.

    Keeping in mind this is a 21k LINE file (It's 2MB), and (since we're changing a flag only) there should have been only 142 lines modified in total, I'm at a loss why MS decided it was a good idea to (I guess?) recompile everything upon save?

    What is going on here?



  • Hard to say without seeing the actual differences.


  • Notification Spam Recipient

    @CreatedToDislikeThis said:

    actual differences.

    Essentially, there are the 142 lines that should be part of the diff:

    And then there are all of the GUIDs throughout the rest of the package:

    And then, because there are binary compilations wrapped up in the XML (that get recompiled because raisins):

    Not to mention the random jelly potato re-organization of untouched sections (though this is mostly a minor portion):

    And then we get some random reformatting of XML inside XML:

    I think that's about the sum of the type of changes to the file that were made without me telling it to do so.

    I guess it beats out editing by hand?



  • @Tsaukpaetra said:

    there are binary compilations wrapped up in the XML
    @Tsaukpaetra said:
    XML inside XML
    All you're missing is regex.



  • I've had many more problems with tfs merging than with git. I've even managed to have several functions mixed line by line.. That was annoying as fuck..


  • Notification Spam Recipient

    @swayde said:

    tfs merging than with git

    In this case though, TFS is merely the bringer of the bad news. No, TRWTF is BIDS, that program which decided to do all the above edits from what should have been fairly minimal changes.

    I guess the code equivalent would be you changing a function parameter and the IDE regenerating the names for all your anonymous types, while also extracting your image resources and re-converting them to their same data types (and replacing them, of course), and also applying indentation rules different from the existing ones.


  • kills Dumbledore

    This is pretty much my experience when changing an SSIS package. The actual files are not human readable at all, and even a minor change can modify the entire file. Try checking one out, moving one of the boxes in the visual interface by a few pixels and checking the diff.



  • :wtf: why are you wading through generated code?


  • Discourse touched me in a no-no place

    @Tsaukpaetra said:

    What is going on here?

    While it is quite possible to make XML documents that are sane when you diff them, most programs don't. For example, they might reorder some elements (where the schema says the order doesn't matter) for giggles. Serializations need to be treated as binary unless they've been designed explicitly to be otherwise which includes attention to stable element orderings even of things where the order is technically insignificant. And GUIDs/UUIDs are bad news if they're regenerated.


  • Notification Spam Recipient

    @gleemonk said:

    :wtf: why are you wading through generated code?

    @Tsaukpaetra said:

    Checking the Diff to make sure I didn't miss anything

    Post is not empty



  • @dkf said:

    While it is quite possible to make XML documents that are sane when you diff them, most programs don't. For example, they might reorder some elements (where the schema says the order doesn't matter) for giggles.

    So the question is, why doesn't Visual Studio do XML diffs properly?

    XML was supposed to be this big thing that would be the standard for structured data, and it's actually been adopted as such by in many places (including all Java and Microsoft programming tools).


  • Discourse touched me in a no-no place

    @anonymous234 said:

    why doesn't Visual Studio do XML diffs properly?

    Because it's hard, especially if you don't have the schema? Lots of XML documents are schema-less.

    It's also frequently not that helpful. ;)


  • BINNED

    @dkf said:

    @anonymous234 said:
    why doesn't Visual Studio do XML diffs properly?

    Because it's hard, especially if you don't have the schema? Lots of XML documents are schema-less.

    It's also frequently not that helpful. ;)

    Shortened that for you. 🚎



  • @anonymous234 said:

    Visual Studio do XML diffs properly?

    No one does XML diffs well.

    @swayde said:

    I've had many more problems with tfs merging than with git.

    git is not magic. TFS allows you to use any diff tool you want. Although source code control systems come with diff functionality, all of them allow you to use an alternate tool. So, essentially, they all have the same capabilities.



  • Yeah,but gits algorithm knows when changes were made,and can merge better because of it.. It's not only a merge tool..



  • For a second, I thought you said you were editing an ISIS package.

    Filed under: Like adding a new timer or something?



  • @swayde said:

    Yeah,but gits algorithm knows when changes were made,and can merge better because of it

    Nope. Git does the same well-known three-way algorithm that all modern merge tools do. This is from the git docs:

    @git documentation said:

    It’s worth pointing out that Git determines the best common ancestor to use for its merge base; this is different than older tools like CVS or Subversion (before version 1.5), where the developer doing the merge had to figure out the best merge base for themselves. This makes merging a heck of a lot easier in Git than in these other systems.

    In other words, git is better than SVN was in 2007, but does pretty much the same thing as any of the major versioning systems for the past eight years.


  • Notification Spam Recipient

    @anonymous234 said:

    Visual Studio do XML diffs properly?

    The DIFF isn't the problem. That's working just fine (indeed, all the changes highlighted are indeed actual changes).
    The BIDS program that essentially regenerates the XML file every save is what's not being done properly.
    I only discovered it was regenerating the file when I saved with a piece of encrypted text (a password I guess) and got a new result each time, even if I didn't enter the decryption key (which is weird, didn't expect that).



  • @anonymous234 said:

    So the question is, why doesn't Visual Studio do XML diffs properly?

    It did the XML diff properly... TR :wtf: was the base64-encoded binary blob that was embedded in the XML. How do you diff that properly?



  • @Tsaukpaetra said:

    Essentially, there are the 142 lines that should be part of the diff:
    Pasted image1086x22 3.18 KB
    And then there are all of the GUIDs throughout the rest of the package:
    Pasted image1201x23 4.6 KB

    And then, because there are binary compilations wrapped up in the XML (that get recompiled because raisins):

    And this, children, is why you cannot pay me to do SSIS.


  • Notification Spam Recipient

    @Vaire said:

    why you cannot pay me to do SSIS by hand.

    FTFY. It's almost sane enough. Well.... Until you get yahoos that are fanboys of sequence containers:

    Seriously? Now we're just bloating the code!



  • @Tsaukpaetra said:

    FTFY. It's almost sane enough. Well.... Until you get yahoos that are fanboys of sequence containers:


  • Discourse touched me in a no-no place

    @Tsaukpaetra said:

    The BIDS program that essentially regenerates the XML file every save is what's not being done properly.

    Sounds like it is using different GUIDs for mapping object identities, and reordering stuff for the elements where “the order doesn't matter”. Thankfully, it's apparently not also randomly reordering attributes of elements; that'd be legal, and would totally destroy the usefulness of any diff that wasn't fully XML-aware. Proper XML difference determination is a bit awkward to write, so most tool and IDE programmers don't bother. (I'd definitely be one of that brigade too.)


Log in to reply