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
Sneaking Mission
Nov 11, 2008

Article: Why I don't like git

Contents: Installer for the Windows client tools is confusing

Conclusion: use subversion

Adbot
ADBOT LOVES YOU

Captain Corny
Dec 16, 2000

Sneaking Mission posted:

Article: Why I don't like git

Contents: Installer for the Windows client tools is confusing

Conclusion: use subversion
Good example of what I call "the attitude."

e: here's the article again for the new page http://dikhoffsoftware.com/2011/04/why-i-dont-like-git/

Captain Corny fucked around with this message at 18:39 on Apr 14, 2011

epswing
Nov 4, 2003

Soiled Meat
Your article should be titled "Why I Don’t Like the Git Installer" which basically has nothing to do with Git as a source control application.

While you have some valid points about the installer as a first-time user, you later say

quote:

...Git has a two-step method of checking in source. First, you check in your source in your local repository. Second, you merge your local repository with a server. While there are definite pros and cons to this approach that are most certainly debatable, the only thing I see in the practical sense is that, with Git, I need to take two steps whereas I can get the same result with SVN in one step...
which tells me that you don't really "get" distributed version control. So...it's hard to read the title as "Why I Don’t Like the Git" when in reality you don't really understand dvcs.

Star Warrior X
Jul 14, 2004

Captain Corny posted:

I am ignoring a lot of the benefits of Git... because they are not really that relevant to me.

Why did you try to get and use Git if you do not want any of its features?

Scaevolus
Apr 16, 2007

Help, an installer asked me to make a choice about how to install something!

quote:

Git pulls the entire repository to the hard disk of the user, so that all versions of all files are on your own system. The advantage of this is that you can do version control while being offline. That’s pretty nice, but not really relevant to my situation. I’m almost never offline when I’m coding. So I will be dealing mostly with the disadvantage of this approach: a lot of wasted hard disk space.
This is wrong, SVN wastes a huge amount of space, even though it doesn't it doesn't have the complete history.

According to this, git averages 1/2 the size of svn: git's versus svn's storage efficiency

quote:

All projects for which git is less storage efficient, are smaller than 100Kb. The projects for which git is most storage efficient (up to even 6 times for a certain C# project), are all of medium size (10–100MB) and code-heavy. For the other projects, which are blob heavy (eg. images), git and subversion are close (git beats svn by ~20%).

Scaevolus fucked around with this message at 18:48 on Apr 14, 2011

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe
I disagree with the choice of the title as well. You seem to be projecting the installer's failings on the entire software without ever mentioning what your problems with git are (Other than the two step commit), just like the Linus video you quoted.

Captain Corny
Dec 16, 2000

epswing posted:

Your article should be titled "Why I Don’t Like the Git Installer" which basically has nothing to do with Git as a source control application.

While you have some valid points about the installer as a first-time user, you later say
which tells me that you don't really "get" distributed version control. So...it's hard to read the title as "Why I Don’t Like the Git" when in reality you don't really understand dvcs.
You're essentially correct in your analysis. What I was trying to point out is that my interactions with the installer and my first steps with git bash were so bad that I lost all motivation to explore the rest, and that it made me very cold to the idea of distributed version control. I think I made it clear from the start that I didn't have a problem with the software itself.

Captain Corny
Dec 16, 2000

Star Warrior X posted:

Why did you try to get and use Git if you do not want any of its features?
A team at work was already using it, and I got associated with it for some time.

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe
Well if your idea was to explore a DVCS on Windows, then your first failure was picking git. Mercurial has had great windows support from the beginning and even has the useful TortoiseHG interface (if you are used to using TortoiseSVN). Plus there is a mercurial plugins for almost every IDE which means you don't really need to deal with the command line.

Sizzlechest
May 7, 2007
I had used git on Linux and through Cygwin. I had no idea the windows installer was so horrific.

SVN can do shallow checkouts, but if you intend on doing merges, it can cause problems with merge tracking.

Scaevolus posted:

This is wrong, SVN wastes a huge amount of space, even though it doesn't it doesn't have the complete history.

According to this, git averages 1/2 the size of svn: git's versus svn's storage efficiency

I think he was referring to the disk space on the client, not the server.

Captain Corny
Dec 16, 2000

MEAT TREAT posted:

Well if your idea was to explore a DVCS on Windows, then your first failure was picking git. Mercurial has had great windows support from the beginning and even has the useful TortoiseHG interface (if you are used to using TortoiseSVN). Plus there is a mercurial plugins for almost every IDE which means you don't really need to deal with the command line.
Right, but I didn't really have any choice. It just saddens me that Git apparently was designed for Linux only, and that any use for it on other (much bigger) platforms was ignored because of some misplaced and immature pro-Linux bravado. It's just a dumb strategy to follow and even for that reason alone I don't like Git.

Sizzlechest posted:

I think he was referring to the disk space on the client, not the server.
Yep.

mr_jim
Oct 30, 2006

OUT OF THE DARK

Captain Corny posted:

Right, but I didn't really have any choice. It just saddens me that Git apparently was designed for Linux only, and that any use for it on other (much bigger) platforms was ignored because of some misplaced and immature pro-Linux bravado. It's just a dumb strategy to follow and even for that reason alone I don't like Git.

Yep.

It wasn't "bravado". Git was designed by Linus for a specific purpose: to facilitate the development of the Linux kernel. So, no, he didn't really consider Windows when designing it.

HFX
Nov 29, 2004

Sizzlechest posted:

I had used git on Linux and through Cygwin. I had no idea the windows installer was so horrific.

SVN can do shallow checkouts, but if you intend on doing merges, it can cause problems with merge tracking.


I think he was referring to the disk space on the client, not the server.


This is only true until you start having to maintain 3-4+ branches on the same client machine. At that point git becomes faster, smaller, and easier to use.

Sizzlechest
May 7, 2007
Captain Corny: If it's any consolation, there's always git-svn and Subversion 1.7 will have some long sought-after features like a single .git.svn directory for metadata and performance improvement.

HFX posted:

This is only true until you start having to maintain 3-4+ branches on the same client machine. At that point git becomes faster, smaller, and easier to use.

That depends. If his checkout is extremely shallow for all branches, then probably it will be faster than git.

Sizzlechest fucked around with this message at 19:25 on Apr 14, 2011

HFX
Nov 29, 2004

Sizzlechest posted:

If it's any consolation, there's always git-svn and Subversion 1.7 will have some long sought-after features like a single .git.svn directory for metadata and performance improvement.

I've used it before. My experiences where less then stellar especially in the way most SVN users expect things to work (single large commits, no renaming of files, etc).

Sizzlechest posted:

That depends. If his checkout is extremely shallow for all branches, then probably it will be faster than git.

It might have had something to do with the repository being ~2-3 gigs total.

Edit: I will say you need to give git more time and try to wrap your head around the distributed model. I hated it at first, but after learning it, I don't ever want to go back to CVS or SVN, especially when working with teams from several companies and locations around the world.

HFX fucked around with this message at 19:30 on Apr 14, 2011

Captain Corny
Dec 16, 2000

mr_jim posted:

It wasn't "bravado". Git was designed by Linus for a specific purpose: to facilitate the development of the Linux kernel. So, no, he didn't really consider Windows when designing it.
That's still a dumb decision. If things are going the way I see them going, SVN will be replaced by Mercurial instead of Git, and Linus will have wasted two years of his life building Git while ignoring the platforms that the rest of the world was using.

mr_jim
Oct 30, 2006

OUT OF THE DARK

Captain Corny posted:

That's still a dumb decision. If things are going the way I see them going, SVN will be replaced by Mercurial instead of Git, and Linus will have wasted two years of his life building Git while ignoring the platforms that the rest of the world was using.

Why would Linus care what tools Windows developers use? He built the tool that he needed, and then he got back to working on the kernel.

Scaevolus
Apr 16, 2007

Captain Corny posted:

That's still a dumb decision. If things are going the way I see them going, SVN will be replaced by Mercurial instead of Git, and Linus will have wasted two years of his life building Git while ignoring the platforms that the rest of the world was using.
Linus Torvalds spent 4 months working on git (April-July 2005), while still working on the kernel, and then handed over development to Junio Hamano.

You're underestimating how many developers there are on Mac/Linux.

wwb
Aug 17, 2004

Why does linus give a poo poo what replaces SVN on windows?

Working through the move to DCVS here -- though at least for our internal stuff SVN is just fine for the most part and I wouldn't gain anything. Anyhow, we are pretty windows addled from all angles, is there a reason we should go with git over mercurial?

musclecoder
Oct 23, 2006

I'm all about meeting girls. I'm all about meeting guys.
Stuff like http://www.kernel.org/pub/software/scm/git/docs/git-rerere.html are awesome. I'm not sure if hg has the equivalent, but it seems like git is always rolling out some awesome new features.

mr_jim
Oct 30, 2006

OUT OF THE DARK

wwb posted:

Why does linus give a poo poo what replaces SVN on windows?

Working through the move to DCVS here -- though at least for our internal stuff SVN is just fine for the most part and I wouldn't gain anything. Anyhow, we are pretty windows addled from all angles, is there a reason we should go with git over mercurial?

Probably not, if everyone is using Windows.

Tamba
Apr 5, 2010

quote:

git on windows

If you don't hate GUIs, you should try http://sourceforge.net/projects/gitextensions/

Captain Corny
Dec 16, 2000

mr_jim posted:

Why would Linus care what tools Windows developers use? He built the tool that he needed, and then he got back to working on the kernel.
I get that. That's the attitude I'm talking about. And as a result, I choose not to use his software. And for good reasons. We agree that it was not built for Windows users. We disagree on if that was a mistake.

Sizzlechest
May 7, 2007

HFX posted:

It might have had something to do with the repository being ~2-3 gigs total.


Err... Like mentioned before, he's not talking about the repository. He's referring to the working copy.

Captain Corny
Dec 16, 2000

Scaevolus posted:

Linus Torvalds spent 4 months working on git (April-July 2005), while still working on the kernel, and then handed over development to Junio Hamano.

You're underestimating how many developers there are on Mac/Linux.
Whoever was developing it were wasting their time because they apparently collectively decided to make it Linux only with extremely limited support for other platforms. How's that?

Opinion Haver
Apr 9, 2007

Captain Corny posted:

Whoever was developing it were wasting their time because they apparently collectively decided to make it Linux only with extremely limited support for other platforms. How's that?

Oh no, a developer tool that was designed for Linux! :ohdear:

Captain Corny
Dec 16, 2000

yaoi prophet posted:

Oh no, a developer tool that was designed for Linux! :ohdear:
Another good example of the attitude.

Star Warrior X
Jul 14, 2004

Captain Corny posted:

Another good example of the attitude.

How is their attitude any different from your "clunky on Windows -> uninstall and HATE" attitude?

Captain Corny
Dec 16, 2000

Star Warrior X posted:

How is their attitude any different from your "clunky on Windows -> uninstall and HATE" attitude?
I'm about to go to sleep, but I'll get back to you tomorrow because it's a good question.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

Captain Corny posted:

extremely limited support for other platforms.

Git works great on Windows. I've been using it for over a year just fine. The installer isn't the best, but once you get past that, it works just fine.

Look, I completely get that the installer of a piece of software can leave a bad taste. However, to call git support on windows "extremely limited" is just false.

FWIW, I haven't ever had to touch Git Bash. I just use it from the Windows command line, or use the git support in whatever IDE I'm using at the time.

Strict 9
Jun 20, 2001

by Y Kant Ozma Post
We've just started developing our new corporate website, we being me and another developer. The other developer will be doing basic HTML and CSS, while I'll be inserting our CMS code into those same documents (this is a .NET platform).

I used to use SVN but have already found Git to be much more intuitive. But I'm not used to this decentralized setup, so I want to make sure I'm understanding the workflow correctly:

- I created the "master" repository that will be for the development website. This master repo has working files.

- Me and the other developer have checked out copies of the repository in our own directories

- As we develop, we commit as often as necessary. Every morning I will pull the other developer's changes in, start writing my code around their HTML and CSS.

- When we need to start involving copywriters and markets and such, we start pulling our changes into the master repository.

- I can't push my changes back to the other developer, so I guess every morning they'll want to pull from my repository as well?

- Once we have enough code to get the site working, we can start creating branches for bigger features.

Does that make sense, or am I completely off base?

Jethro
Jun 1, 2000

I was raised on the dairy, Bitch!
For what it's worth, I also tried using git on Windows and very quickly reached the stage where I couldn't be bothered. The biggest problem for me was the fact that Cygwin or git bash or something involved in git couldn't handle network shares. So I gave up and went back to my uncontrolled ways.

Then a little while ago I decided to give Mercurial a shot. I installed TortoiseHG and it pretty much instantly clicked. The way it works almost completely makes sense to me (except a little bit in terms of how it handles branching) and it also works over network shares with no complaints and no need to set up a web server if I don't want to.

So if you're on windows and want to give DVCS a shot, I whole-heartedly recommend Mercurial and TortoiseHG.

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


A lot of the people working on libgit2 are doing it so that better tools can be written for Windows devs.

I get that Linus himself doesn't give a poo poo, but some people get it.

Captain Corny
Dec 16, 2000

Star Warrior X posted:

How is their attitude any different from your "clunky on Windows -> uninstall and HATE" attitude?
The difference is that our roles are different (user, developer). As a developer, you get to build the user interface, effectively forcing your users to work a certain way. You are in control of the quality of the UI. As a user, you have no say in that.

If you make things harder than they should be, you're wasting people's time. With software, this adds up. For example, if people have to spend an average of 10 extra minutes to figure out your installer (which is a conservative estimate IMO), and 10,000 people download your software, you have wasted 100,000 minutes of productivity, or almost 70 days. In my opinion, spending a day or two on improving your installer then becomes not only a reasonable thing to do, but also something of a moral obligation. If the developer decides that wasting other people's time isn't important enough to fix things, or that it's the user's fault for not being smart enough, then I get to call that a bad attitude.

Anyway, the end result is that I will recommend others to avoid this software, not because I hate it so much, but because they are going to run into the same problems I ran into, ask me for help, and therefore waste even more of my time.

HFX
Nov 29, 2004

Sizzlechest posted:

Err... Like mentioned before, he's not talking about the repository. He's referring to the working copy.

I wasn't entirely clear. I even had made a mental note to go fix it and then got side tracked by other issues. The entire repository was much greater then 2-3 gigs (more like 60+). A single branch being pulled down was 2-3 gigs of space. I was usually working with 3-5 branches at a time. When they switched to git, and I just cloned the repo, the repo was ~4.5 gigs total. Thus, I was actually saving space.

For what its worth, you don't have to completely clone a copy of the entire repository to your local directory in git. You can just pull a branch and even just keep the history of the files as they are the latest. In effect, you can make it behave like SVN.

I did laugh about everyone using Windows.


Jethro posted:

For what it's worth, I also tried using git on Windows and very quickly reached the stage where I couldn't be bothered. The biggest problem for me was the fact that Cygwin or git bash or something involved in git couldn't handle network shares. So I gave up and went back to my uncontrolled ways.

Then a little while ago I decided to give Mercurial a shot. I installed TortoiseHG and it pretty much instantly clicked. The way it works almost completely makes sense to me (except a little bit in terms of how it handles branching) and it also works over network shares with no complaints and no need to set up a web server if I don't want to.

So if you're on windows and want to give DVCS a shot, I whole-heartedly recommend Mercurial and TortoiseHG.

See now these are valid reasons. I know part of the problem with windows shares in cygwin and it is do the fact windows doesn't treat shared mounts as just another file.

HFX fucked around with this message at 15:53 on Apr 15, 2011

sim
Sep 24, 2003

We recently switched from SVN to GiT and initially there was a lot of issues sharing repositories over the network, especially between Linux, Windows, and Mac. So we ended up using more of a centralized setup where every developer pulls and pushes to a Linux server. Since then it has been smooth sailing and Git Bash has worked well for me. It wasn't until Captain Corny's article that I actually understand what it was though, so at least it was useful for that.

uXs
May 3, 2005

Mark it zero!
I tested Git at work (on Windows) and while it worked well for my purposes, I knew I couldn't switch the company over to it because the Windows support isn't a first class priority in Git. For Mercurial on the other hand, Windows support is a critical feature, so I switched us to that.

I know it's been said before, but the alternative to Git on Windows isn't Svn, it's Hg.

ToxicFrog
Apr 26, 2008


:psyduck:

Captain Corny, I have three questions for you.

(1) You say that developing software that only runs (or only runs well) on Linux is a waste of time. Is that true of any OS-specific software? Was all the time MS spent on Visual Studio, or Apple spent on XCode, wasted? Or is it only a waste when they aren't developing for the OS that you prefer?

(2) Why are you writing off the entire concept of DVCS based on a bad experience with one windows build of git? You kind of give the impression that you went into this wanting to dislike git so you could dismiss DVCS as a whole and reassure yourself that by using SVN, you've made the right choice.

(3) As a windows user, why did you decide to start with Git in the first place when even Git diehards like myself agree that Mercurial has better windows support?

Mithaldu
Sep 25, 2007

Let's cuddle. :3:
Wow, so much loving FUD here.

GIT WORKS loving AWESOME ON WINDOWS.
I DEVELOP poo poo IN GIT ON WINDOWS EVERY SINGLE DAY.


Install Msysgit, tortoisegit, done.

Use the Git Gui command in the explorer context menu to commit poo poo, use tortoise for everything else.

Adbot
ADBOT LOVES YOU

ColdPie
Jun 9, 2006

Mithaldu posted:

Wow, so much loving FUD here.

GIT WORKS loving AWESOME ON WINDOWS.
I DEVELOP poo poo IN GIT ON WINDOWS EVERY SINGLE DAY.


Install Msysgit, tortoisegit, done.

Use the Git Gui command in the explorer context menu to commit poo poo, use tortoise for everything else.

You can also learn the Git CLI interface, which is very user-friendly.

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