Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Arcsech
Aug 5, 2008
Git and SourceTree are great for source code but it has trouble with large binary assets (images, models, etc. y'know, all those things that are really common in game dev) and doesn't allow exclusive checkout, which is helpful when working with aforementioned binary assets because you can't really merge a texture or a model. Lethal trash said he wants to version control all assets, so I'm guessing that's the sort of thing he's having trouble with, and no different client is going to solve those problems.

Adbot
ADBOT LOVES YOU

Inverness
Feb 4, 2009

Fully configurable personal assistant.
I didn't even know SourceTree existed until now. I always just used TortoiseGit and TortoiseHg. I assume this is better?

Arcsech
Aug 5, 2008

Inverness posted:

I didn't even know SourceTree existed until now. I always just used TortoiseGit and TortoiseHg. I assume this is better?

Depends on what you like. A lot of people really like SourceTree, some of my co-workers can't stand it and prefer SmartGit or TortoiseGit. It's worth giving it a shot though.

Stick100
Mar 18, 2003

Arcsech posted:

Git and SourceTree are great for source code but it has trouble with large binary assets (images, models, etc. y'know, all those things that are really common in game dev) and doesn't allow exclusive checkout, which is helpful when working with aforementioned binary assets because you can't really merge a texture or a model. Lethal trash said he wants to version control all assets, so I'm guessing that's the sort of thing he's having trouble with, and no different client is going to solve those problems.

Yup you are 100% correct. If source control protocal doesn't give you exclusive checkout you're then no client will help. Does perforce allow exclusive checkout?

Inverness
Feb 4, 2009

Fully configurable personal assistant.

Stick100 posted:

Yup you are 100% correct. If source control protocal doesn't give you exclusive checkout you're then no client will help. Does perforce allow exclusive checkout?
Yes, Perforce is a centralized system. If you have gigabytes or terabytes of files then it's what you want.

It's also compatible with Git.

Perforce is the name I see tossed around for companies that would need some high quality centralized version control, so I would probably go with it if git was unsuitable. UE4's integration is also a good reason if you use that.

echinopsis
Apr 13, 2004

by Fluffdaddy
I'm thinking about Source Control purely as a backup (I am a 1 man thing) so based on this discussion I can't work out which is the easiest and best AND FREEEST for UE4

Inverness
Feb 4, 2009

Fully configurable personal assistant.

echinopsis posted:

I'm thinking about Source Control purely as a backup (I am a 1 man thing) so based on this discussion I can't work out which is the easiest and best AND FREEEST for UE4
Git would work fine for that since you wont be passing huge repos around among a team.

echinopsis
Apr 13, 2004

by Fluffdaddy

Inverness posted:

Git would work fine for that since you wont be passing huge repos around among a team.

Thanks. I believe I need a plugin for UE4 right?

by Git do you mean GitHub? Or is that just a "brand" of Git? Or do you recommend another one?

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

SourceTree is good, not great, but for most things as a GUI it's "good enough". Ironically it's coded not very well, sucks RAM if left open too long, and can slow your system to a crawl on bigger commits. But mostly it works.

When I worked in games they used Perforce, mostly because of the large binaries reasons mentioned above. If that's not a concern, or if your binaries don't change often, GitHub is probably Good Enough.

Xerophyte
Mar 17, 2008

This space intentionally left blank

Inverness posted:

It's also compatible with Git.

That depends on what you mean with compatible, I suppose. Unless there's been some advancement here that I don't know about (which would be nice), compatibility means using Git Fusion or git-p4. They work, kindof, but far as I am aware they both mirror directories on some workspace on a Perforce server as a set of local git repositories, and translate push/pulls in those git repos as operations on the Perforce server. This makes them come with plenty of caveats. They're no better at binary files or really big repos than git in general, git-style branching only works locally so you can't really deploy a typical git "branches are cheap" workflow for collaboration, Fusion is linux only, etc. In many ways you get the worst of both worlds: all the usual limitations of git with only a subset of the branching and distribution features that make it good.

I still use git-p4 and SourceTree for some projects at work (which is on windows, so I admit my experience with Git Fusion is very limited) because I vastly prefer git to P4 when working with source even if it is just locally. We also have P4 directories where cloning them with git-p4 took me 10 hours and doing a single commit on the resulting local repo took around 10 seconds. Sure, I can get around that by being careful about not including binary test scenes and similar in the sync'd workspace in question and then symlinking Perforce versions of those parts, but it's fiddly and I might need to reset and re-clone the entire thing if someone starts doing a bit too much binary file twiddling in the parts I'm covering with git. It's definitely not a plug-and-play thing and I wouldn't recommended git-p4 as a company solution over just picking whichever VCS fits your situation better.

Of course, if it's a personal project then do whatever. I just code in a Dropbox folder for most short things I write for myself, if you don't need to coordinate with other people then it doesn't matter much.

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Once you get to be fluent with it, version control is pretty great even for solo work. Diffing against the last time something worked, putting a bigger change aside to fix something small, etc.

Inverness
Feb 4, 2009

Fully configurable personal assistant.

echinopsis posted:

Thanks. I believe I need a plugin for UE4 right?

by Git do you mean GitHub? Or is that just a "brand" of Git? Or do you recommend another one?
Git is a distributed version control system. GitHub is a website for hosting Git repositories and providing features around that.

You don't need to use GitHub. You can create a Git repository and just keep it local without pushing it anywhere. You don't need to use GitHub or Bitbucket unless you want to back things up externally and share with others. GitHub does not actually allow you to create private repositories for free. Bitbucket does though.

echinopsis
Apr 13, 2004

by Fluffdaddy
gently caress I tried to install git and the plugin wouldn't work so I uninstalled it and now my project won't start up without it! shiieeeeeet this is why I needed it in the first place

Imma copy all the stuff but replace the project file see if that fixes it

echinopsis
Apr 13, 2004

by Fluffdaddy
God thank gently caress for that. You should be able to turn off plugins somehow without having to go into the editor because I've done this before with another plugin that didn't work

Inverness posted:

Git is a distributed version control system. GitHub is a website for hosting Git repositories and providing features around that.

You don't need to use GitHub. You can create a Git repository and just keep it local without pushing it anywhere. You don't need to use GitHub or Bitbucket unless you want to back things up externally and share with others. GitHub does not actually allow you to create private repositories for free. Bitbucket does though.

Righto..

I think for my sanities sake I will try to use one UE4 handles natively

Inverness
Feb 4, 2009

Fully configurable personal assistant.
Someone might have made a Git plugin for UE4.

Edit: Now that I read what you said in more detail. Can you elaborate on the trouble you had. You first should learn to use Git before you try to integrate it into your workflow. Just tossing it in is asking for trouble. I don't even know how UE4 handles version control.

If you tried to get a Git plugin without actually getting Git you probably had trouble.

echinopsis
Apr 13, 2004

by Fluffdaddy

Inverness posted:

Someone might have made a Git plugin for UE4.

Edit: Now that I read what you said in more detail. Can you elaborate on the trouble you had. You first should learn to use Git before you try to integrate it into your workflow. Just tossing it in is asking for trouble. I don't even know how UE4 handles version control.

If you tried to get a Git plugin without actually getting Git you probably had trouble.

Because I "turned on" the plugin in UE4 it then expected it to be there next time and when it wasn't it wouldn't open. I had installed GitHub, assuming that would install Git

I gave up. I am a failure. I just using dropbox :smugmrgw:

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Subjunctive posted:

Once you get to be fluent with it, version control is pretty great even for solo work. Diffing against the last time something worked, putting a bigger change aside to fix something small, etc.
You forgot the biggest advantage: Being able to easily revert back to a good version when you save some big stupid mistake.

nolen
Apr 4, 2004

butts.
Seeing a lot of Git talk and no mention of Tower:

http://www.git-tower.com/


It's unfortunately Mac only and not free, but it was worth every penny during their last sale.

Corla Plankun
May 8, 2007

improve the lives of everyone
I literally just heard of tower for the first time 3 minutes ago when I read your post but I have two guesses with regards to why nobody gives a poo poo about it...

nolen
Apr 4, 2004

butts.

Corla Plankun posted:

I literally just heard of tower for the first time 3 minutes ago when I read your post but I have two guesses with regards to why nobody gives a poo poo about it...

Yeah. It's an easy decision when your job chooses your platform and pays for the software, I guess.

lethal trash
Feb 23, 2002
You will be subjected to freezing experiments in Dachau.

Inverness posted:

Why are you leaving out Perforce? It's free for up to 20 users. Do you have more than that?

We have 15ish people depending on interns. I have tried perforce a number of times, and I never really liked the interface or the workflow. It is also not distributed so you have one server for all your assets as far as I know. Plastic SCM has a workflow much closer to git and is distributed and their interface is pretty sleek. I have also heard (but not understood why) that a lot of custom stuff has to be done to keep a perforce repo working.


Stick100 posted:

You might want to try a different git client. I found the git client from Github (it tells you nothing about what went wrong) to be horrible and most of my complaints with Git went away as soon as I started using SourceTree. Most people I know either use SourceTree or the Git command line itself.

Also what system are you using Unity or UE? If UE you might want to consider Peforce, it's what Epic itself uses and has a direct integration into the editor.

We're using Source Tree, and while it is considerably better than other git clients I still have a few qualms about it. We're in Unity so there are some options for in editor version control clients for both Perforce and Plastic.

Just to add, our project is a decent size already and git chokes on this stuff constantly. We've have the remote repository corrupted multiple times, and I probably spend a few hours a week helping troubleshoot git issues. I'm sure whatever we pick will have problems, but git just doesn't seem made to handle the our 50gb repo, which will grow to many times that size by the end.

Git for me on personal projects has been nothing but great, but as you get lots of binary assets and people working it becomes quite a mess. Plastic seems to be relatively unknown but they have some impressive tests and claims about the size and quantity of files the server supports.

lethal trash fucked around with this message at 12:08 on Aug 30, 2014

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch
What about SVN if you're on Windows with something like Tortoise?

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

Yodzilla posted:

What about SVN if you're on Windows with something like Tortoise?

What benefits does SVN offer over something like Git? From my experience SVN is lacking in pretty much every way.

Paniolo
Oct 9, 2007

Heads will roll.

lethal trash posted:

We have 15ish people depending on interns. I have tried perforce a number of times, and I never really liked the interface or the workflow. It is also not distributed so you have one server for all your assets as far as I know. Plastic SCM has a workflow much closer to git and is distributed and their interface is pretty sleek. I have also heard (but not understood why) that a lot of custom stuff has to be done to keep a perforce repo working.

Not being distributed is the entire point; as far as I know there's no good way to do exclusive checkout in a DVCS, which is a big problem with the model when you have non-mergeable files. Keep in mind that the distributed model was invented to deal with open source projects which have no central authority and are checked out and forked by lots of independent people. It has some cool properties even when working on a single team, but be wary of going down the road of "I need DVCS because it's trendy!"

xzzy
Mar 5, 2009

down with slavery posted:

What benefits does SVN offer over something like Git? From my experience SVN is lacking in pretty much every way.

It's older, and a bit simpler to grasp the concept. The natural progression of SCM over the years went something like rcs -> cvs -> svn -> git.

I can't think of any technical reasons to prefer SVN over Git.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

xzzy posted:

I can't think of any technical reasons to prefer SVN over Git.
Doesn't SVN do locking?

Obsurveyor
Jan 10, 2003

Couldn't you use git's hook system to do locking?

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch

roomforthetuna posted:

Doesn't SVN do locking?

It does. And from my experience it also handles large files better, two things he was looking for.

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

xzzy posted:

It's older, and a bit simpler to grasp the concept. The natural progression of SCM over the years went something like rcs -> cvs -> svn -> git.

Is it really simpler? SVN is kind of an rear end in a top hat if you ask me. CVS isn't any simpler or easier than SVN for that matter.

I'm admittedly a pretty big git fanboy, but there's really no reason to install SVN in this day and age.

Hughlander
May 11, 2005

Obsurveyor posted:

Couldn't you use git's hook system to do locking?

Not typically. Usually you want to lock before you waste your time doing a non mergable edit not long after you did and now you are ready to push to the remote server.

At work though we talked about having our tools use a Redis database to simulate locking in a git environment.

TheresaJayne
Jul 1, 2011

xgalaxy posted:

The only git GUI clients I recommend are Sourcetree and SmartGit.

what about tortoise git?

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
I can't offer a comparison with the others but I've been using Git Extensions and it seems OK.

Sjonsson
Oct 7, 2013

"Common sense is the collection of prejudices acquired by age eighteen."

Stick100 posted:

Agreed Git + SourceTree + Bitbucket is the best combo I've found. It's 100% free for up to 5 users after that it's cheap. Everyone loves github but the lack of free private repos put me off.

If you feel like using SVN you can also use the way I figured out.

Hamachi + SVNTurtoise

I even made a guide for it some time ago.

https://docs.google.com/document/d/1d24QLvPKEOj2LU9_Ms-dYqlWiGfOCOEPNYQmrk_Z0iU/edit

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

OneEightHundred posted:

I can't offer a comparison with the others but I've been using Git Extensions and it seems OK.

On windows I prefer gitextensions as i've had great success getting clients to switch from SVN because of this tool. I also like tortoiseMerge but requires you to install the entire tortoiseSVN package.

xgalaxy
Jan 27, 2004
i write code
For manual merging and diffing nothing beats BeyondCompare. Especially now that they have official OSX support. BeyondCompare has been around for over 12 years and still nothing comes close to the level of features and polish that program has. I'm actually kind of sad I don't get to use it as often as I once had because GIT is so good at merging.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

TheresaJayne posted:

what about tortoise git?
TortoiseSVN is great, but TortoiseGit is awful last I checked. The interface is just bad, and it doesn't expose most of the featureset of git.

Definitely go Sourcetree.

The King of Swag
Nov 10, 2005

To escape the closure,
is to become the God of Swag.

Shalinor posted:

TortoiseSVN is great, but TortoiseGit is awful last I checked. The interface is just bad, and it doesn't expose most of the featureset of git.

Definitely go Sourcetree.

SourceTree just had a major update too, and I'm really digging the new interface improvements.

rarbatrol
Apr 17, 2011

Hurt//maim//kill.

Yodzilla posted:

What about SVN if you're on Windows with something like Tortoise?

IMO if you're on windows and find git or svn lacking, it's worth trying out mercurial. It's well supported on windows and similar enough to git not be a big hassle to switch (granted, there are some subtle differences). Anyway, there's a bunch of extensions available so I'd guess somebody has made a file lock extension by now.

fake edit: yep, don't know how good this is, but it's a thing: http://mercurial.selenic.com/wiki/LockExtension

Stick100
Mar 18, 2003

down with slavery posted:

What benefits does SVN offer over something like Git? From my experience SVN is lacking in pretty much every way.

In many ways you're asking whats the benefit of a Version Control System vs a Distributed Source Control System. There are many benefits to having a single source control server, these include exclusive locks and also maintenance/maintainability at scale.

The GIT DVCS means each and every single computer maintains the entire history of the project. This is great for small teams and disconnected workflow (you can work without network) however this becomes unworkable as simple things like changing a file format all of a sudden take your git project from a 20GB project to a 35GB project. Oh then maybe someone changes it back (but without a revert) now you have a 50GB project.

This tax can kill your history. There are ways of purging history, but most everyone I know who has hit this wall ended up deleting the .git folder and making a new repo. This has the essence of deleting the entirety of the history (in that repo). It was a drastic action but required because they didn't have big enough SSDs to hold the project or didn't want to download 120GB of files/history just to work on a 20GB project.

Git is not the end all, but it's often the best solution for small teams/projects. Nowadays code is so small and the source control is so important that Git is usually the best solution for code but has weakness with large binary assets compared to the other solutions (being as source control does nothing for them and is usually optimized as managing source, not assets).

This is likely why EPIC uses Perforce internally, but has a bot that streams out the code changes (and only code changes) to the Github repo constantly. They then have to make binary drops every couple days to let people build.

Adbot
ADBOT LOVES YOU

Stick100
Mar 18, 2003

Arcsech posted:

Depends on what you like. A lot of people really like SourceTree, some of my co-workers can't stand it and prefer SmartGit or TortoiseGit. It's worth giving it a shot though.

Also don't dismiss the command line, it works surprisingly well and I've met more devs that use the command line git than any client. Personally I like Sourcetree because I think it's easier for standard operations commit + push in one go and pull with no conflicts but the command line seemed more useful for cleaning up issues than anything else.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply