

Things I love about git - xyzzyb
http://rakeroutes.com/blog/10-things-i-love-about-git/

======
nathell
_Subversion has no github because subversion can’t have a github._

Actually, it does have a github. It's called "github" and is available at
<http://github.com>.

See [https://github.com/blog/966-improved-subversion-client-
suppo...](https://github.com/blog/966-improved-subversion-client-support)

~~~
xyzzyb
That's really cool, thanks for cluing me in.

But it looks like it's just limited support. Does it support all the github
things like forks, pull requests, etc? Do you have a link to an SVN repo on
github? I'd love to check one out.

~~~
Xylakant
Actually the way support works is that github emulates a svn acces layer on
top of the git repository. So you can use every repository hosted on github
with an svn client and get pretty much the same feature-set as git users.

~~~
xyzzyb
Hm, interesting. So I could:

    
    
      - fork a repo on github
      - use svn to access that repo
      - use svn to make a local/remote branch
      - code code code
      - commit and push up to github
      - then use github pull requests as usual?

~~~
Xylakant
Short answer: Yes, pretty much. The long answer is in this blog post
[https://github.com/blog/1178-collaborating-on-github-with-
su...](https://github.com/blog/1178-collaborating-on-github-with-subversion)

------
jlogsdon
_2\. Partial commits

Commit file X, then commit file Y._

You can also commit only a part of file X! `git add -i` brings you to an
interactive 'add' mode where you can view, split and add each hunk
individually.

~~~
xyzzyb
That's absolutely right and a bit of functionality I had thought I had written
up in my post. D'oh!

There's also `git add -p` that takes you straight into the patch mode.

------
Sunlis
I'm on an internship through my University, writing a report for my current
employer (as a requirement of said internship program) about their current
centralized version control solution (Perforce) and comparing it to a
distributed one (Git). Finding sources explaining why Git is "better" is easy,
but finding any one arguing the other side is proving to be incredibly
difficult.

Are there simply no benefits to using a centralized system, or is no one
bragging about them like all of these Git fans?

~~~
stonemetal
One of the draw backs that typically gets mentioned about current distributed
systems is the lack of locking which makes managing un-merge-able (binary)
files impossible to manage correctly. This is why you will not hear of many
game dev studios using git, version controlling art assets is fairly common in
such situations and perforce handles it like a champ. DVCSs in general tend to
have performance issues with large files, I know mercurial warns you about the
performance implications of storing anything over 10MB.

A bit old(2009) so it may have changed, but here is a rant about the
scalability of git vs perforce. <http://stevehanov.ca/blog/index.php?id=50>
and a little newer post on git scalability issues:
<http://news.ycombinator.com/item?id=3548824>

------
chocolateboy
> Bisect for bug hunting awesomeness

svn-bisect [1]

[1] <http://search.cpan.org/perldoc?svn-bisect>

~~~
xyzzyb
Aw, I thought for a second that was an actual subversion command. I don't
doubt that the perl script handles it effectively though.

------
molecule
_2\. Partial commits... Edited file X and made a fix to file Y? No problem.
Commit file X, then commit file Y._

partial commits can be made @ line level also, w/ `git add --edit`

    
    
      -e, --edit
        Open the diff vs. the index in an editor and let the user edit it...
    

<http://www.kernel.org/pub/software/scm/git/docs/git-add.html>

~~~
xyzzyb
Ahh, that's awesome and I haven't seen it before.

I'll add that in later when I fix my omission of git add -p.

------
jeltz
Subversion actually records merge metadata in recent versions. In my
experience though it often still fails to work when working in branches.

~~~
xyzzyb
Yeah? That's awesome. Do you mean that the metadata fails to work with
branches or that merging itself fails?

~~~
eli
It's been around for some time now. I think 1.7 added it.

I don't know if it was buggy or if we were doing something wrong, but it still
caused merging disasters even though in theory it should have been able to
avoid them.

------
hk__2
_No github means no pull requests._

What? Git _has_ pull requests.

~~~
xyzzyb
Yeah, I should say "no github pull requests".

