Having used both Git and Svn, I see the beauty of maintaining a linear history and yet appreciate the beauty of branching and merging. I understand that there is no absolute right or wrong with either approaches but I feel that there is a right time to rebase and a right time to merge.
Eg. if a team of two or more works on a single feature branch, I would get them to rebase their commits on top of the latest remote feature commit. This is to maintain a linear commit history on the feature, The benefits of doing this in my opinion is that it becomes easier to code review their changes for that particular feature and see what each dev has done.
To keep things simple and avoid fixing a massive pile of conflicts, we would merge from develop to the feature branch every now and then to ensure that changes from other teams are integrated with the feature(maybe daily). When the feature is complete, it is merged back with develop.
What are everyone's thoughts to this hybrid approach?