• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Question - IDE branching with GIT version control

B

bluepill

Guest
Hi,
I'm no expert with using GIT but I'd like to try and using branching in my GMS2 projects. I'm using the inbuilt GIT support in the IDE. Unfortunately I haven't been able to find any information about how to do branching with it though. Does anyone know if it's possible; and how?

Thanks
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
There is no current way to add branching through GMS2. It is on the "todo" list for the future, but I can't give a timescale for when that will be... However there is nothing to stop you creating a branch outside of the GMS2 IDE though and then using that in GMS2.
 

gnysek

Member
You can manually, but... I would not recommend using branches in GMS2, as because of file structure and random GUIDs, if you delete anything on master branch or reorder existing items (resource tree, room editor) on new branch, you may never be able to fully merge it, even manually. I wish you luck to merge rooms in this case... I already have a rooms with 100000 lines long JSON data... moving 20-30 things may cause you to spend whole day to merge this properly.

The JSON file structure of GMS2 seems to be much more worse than GMS 1.x XML files (especially because last element in JSON file shouldn't have a comma), and random GUIDs doesn't help to manage this.
For example in "views" files/attributes there are written positions of things in resource tree, however they are all referenced by GUID instead of filename (don't know why, since you can't have two same files on disk). Using path like "sprite/spr_name" would be much much more readable, but YYG choose another, weird way.
 

zbox

Member
GMC Elder
Wow that really sucks... I mean GMS1 inbuilt Source control was always a** too (no offence - it is a statement of fact) but at least you can use an external pretty comfortably
 

gnysek

Member
I would understand ignorance to some of git features back in 2012 when I was working at YYG, and we were mainly using SVN*, and they even made some small improvements, but since guys there switched to GIT at least 2-3 years ago and from mantis comments I see they are using branches and are merging bug fixes without problems (as in every team project nowadays), I can't understand how they could broke it so much in GMS2. I've added my two cents during beta period of GMS2 last year, but they said "we spent lot of time to project it, and in our opinion it's good". For 10 months I didn't saw any worth mentioning enhancements yet, and in fact GIT can be only used as "backup" option instead of for what really GIT should be used.

*even if, I think that at least core team was very familiar with GIT at that time...
 

GMWolf

aka fel666
Honestly I don't understand why HUH still go with a central file architecture.
Just use the file system already! No need for UUIDs, super easy merges... etc.

Even on well established software like VS, I hate doing Git merges due to the central solution file. It's messy and unnecessary.
 

gnysek

Member
Honestly I don't understand why HUH still go with a central file architecture.
Just use the file system already! No need for UUIDs, super easy merges... etc.

Even on well established software like VS, I hate doing Git merges due to the central solution file. It's messy and unnecessary.
New resources tree allows:
- ordering resources as you want
- creating more than one resource tree per game

With reading from dir/file structure, those two features need to be gone from GMS2, but in fact all the issues are mostly caused by them (except of room editor instance placing, which in fact could also be divided to files - dir == layer, one file == one instance - and that would solve problem).
 
B

bluepill

Guest
Thanks for the info. I appreciate the help.

I must admit I'm disappointed that branching isn't a workable option with GMS2. Although it's not really a surprise since I couldn't find any documentation about it.
 
Top