Entry 10 — Back in Action
It’s been a while since my last post. Since then, we’ve had Christmas, New Year’s, exams, our Casual Games project to contend with, along with the Global Game Jam taking place last weekend (January 25th-27th). (Check out my game here!)
The Library Folder’s Tyranny Comes to an End
In the week leading up to our first presentation on December 6th (see my previous entry), we were all working fervently to get our demo level ready, at that time we ran into a major source control issue: Unity’s Library folder was not being ignored by our .gitignore. The Library folder contains numerous files that are auto-generated when you open a Unity project. In short, whenever one of us would open the Unity project, 200 or so changes would appear on our GitHub Desktop app right off the bat. These unwanted changes certainly led to us dancing around changes to our test scene on the week of the presentation. All the same, we worked through it that week, having to pull tricks like discarding every change and only restoring the ones we wanted, etc.
Recently, I took a good look at our .gitignore to try and figure out what went wrong. I soon noticed the issue:
One missing “[” led us to some pain last semester.
As seen in the above image, somewhere along the way a square bracket was removed from the line responsible for ignoring the Library folder, hence Git didn’t recognise the command and saddled us with 200+ unwanted changes at every turn. Here’s what our list of changes looked like as soon as we opened Project D:
It’s clear that this would lead to some merging issues.
As soon as I spotted this issue in the .gitignore, I added the square bracket back, thinking that would solve everything, but it wasn’t over yet. After doing a lot of research into the issue, I discovered that Git caches what files it tracks and will continue to track the files you no longer want as long as they’re still cached. Once I figured that out, I installed Git Bash, got to Project D’s repo directory and ran the “git rm -r –cached” command. What happened next was a sight for sore eyes:
The cached Library files are removed once and for all. Good riddance, I say.
When we open Project D now, no changes appear whatsoever (until we make a deliberate change, that is). This is the way it should be. From now on, we’ll be keeping a close eye on our .gitignore.
The Next Step
Now that the GitHub nightmare is over, I’m back to my primary duty: fixing the Enemy’s AI. As I’ve said previously, its phases are not transitioning to each other properly. My first move is to redo its Phases from the beginning and try to figure out what went wrong. I’ve set up a new test room for this purpose:
Hopefully we’ll see some success in this test environment.
Aside from that, we are planning to create a new repo for Project D and import what we want to keep from the old repo so that we can continue on with a cleaner project. The old repo will stand as our prototype build. Also, David has requested that we use GitKraken instead of GitHub Desktop as it should make source control easier for us. Wish us luck this semester!
‘Til next time.