The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
It's amazing. GIT is GIT, so it's service provider agnostic. I've had no complaints with TFS doing it.
And the nice thing about TFS-online is the Web feature they provide to edit the code & check-in right there on the portal, the support for comparing change-sets,etc. The UX is great for code reviews. It's almost like using a mini BeyondCompare tool online.
Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.
I find TFS barely adequate for the minimal source control needs, check in check out and branching. Expecting another user to get latest version and have it run is beyond TFS, it always misses some referenced objects.
Never underestimate the power of human stupidity
It depends how many people are working on a project. Git is definitely more suited to bigger teams with complex projects that require branching.
I only recently started working with Git (last 3 months) and it's not that bad, especially if you use a UI like Sourcetree. Git's branching is way better than SVN which I used to use and the Git flow built into Sourcetree works well for features, etc.
I completely agree, but for those out there considering getting into Git, learn the CLI. You're never going to memorize everything, but get the basics and concepts down and remember like everything today, you can find out the exact syntax online. I have to look up stuff for Git (and others things) all the time.
I have found many integrated Git GUIs like in VS can't handle certain things well, and I have to open up the CLI to see what's really going on. However, when it comes to merging files that Git can't handle, I'll take a GUI any day.
GitHub isn't as big as it is for nothing - I think git is pretty much the de-facto standard in a lot of the industry. It can be difficult to use, but once you get the idea of how it's supposed to work and, more importantly imho, use a tool like Sourcetree so that you don't have to remember all kinds of cli commands, it's pretty manageable.
Especially the easy forking and merging is great, or even just switching branches near instantaneously if something comes up. I can also continue using it even if I can't reach my "central" repo (i.e. I can't connect to GitHub for whatever reason), and I can just push my commits later when the connection is back (don't know if TFS can do this these days, haven't used it in quite a few years).
I'm a long time Microsoft programmer who grew up on Visual SourceSafe and then TFS. I had tried SVN, Mercurial, and a couple others, however. One day, I got a new boss who said, "Thou shalt use Git."
It is very different from the centralized systems and required a lot of reading/watching vids, and even now, I still have to look up non day to day commands, but I admit that I have to do that for just about anything now including .NET because I've moved to .NET Core...
But I love it and would never go back to anything. During recent interviews, I always ask what kind of source control they're using, and if it isn't Git, the job don't fit. (Sorry, O.J.)
Another thing about Git is when people talk about getting into programming or ask, "What language should I learn first?" I say, "Any one you want as long as you learn Git first."
Since you mention TFS, I'm assuming you're in the MSFT space somewhere. We use git integrated with VS.
Full disclosure, I wasn't involved with the setup, and we've had a few different repos over the years; that part may be painful, I can't say.
I like it. We've got a pretty nice strategy for making branches for each project that seems to be working well. Within your local branch, you can do a commit when you get to a milestone/need to go to another branch for bug fix/whatever without affecting the remote repository.
In fact, just this morning I did a check-in for my development branch because an alleged bug in our upcoming release needs to be investigated. So, I make a branch off of the release, get that local, and check things out. If a change is, in fact, necessary, I check in in, commit remote, do a pull request to merge that into the release, and that gets deployed for a QA double-check.
When I'm done investigating, I just go back to development branch, build, and I'm back in that change.
I've been using git for two years now and despite knowing it quite well, despise it. Recently, my hate hasn't grown, but only because I'm the only one on my current repository. No more massive merge headaches. No devs wondering why Git suddenly refuses to pull correctly. Not having to spend almost twenty minutes pulling down a fresh copy (Git really doesn't handle binaries very well.)
The worse part of Git is the stuff it fails at, like file renames with changes. Its "integration" with Bitbuck and Jira is pretty shaky. It also encourages what I see as bad practices, such as rewriting history.
TFS, by contrast, uses a workflow I vastly prefer and it just works.
BTW, here's something I've long noticed with Git; developers avoid complex changes for fear of having to do a complex merge. This is exacerbated by the workflow Git imposes. I don't really blame them; at a place I worked last year, one merge failed so badly that ALL commits after it had to be tossed, everything was rolled back to just before the merge.Before any screams the cliche--they didn't know git--they actually knew git better than anyone I know.
We use Mercurial pretty much exclusively at work (my choice, mainly because its ergonomics suit our team better, and it can do everything that we need as well as Git.
However... I use Git for private projects (hello, Github!), and if I were picking a SCM tool today, I'd pick Git. Mainly because it's won the mindshare war really. And also it's got some decent GUI tools (Git Tower, GitKraken)) which take a lot of the pain away... I've even used them to do some radical rebasing which previously would have had me reaching for the git man pages...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
TFS is a little bit easier, but branching is not that great. Use git. Once you understand the difference between commit and push, and you understand the concepts of local and remote repository, it'll be very easy. You'll be happy you did.
I use git with bitbucket (free unlimited private repos for up to 5 user teams) I used to always use the command line though I found that it integrates well with visual studios, sublime text, atom. I also have just started playing around with source tree (same maker as bitbucket) it seems to be a very nice interface and may be very helpful for people who are new to git (it seems very user friendly that is).
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle