Committer workflow
Martin Buchholz
martin at xemacs.org
Thu Mar 6 16:03:28 EST 2008
I rather like the model that no one gets to push to other peoples'
repositories, people only pull. I think that's how Linus works. His
"trusted lieutenants" let him know when they would like him to pull,
and he does.... but presumably first into an "incoming"
private-to-Linus repository that he can peruse before pulling into his
public-for-export repository. I also rather like keeping the revision
history in the important repositories "clean", which may mean forcing
or strongly encouraging other people to throw away their patch
development histories.
I rather like the idea that a subsystem repository can keep more
history than a "master" repository. Not every developer needs to have
the entire history of the project in their own repository at all
times.
In a world where a project might have a thousand separate
repositories, one quickly gets to the point where almost all
changesets are trivial merge changesets, polluting the history.
I don't know why you refer to the Linux model as "single integrator".
I see it as rather the opposite -- Linus encourages multiple
specialized trees, each with their own integrator.
Martin
>>>>> "M" == Michael Sperber <sperber at deinprogramm.de> writes:
M> "Stephen J. Turnbull" <stephen at xemacs.org> writes:
>> It doesn't work so well for reviewers, though.
>> > We could do the exact same thing as "git rebase" with MQ, but it
>> > has the problem (that it shares with "git rebase") that it doesn't
>> > preserve patch identity.
>>
>> By "preserve patch identity" you mean that the developer can work in a
>> single workspace, push his patch, and when he later pulls from the
>> public repo, not get a conflict. Right?
>>
>> That's a nice property, I agree. But with a UI that made handling
>> named branches convenient, this wouldn't be a problem. You just drop
>> the branch on the floor after you push its content, and pull that
>> right back in with your next update.
M> The problem is that it just doesn't scale, in various ways:
M> - It doesn't work for longer-lived branches like Carbon, where things
M> are resynchronized multiple times.
M> - It doesn't solve the problem I believe you're seeing, namely that the
M> patch you reviewed isn't the patch that gets committed. "server-side
M> git rebase" would be prone to breaking to build automatically, because
M> "no conflicts" doesn't mean that that merge was actually correct.
M> - If you don't to server-side rebasing, you impose an undue burden on
M> the developers who keep rebasing their patches.
M> - I agree things are different when there's a single integrators, like
M> Linus. We don't.
M> The most natural way of doing business with Mercurial and, I conjecture,
M> git, is to do it the way we are doing it, and that means making explicit
M> what revision a developer started from when making changes. However,
M> for small, one-off patches, I'd have no objection to stating a policy
M> that asks developers to push on top when possible, and give them
M> instructions on how to get there using Mercurial Queues.
M> --
M> Cheers =8-} Mike
M> Friede, Völkerverständigung und überhaupt blabla
M> _______________________________________________
M> XEmacs-Patches mailing list
M> XEmacs-Patches at xemacs.org
M> http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
More information about the XEmacs-Patches
mailing list