Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Nermal

Moderator
Original poster
Staff member
Dec 7, 2002
21,056
4,654
New Zealand
Hi all,

This isn't technically a Mac programming question (I'm using Windows) but I'm too lazy to find and register on another forum :)

We've been using SVN (specifically VisualSVN Server plus TortoiseSVN) for several years, but as part of a tool review I've been investigating Git. I've installed Microsoft Team Foundation Server 2013 and have created a Git repository, and have then used TortoiseGit to clone it locally. I've then added a bunch of files to the local copy.

The first thing I've noticed is that selecting "commit" doesn't actually seem to upload the files to the server. It appears that I need to "push" the changes afterwards. Does anyone know whether it's possible to condense these down to a single operation, like it was with SVN? I've found a couple of things on Google but they all seem to assume Unix-style tools and I have no idea how to adapt them for TotroiseSVN and Team Foundation Server.

The second thing is that the "push" command is extremely slow. An 800 MB project takes around 50 seconds with SVN, but took a little over 7 minutes to push to Git. Are those sorts of speeds normal, or is there an issue somewhere?

Thanks :)
 
Past user of SVN, current ( about last 7 years ) GIT user.

1) "your doing wrong dummy" ( said like the VVS puppets, tongue in check ).
2) there are differences in the usage of GIT and SVN, in other words, you should not try to use GIT like you did SVN
3) I really cannot explain everything about GIT in this post, I could copy and paste tons of SVN to GIT video tutorials, but your time would be better served with a focused search by you


Really, really short ( meaning vague and not exactly correct) explanation:
SVN = everything stored off of your computer in a central repository
GIT = everything is stored locally, and 'committed' when ready

GIT means faster and more frequent updates for a project, easier to separate and reintegrate alternative workflows ( branches )... for example, Donny really wants to try this kickbutt HTML5 localstorage thing and starts writing tons of code for it, he can keep his stuff local and not 'taint' the central repository, in the end he decides it's crap or cool and can end the branch and get back to work and merge it and get everyone in on the new tech
 
I would advise against doing commit -> push.

commit -> pull w/rebase -> push

In the event that there are conflicts, they're much easier to deal with in a pull than a push, in my experience.
 
Thanks for the responses. As you may have guessed, this was the boss saying "look at Git", but the more I read about it, the more I feel that it's not a good fit for the team. I'll put this down as "resolved" :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.