Adding a framework changes 1000 lines

All I did was add a few frameworks to an OS X export target in IntroJucer, and it ended up rewriting AppConfig.h, JuceHeader.h, the Makefile, the Visual Studio project file, and the .rc file. Why?

Why not? Why does it matter how many lines were changed?

Because files unrelated to the change appear as if they were modified in the commit log. For example, I just opened up the .jucer file to add a few linker flags to the Makefile export target. Then I press “save” and now resources.rc, the .vcxproj, and the .pbxproj appear modified to git status.

Why should files unrelated to the change get modified?

It doesn’t just change files randomly. If something got changed in a file, then presumably the code is there for a reason.

I agree, my presumption is that there is a reason for the change. But I can’t find it. Check out this commit:

All I did was modify the .jucer file to add some frameworks to the OS X targets. Of course the .pbxproj is different since we expect it to have the new frameworks added. But the .vcxproj changed as well, along with everything else produced by IntroJucer. Is this expected behavior?

Just looks to me like your diff tool just did a crap job, making it look like everything’s changed, when in fact not much really has.

Fair enough. So let’s forget about the quantity of the change and instead focus on the quality. Why should the Visual Studio projects have changed at all?

I don’t know, but surely if you look at what the differences are, that’ll answer your question? Maybe I updated the introjucer since the last time you generated those files.

I don’t see any difference. Could it be line endings?

Yeah, maybe.

A lot depends on how you have .gitconfig setup. I generally don’t get line endings and whitespace showing up as false commits.


I have core.autocrlf set to true

Are you perhaps mixing using the Introjucer on mac and on pc? :slight_smile:

  • bram


there you go…
osx and windows version of the introjucer generate different endlines!
I flagged this before, …

  • bram

actually… I didn’t:
I was actually complaining that the line-endings were the same :smiley:
so, um, … never mind me!

  • bram

Nope. The end-lines that the introjucer generates are the same on all platforms. Most likely is that some other editor that Vinnie is using has converted the endings.

Like I’ve mentioned elsewhere, I use a little app that scans for and replaces any rogue end-lines before I check anything into GIT, to catch anything like this that editors may have secretly changed.