Hi, On 7 March 2010 20:55, Andreas Färber <andreas.faerber@xxxxxx> wrote: >> Now the reason that rebasing is not part of the official distribution >> is because mercurial and git have two different philosophies. I would >> say that mercurial is a revision control system (in which history is >> sacred) as opposed to git which is more a patch control system. That >> is why git is so much more flexible (which makes it so much more >> complex). >> >> To illustrate that point, there has always been a way to 'rebase', >> through the MQ (merge queue) extension. That extension is a patch >> control system on top of a mercurial repository. >> >> Whenever you compare Git and Mercurial, keep that in mind. Their >> philosophies will to a large part influence the actual development >> process, and as such it is important to keep them in mind when >> dreaming about a future SCM for Haiku. > > You shouldn't forget that this thread is about how Mercurial might be used > for Haiku. And for all purposes outside the core developers, we are in fact > talking about patch tracking: Right, I was merely responding to your question why this was hidden away. > * I'm supposed to submit patches to Trac. So I need to determine which > changes are local and remote and create, e.g., a single working patch, not > my history of local changesets. So I may need two branches, one where I do > merges and document my progress, and a clean one where I prepare patches, > hence the rebasing. Or you can use the MQ extension. http://mercurial.selenic.com/wiki/MqExtension > * If I run into a bug, someone might post a patch for me to try out. Then I > need to apply that somehow but should not bother you with patches against > something that is not in the main repository. So I would need either > multiple branches/heads or the patch applied and removed again.[1] Again, have a look at the MQ, it does the things you mention here. See http://hgbook.red-bean.com/read/managing-change-with-mercurial-queues.html for a good description of what it is and what it does. From what I see you describing here it would server your purpose wonderfully. > Everything would be fine if you guys would use Mercurial and we could opt to > use another system for working on our patches. But unfortunately while there > are many -g/--git options in hg, for Git users there is no official git-hg > to interact with Mercurial from Git. A quick search turned up only the > reverse: > http://hg-git.github.com/ In that case I think you'd be happy to know that there is also a git mirror of the SVN repository (http://git.haiku-os.org). It is still in a test phase (like the hg mirror), so beware that it might not work completely. I hope you are willing to try the MQ extension first and share your experiences with us, it might be useful to learn different workflows and publish these. Regards, N>