Merge on push?
Matthieu Moy
Matthieu.Moy at imag.fr
Tue Jun 10 07:25:51 CDT 2008
Michael Smith <michael.smith at thalesatm.com> writes:
>>> Yes, this is exactly the same with Subversion -- you cannot do a
>>> commit unless you have an up-to-date SVN checkout. With SVN you must
>>> do a 'svn update' to bring your checkout up-to-date, and this actually
>>> does a merge for you.
>>
>> Aha, interesting. Haven't used Subversion enough to know that. I was
>> assuming that it behaves more or less like CVS here. Good point for
>> argumentation.
>
> SVN is behaving exactly like CVS in this case.
Well, the difference between SVN/CVS and Mercurial here is not the
distributed nature: it is that SVN and CVS are mostly file-based (CVS
more than SVN), so it's possible to commit even when there are new
revisions in the repository which haven't been merged locally (with
svn update). The result is that the new revision has a tree that never
existed as a working copy, and which has therefore never been tested.
The "push --merge" proposal would have the same drawback: the new
revision wouldn't have been tested, at all. The only sensible approach
for a server-side merge is to have an integrator running there,
building and running the testsuite before commiting. That's what pqm
[ https://launchpad.net/pqm ] does for Bazaar, I don't know if there's
something equivalent for Mercurial.
--
Matthieu
More information about the Mercurial
mailing list