Warning: If you are not using source control - go learn it NOW

Not really sure what happened. The build pipeline for the Lifeboat helper app automatically launches the Desktop project. Was just working on the helper, made a new build, and the build pipeline alerted me that Lifeboat.xojo_project did not exist. I go to check my filesystem and the whole Lifeboat folder was empty.

I suspect something to do with having both projects open. My license did not magically deactivate (as happens sometimes, forcing save as binary).

Thankfully I’ve only lost a few minutes of work, but holy cow I thought it worth reminding people to use source control because I know many of you do not.


tl;dr - Just minutes ago source control / git saved my behind.

12 Likes

Not saying that it is related, but I’ve heard histories like that due to Apple synchronizing iCloud in some mad way, and the cloud decided that a file did not exist and synchronized a “delete” to the original folder.

I appreciate the input. I do not use iCloud drive for that reason.

2 Likes

Thanks for the remainder. Personally, I just use another disk as a backup (I could do anything to avoid those overcomplicated source controls).

I would say it’s no more complicated than installing a second hard drive and setting up an intelligent sync/backup process for it.

Please see here: Project format - #26 by Sascha_S

2 Likes

I’m a fairly recent convert to Git, and it has also saved me considerable grief many times.

3 Likes

I really wish I could find a git tutorial that is Xojo focused. Maybe one exists, but I have not be able to find it.

git mystifies me. I’d love to be able to work to figure it out, but in a context that I’m familiar with.

But, that’s a me problem…

1 Like

I remember seeing a video on the Xojo YouTube channel.

It’s really as easy as described here. You should just try it. :slight_smile:

Because i’m “famous” for my quick&dirty solutions, i did a short video about the above described steps. :slight_smile:

https://youtu.be/Nf8KyD0-Uns

2 Likes

This one?

https://youtu.be/D_iMQAjaxLA?si=tzUqjk82Gh7_9elv

2 Likes

Interesting. I never found that video. I will look into it more. As well as consider things from the way @Sascha_S describes them.

Thank you!

1 Like

Thank you. Please ask if you encounter any issues. Asking for help when needed is smart, not asking is … not so smart. :wink:

1 Like

Today, Git saved my day again. I had to repeatedly jump back and forth between a two-month-old version of my source code and the current version to find a bug, across different Xojo versions and plugin versions.

Checking out different commits made this easy, without having to manage additional copies of my source code in new folders…

Check out version X, test with Xojo version Y, check out version X, test with Xojo and plugins in version Y, etc. :slight_smile:

3 Likes

While we are chatting about backups and source comparison, let me just mention Arbed from TT, which I use for comparisons and other work, and find invaluable.

2 Likes

I have had a license since 2015. :+1:

Thanks for reminding everyone, Tim!
I’ve also been saved many times.

Git is peace of mind. Working without Git is a trapeze without a safety net.

If there are 2 devs on a project, then it’s mandatory. We shouldn’t skip it when we are working on our own.

Just seeing the code changes you made yesterday or last week, or 5 minutes ago is indispensable.

It’s not just for code, you can use Git for versioning images, documentation, notes, etc.
It is also great for finding changes you’ve accidentally made to a UI.

When something goes wrong, Git’s there to immediately get you back working, instead of the stress of scrambling to look for backups or old copies.

2 Likes

Two+ devs in the same project in Xojo seems a nightmare to me.
Xojo seems prone to break things merging contents, specially due to the many Xojo internals only as #tags #flags etc that only the IDE knows what they are, so it needs someone coordinating what can be touched and what can’t at one time (like separate modules) to avoid the clashes like a cryptic code changing and you don’t knowing which values to choose for the conflicting line.
The good part is that using a VCS you can revert the mess, research the corrections, and try again.