Version control integration


#1

We work with TFS and Git.  We modified the juicer code to preserve Visual Studio GUIDS and version control so it did not re-create it each time you save a project.

 

With the latest patch something in it broke.  If we take the time to get it working again, is this something you would be interested in integrating, or would you prefer to do it yourself?  (We don't know the JUCE / juicer system very well, so you might do a better job.)

basically, every time we use juicer to add files, when we save it, we use TFS command line to check out the .jucer file as well as the Builds/VisualStudioXXXX/ .vcxproj, .vcxproj.filters, files.  We then preserve sections of those files when re-generating the files.

I am not sure which version we use, but we pulled it using Git on 10/8/2014.

If someone can tell me how to find the version I can reply.

Thanks,

Ken


#2

If you just mean something like a check for special hidden files which it should avoid deleting, then yes, if you have a suggested change I'd be happy to look at it!

(Not sure why it would have broken recently though, as I don't remember changing anything to do with that kind of file handling for a long time now)


#3

No, it is the contents of the files.

version control information is stored in them and when jucer re-generates them, it looses all source control bindings.  It also looses the application / dll GUIDS.

 

It was code we added to our repository that broke.  We are just trying to figure out how we should move forward so we can continue to update juce without loosing our TFS integration.

I could send you sample project files if you want so you can diff them and see what it looses.

Thanks,

Ken


#4

(It's spelt "lose", not "loose"!!)

But sorry, I don't understand what you mean. Version control info is usually stored in hidden files, and the introjucer has special checks that stop it from accidentally deleting them. That's why I suggested that if you have some wacky source control system that isn't already handled, then please suggest what could be changed to avoid it messing with those files.


#5

This was done using the Express version of Visual Studo 2013 (2010 has the same issue and i have not tried the others)

I pulled the current source for JUCE from the Git repository and compiled Jucer.

 

Created a project using Jucer.

Saved it and opened it in Visual Studio.

Added Solution to TFS and checked it in.

Closed Studio.

Went back to Jucer and made no changes but saved it and opened in studio

 

The bindings to TFS are gone.

 

I am attaching a file showing the diff between the file checked in to TFS on the left and the new file after Jucer saves it again.

 

the .sln file:

The GUID on line 5 is important for DLLs.  It gets changed every time Jucer saves a project.

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeckMinion", "DeckMinion.vcxproj", "{D3ADA7C9-F9AC-99E1-F31E-98F04CB63182}"

The section on 8-15 is for version control in TFS.  it gets deleted

GlobalSection(TeamFoundationVersionControl) = preSolution

                                SccNumberOfProjects = 2

                                SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}

                                SccTeamFoundationServer =

https://mytfsserver.visualstudio.com/defaultcollection

                                SccLocalPath0 = .

                                SccProjectUniqueName1 = DeckMinion.vcxproj

                                SccLocalPath1 = .

                EndGlobalSection

the .vcxproj file:

16-19 are also TFS, but I am not sure how important they are.  They get deleted.

 

     <SccProjectName>SAK</SccProjectName>

     <SccAuxPath>SAK</SccAuxPath>

     <SccLocalPath>SAK</SccLocalPath>

     <SccProvider>SAK</SccProvider>

hmm.  apparently i can't attach the diff images.

they are named slndiff.png and vcxprojdiff.png and are 69KB and 39KB. It does not tell me why they cannot be uploaded 

Ken

 


#6

Ok.. but that's what the introjucer does: it re-generates the VS project files. It has no way to merge its changes with things that you've manually changed in those files, it can only overwrite them.


#7

We modified Jucer to preserve those sections, but with the latest update something in our patch broke.

If we get it working again would you be willing to incorporate those changes?

 

Ken 


#8

Yes, probably.. it'd depend how hacky the changes are!


#9

lol, our first try was a quick hack.

We'll try to design it better and submit it.

 

Thanks for your consideration and when do you sleep?

You always seem to respond so quickly I'm starting to believe you are a JulesBot

 

Ken