I've probably made my position clear before on this, but to restate it: I
hate rebasing. You should never do it, and you should *absolutely* never
tell others to do it.

I may write a blog post at some point in more depth about this, but here's
a "short" version of some of the issues with rebasing:

- Greatly increases the complexity of git for new users.
- You can create commits that don't do what they say they do.
- You can lose data
<https://asmeurersympy.wordpress.com/2009/06/22/how-to-permanently-lose-data-with-git-and-then-retrieve-it-again/>
.
- Rebasing requires you to force push, which gives you bad habits
(particularly, the bad habit of force pushing).
- git rebase puts your repository in a rebase "mode", which, unless you
have the right tools in your prompt, you may forget you are in (this is how
I lost a lot of data using it).
- Rebased branches are more difficult to review on GitHub. Normally, you
see new commits at the bottom of the discussion, but when the branch is
rebased, all commits are new commits. If the rebase squashes commits, you
have no hope of seeing only the new changes.
- Merge conflicts are more difficult to deal with when rebasing.
- Most fundamentally, rebasing *changes the revision log*. This completely
negates the whole purpose of using a version control system, which is to
*track* *the revision log*.

Furthermore, git handles "non-clean" history just fine:

- Use git log --graph when viewing history. Or use a tool that shows the
history as a graph like gitk or gitx.
- git bisect does handle merge commits. It only doesn't know what to do
when there is an ambiguity (that is, the bad change comes from the merge
resolution itself), which is rare.

Regarding bikeshedding, this maybe should be a separate discussion (which I
fear will itself be bikeshedded, but oh well). But we should make an effort
to cut down on it.

In fairness, though, if you post a controversial topic to the mailing list,
you are inviting discussion on it.

Aaron Meurer

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6Lo3t%2Breb5MaFqeb3vNekmqOgBQK0uhJGk0ZphpTx79%3Dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to