diff disagrees with status

Adrian Buehlmann adrian at cadifra.com
Thu Jan 24 09:31:57 UTC 2008


On 24.01.2008 02:38, j w wrote:
> What does hg give you that can't be accomplished with branch/integrate in p4?

Perforce is one of the best classical central model VCS', yes (even better than 
Subversion, thanks to the integration records). But,

Perforce treats file revisions rather decoupled from overall depot states 
(changelists).

In other words: Perforce for example doesn't record which changeset was merged 
into which other changeset. It records merges only on a file revision basis, not 
on a changelist/depot wide basis.

Perforce doesn't record some other infos as well (for example, the parent 
changelist(s) of your submit). Perforce doesn't even know to which changelist 
you have synced your workspace.

In Perforce, you need to know in advance whether you will need a branch or not. 
With Mercurial, every working directory state is the starting point of a branch. 
For example, if you want to have the same flexibility as in Mercurial, you might 
end having a lot of branches in Perforce. Let's say you have X features and Y 
developers. This tends to give you X times Y branches in Perforce (at least in 
the main line). Add release branches. All branches started in advance in 
Perforce -- even if you later discover that you didn't need a particular branch.

And, of course, with Mercurial you have local commits, ad-hoc (group or 
peerwise) software integrations, easy backup, easy resync after offline times, 
cheap server hardware even for larger teams (if you have a central repo), a nice 
built-in webserver, complete verifiability (thanks to the sha1 hashes covering 
all data) delivered at reasonable speed, and you can take your repos on the 
road, explore the projects history without connection to a central server.

Ok. I'll stop here :-)






More information about the Mercurial mailing list