The 'original' history is useful in cases where you're sure it worked
earlier.  After a rebase you don't have the commits from earlier
anymore.

On Sun, Feb 13, 2011 at 4:01 AM, Reinier Zwitserloot <reini...@gmail.com> wrote:
> That's one part of the rebase story - 'public' vs 'private' commits. hg
> squash commit does mostly the same thing.
> The other part of rebase is to make the repository look as linear as
> development could have been.
>
> Common scenario:
> Joe wakes up, updates master branch, and starts work on a bunch of features.
> Joe finishes near the end of the day, clean up commits (the 'first' meaning
> of rebase), and pushes this to the repo.
> Jack does the exact same thing.
>
> One of the two can push, no problem. The other gets an out of sync error and
> needs to pull (fetch) first. This fetch/pull will result in an automatic
> merge (no need for manual conflict resolution, fortunately, unless both Jack
> and Joe made changes to the same stuff or very close to each other in the
> same file).
>
> The end result is a merge in the tree view.
>
> But.... Joe was working on feature X and Jack on completely unrelated
> feature Y. On svn / cvs there'd never have been any branch anywhere, as
> those are file-level instead of repo-level. The merge is a completely
> irrelevant artefact is only going to cause pointless confusion and annoyance
> if anyone else attempts to review the day's work. If Jack had waited for Joe
> to finish work and push changes, there'd be no merge.
>
> The second take on rebase fixes this problem; Joe would notice the out of
> sync error, rebase the *BRANCH* where he did his day's work on (because in
> git, you should always be working on a branch, for everything, which also
> explains why you don't want branch names to stick around. If everyone on the
> project came up with 3 branch names every day, you'd run out of names in a
> heartbeat), and then commit this. The repo tree view would be one straight
> line.
> Of course if actual merging took place this won't work, and you'll just
> commit the merge, nicely storing into the annals of history that some quit
> relevant merging took place.
>
> --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to javaposse@googlegroups.com.
> To unsubscribe from this group, send email to
> javaposse+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to javaposse@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to