First of all, I'm biased towards git. Second of all, this is a late reply, so you might already know. Just for consistency about this. You wonder why you want to set receive.denyNonFastForwards on the server. I wonder why this is not the default. The point is, this flag is set on the server to ensure the server will not _lose_ history. It is not telling the client it should rebase upon the upstream the changes. It tells the client to not push a ref which does not have the upstream ref as a parent. Think about the last sentence for a while. The client might however have this upstream ref in a random 'lineage', so it could just have merged it, or rebased upon it. It must however have pulled it in somehow. You cannot push before you pulled it with this flag set.
Re: Git & rebase
Date: 2013-02-28 10:37 pm (UTC)You wonder why you want to set receive.denyNonFastForwards on the server.
I wonder why this is not the default.
The point is, this flag is set on the server to ensure the server will not _lose_ history.
It is not telling the client it should rebase upon the upstream the changes. It tells the client to not push a ref which does not have the upstream ref as a parent. Think about the last sentence for a while.
The client might however have this upstream ref in a random 'lineage', so it could just have merged it, or rebased upon it. It must however have pulled it in somehow. You cannot push before you pulled it with this flag set.