On 14 September 2012 20:10, Jacek Cała <jacek.c...@gmail.com> wrote:
> 2012/9/14 Michal Suchanek <hramr...@gmail.com>:
>>
>> so you do a rebase so that your commits can be applied on top of F and
>> send then for review:
>>
>> A-B-C-D-E-F-X'-Y'-Z'
>>
>> If there are no conflicts between your changes and upstream this is
>> fine, otherwise you have to resolve them somehow, and upstream then
>> does not have to. They get nice linear history.
>
> I don't understand. Without rebase you just merge the other branch
> (D-E-F) to your cloned and updated repo (X-Y-Z), resolve any conflicts
> and end up in the same point, ok with one more commit which is the
> merge of F to Z.

Except with a merge of F-Z you get a single commit which is often huge
patch of no value on its own. To understand what it does you have to
review the whole branch before the merge possibly with numerous
intermediate merges. With rebase you get patches that become part of
single, linear history. You can pick only some patches from the start
and when there are no interdependencies even just patches from the end
or middle, even outside of VCS on top of unpacked release tarball.

>
>> This leaves behind a hidden stump with the original X Y and Z commits
>> in git. In fossil the stump would remain and you would have to go out
>> of your way to hide it or not upload it during push.
>
> Is a short branch in the timeline such a bad thing really?

It just makes following the development history more difficult.

And when it does not pass the review for the first time it's not going
to be just a simple short branch.

Especially if you merge, then fix some bugs in stuff before the merge
and add fixes as new commits, then merge again, and repeat a few
times. Spaghetti.

>
>> Also if Z is really a fix for a bug in X which is not upstream yet you
>> might want to do an edit - swap Y and Z and squash X and Z so that the
>> upstream reviewer has easier job reviewing fewer patches.
>>
>> A-B-C-D-E-F-X'Z'-Y'
>
> That might be useful. But what if someone was tempted to do this for a
> fix to a patch that was done 100 commits earlier... Might become
> tricky I suppose.

Of course, that's why there is a distinction between 'public' and
'private' branches. You should state when a commit is part of an
'official' history and should no longer be edited.

Thanks

Michal
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to