This is why you use source control

See the node graph below? Now imagine everything in it suddenly unlinked through some random bug and you accidentally hit save. Pretty much game over, right?

Nope, because you used a source control system like Git or SVN and were able to revert the file to its working state.

Source control saved my *** tonight!

://i.imgur/RMAyQy7.png

Source Control FTW! :slight_smile:

Sounds plausible ^^

You use Git or SVN? Why not Perforce?

:stuck_out_tongue: That’s why I use source control and auto save

Yes indeed.

I use Git, I much prefer it. I haven’t used Perforce before though - doesn’t it cost money?

I tried SVN around about 4.1 and I found in UE it was too slow to even consider using. has probably been fixed since then though.

No, Perforce is free for up to 20 users.
Is it difficult to set up source control using Git? Because Perforce is very complicated in my mind… :wink:

That’s awesome! I’m glad you’re here reinforcing the idea of source control! :slight_smile:

is a very important thing to do for anyone working on a project. I’d even say, if someone didn’t want to go through setting up source control through SVN, Peforce, Git, or any other option, just taking a moment and making a clone of your project occasionally is great as well!

For instance, I have a test project that I add to occasionally when helping users figure something out, when I’m testing community tutorials, or just wanting to set something up for my own test purposes. With project I keep a text file that is my change log. I’ll add to that when I do any updates. Before I add to the project I’ll make a clone of it in case I do anything stupid or break something. It has happened a couple of times and I’ve been thankful to have a back up. Granted I don’t have a significant project here but I don’t want to lose anything either!

I don’t do memes often but is how I feel when I’ve lost my projects in the past :slight_smile:

Double-facepalm.png

Rakantor,

It is quite easy to use Git for your UE4 project. I use Bitbucket and their visual tool SourceTree to manage my repositories (including branching). Within Visual Studio, I use Git Extensions, although I can manage the whole thing from SourceTree. I had a problem recently where I decided to rework some classes in C++ but found that when I tried to open the blueprint that derived from the old class, I got an error. It was frustrating to not be able to re-parent the blueprint to fix the error, but I reverted to my previous commit and made my changes in a more UE Editor-friendly way. Definitely source control FTW!

Dean

Edit: There is an experimental Git plugin for UE4 but I don’t use it. Therefore, I cannot “diff” assets from within the engine. If is important to you, they you may want to stick Perforce or SVN. There is also a Mercurial plugin but I haven’t tried it.

We use Tortoise SVN.

://tortoisesvn.net/

Big reason it’s free to use even for commercial work and no limits.

To round things off we also use WebDev to back up critical files as well share works in progress.

Overall though remote source control is rather weak when it comes to the needs of both code and content and has some rather serious issues yet to be addressed and more so when it comes to the closed edit environment like UE4.

I don’t use SC but autosave saved me the other night because for some reason UE4 can’t handle my custom nodes :confused:

Hi,

I create regular backup copies of the entire project folder.
Does that count as version control?

Cheers,

Sure as long as it’s not on the same computer.

As long as by regular backups, you mean MINIMUM once a day (more the better, autosave only goes back so far), then yes that would be “manual” source control. :stuck_out_tongue:

I have been trying perforce but just can’t get used to it for some reason… I decided to switch back over to SVN server / ToroiseSVN combo, I also use Ankhsvn with visual studio, I guess I’m just to used to it now to change.

It may not be as tightly integrated with the engine, but it works for me! :slight_smile:

Edit: Also, it can be the same computer, but make sure it is a different hard drive! An external drive would be a good purchase to save the data to if you don’t have a second computer around.

Hi,

I am currently doing manually, but I thought about writing my own little version control program. (Im a long time delphi programmer).
From what I read here, it seems that these version control software systems are very complex and difficult to use.
Should my version control system be more easy to use, I would gladly share it withy anyone interested.

Cheers,

To add to the conversation a bit something else to look into is a solid source chain.

A source chain differs from version control as it creates a link between the host application used to make a given element that can be updated through iteration. It’s also a form of per item version control if something does get messed up you can always reload the asset from the source.

A good example is I needed to migrate some animation blueprints from a previous version but along with the migrate it pulled an older player model back to a previous iteration. To put it back to what it should be I just had to reload the model from the FBX source.

I need to start learning Git…

KVogler,

Version control is much more that just regular snap shots (backups) of your project. As an example, with version control, you can create a new branch in your project where you can experiment with new ideas without worrying about breaking the main () branch. When you are satisfied with the results, you can then merge them back into the branch which, depending on the magnitude of the changes, could then be a new version of your project. If you look at how Epic manages the C++ source code on Github, you’ll see that they have a number of branches which, when mature, get merged back into the branch, and when all of the branches are merged back in, they create a “release” version branch (i.e. version 4.4). is really practical if you there are multiple people working on a project, but I find it useful as a solo developer.

Git is very easy to set up, but obviously at the moment you can’t merge in changes from other users into your project on a per-object basis like you probably can with the UE-integrated stuff. I actually wish Epic had implemented Git as well because it’s far, far better than SVN.

One of the reasons I went with Git was because I could host my own repo on a Digital Ocean droplet, where I get about 5MB/s upload speeds to. I don’t usually get those kinds of speeds to bitbucket or github, so I figured perforce would end up being the same.

Incidentally, if anyone’s using Git on their actual UE content project, uassets and all, you have to do a couple of other changes:

Create a file named .gitattributes in the root of your project:

Paste the above into it.

Once that’s been done you should be able to commit your repo to a basic $5 Digital Ocean Droplet without an malloc error. (here’s my sneaky referral link): https://www.digitalocean/?refcode=cf962a7c910a

More info about malloc errors here: ://stackoverflow/questions/8855317/git-push-out-of-memory-malloc-failed

Do use source control. It keeps the entire history of everything you’ve ever done, so you can go back to any version of any file in your project. The end result is it also only stores changes between revisions, so your history is much smaller in disk space than a new backup each day would be.

I am sneaky and I also save my project into dropbox and use pack-rat because you can never have too many automated backups. I refuse to entrust my data to any single backup scheme.