Monday, April 12, 2010

Mercurial SCC Provider (Enterprise Architect)

I'm looking to move Enterprise Architect source versioning provider from SVN to Mercurial. One unnoticed feature is to use SCC provider, instead of direct support within the EA.
To do that, an SCC provider needs to be configured first and then selected within the Enterprise Architect. Check the following links for the instructions on how to use SCC provider in EA and the SCC Provider for Mercurial.

Sergant's Home Page

From the Hg SCC Provider page, download this file. It is an older version of the provider, supporting MS SCCI API which is compatible with Source Safe and other software. The newer versions only support Visual Studio SCC Package API and is not recognized by Enterprise Architect.

Set your repository to Update on Pull and Push on Commit and the workflow is similar to the SVN one. 


Julian said...

I tried this but am not seeing Mercurial coming up in the list of SCC providers from within EA. Have I missed a configuration step?

-=|MisterY|=- said...

Sorry, I haven't used this for a long time as it was cumbersome for an average user to understand the concept of version control. :)
I thought using Baselines from within EA was easier and required no external tools.

However, to answer your question... Mercurial will not appear as a separate provider within EA. On the Version Control Settings screen simply select SCC as a provider. Then select a directory that will contain the files (Local Project Path). [You have to do the initial pull into this directory manually.] As soon as you select the directory, a window will pop up asking you to Select SCC Provider. Only on this window you will see the list of SCC Providers and one of them (or the only one) will be HgSccProvider. Select and continue.

Good luck. :)

Julian said...

Thanks. I had inadvertently installed the latest version of HgScc which, as you have pointed out, doesn't work. BTW: anyone reading this, got this to work with EA version 9.0

Gustavo Chaves said...

I understand that EA uses the underlying VC system to keep the revision history of model packages but also as locking system to serialize package editions.

With Subversion an EA check-out is translated into a "svn lock" for the package's XMI file and an EA check-in is translated into a "svn commit" command.

How does Mercurial support the locking needs of EA?

~bodo-bodo-m said...

HgScc seems to fake the locking. As far as I understand the source code it simply removes the readonly attribute from the file.

I think it might worth a try to modify the source of HgScc to use the lock extension.