Things I love about git
rakeroutes.com
rakeroutes.com
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...
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.
- 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?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.
There's also `git add -p` that takes you straight into the patch mode.
Are there simply no benefits to using a centralized system, or is no one bragging about them like all of these Git fans?
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
The primary reason I switched my last employer from SVN to Git is because we frequently found ourselves in merge-conflict hell. Our workflow under Git was really very similar to our workflow under SVN.
For that reason, you can essentially write a wrapper on top of git to turn it into a centralized VCS that acts similarly to Perforce/SVN/etc., by enforcing a certain workflow that essentially eliminates merge conflicts.
Of course, you lose a lot of the power of git when you do this (the same power that's responsible for many posts like these), but to cut a long story short: it's not an apples-to-apples comparison.
svn-bisect [1]
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.htmlI'll add that in later when I fix my omission of git add -p.
c--d--e
/
a--b
\
f
Now we want the change from commit d applied on the branch with head f so we cherry-pick the revision into place. This essentially applies the delta of revision d as a patch over revision f. c--d--e
/
a--b
\
f--d'
Now we make another change (rev g)and then decide that what was done in revision d was incorrect, so we undo those changes (rev h). c--d--e
/
a--b
\
f--d'--g--h
Now we decide that we want to merge branch with head e into branch with head h. c--d--e----
/ \
a--b i
\ /
f--d'--g--h
In Git or Mercurial, the change originally made in revision d (and later undone in revision h) will appear in revision i. Subversion won't make this mistake because when revision d will already be marked as merged into that branch.I'm much happier with the DAG model of Git and Mercurial than I was with the Subversion branching model, but the DAG model is not universally superior.
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.
What? Git has pull requests.