Book a Demo

Author Topic: Version Controlling EA Models with Subversion  (Read 7660 times)

davisford

  • EA User
  • **
  • Posts: 63
  • Karma: +0/-0
    • View Profile
Version Controlling EA Models with Subversion
« on: August 29, 2005, 08:26:46 am »
This is informational for anyone interested, but I just got this working.

http://svnscc.tigris.org/

I used this plug-in.  There are two other projects apparently -- one called SubWay (which did not work for me), and one called SourceCross (which has not released anything yet).

Here are the steps I used to get it to work.

Precondition:  Download/Install Subversion itself.  Create a repository, and check it out on the local filesystem (e.g. C:/work/projectA/)

1) Download the release from http://svnscc.tigris.org/

2) Follow the instructions to install -- I had to manually edit the Windows registry to make this work, the regscript would not execute.  It is pretty simple -- make these changes to the registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\SVNScc\SVNScc]
"SCCServerName"="SVNScc"
"SCCServerPath"="C:\Program Files\Subversion\SVNScc-0.1.0.98_svn-1.0.6\SVNScc.dll" <- this must be your path to the DLL

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider]
"ProviderRegKey"="SOFTWARE\\SVNScc\\SVNScc"

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
"SVNScc"="SOFTWARE\\SVNScc\\SVNScc"

3. Fire up an EA model.  Goto Project->Version Control->Version Control Options.

Select Type: SCC
Unique ID: MySCCConfiguration (or whatever here)
Local Project Path: find the version controlled dir you checked out earlier and put it here.
It pops a window up, select SVNScc
Save

4) Next, right click a package in the model and choose Package Control -> Configure

Tick the Control Package box
Select Version Control dropdown as MySCCConfiguration (SCC)
Set the output XMI filename, select OK.

5) Now you can right-click package, and choose Package Control -> Checkout, Checkin, etc.

Hope that helps someone!

I have not really done much with it to find if there are any issues yet, so YMMV.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #1 on: August 29, 2005, 01:50:34 pm »
Thanks Davis,

I've been thinking of giving Subversion a go, so your post is very timely for me!

Cheerz,
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Germanicus

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #2 on: September 28, 2005, 11:46:06 pm »
??? I can't get this to work.

I edited the svnscc.reg to my own path så the file looks like this:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SVNScc\SVNScc]
"SCCServerName"="SVNScc"
"SCCServerPath"="C:\Program Files\Sparx Systems\SVNScc-0.1.0.98_svn-1.0.6\"

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider]
"ProviderRegKey"="Software\\SVNScc\\SVNScc"

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
"SVNScc"="Software\\SVNScc\\SVNScc"


Enterprise Archiect recognises SVNscc when it try to add version control to a project but as soon as i try to save I get two error messages. Fist "Error while initializing Version Control Provider. Failed to load SCC module" and then "Failed to initilize Version Control Provider!"

By he way: The path to the server did not register så I had to do this manually... Do I love window?  :-/

Has anybody a clue?

Thanks
/peter

thomaskilian

  • Guest
Re: Version Controlling EA Models with Subversion
« Reply #3 on: September 29, 2005, 02:47:47 am »
I noticed a case mismatch in your registry entries.  Just a guess.  I don't (!!!) love Windows, but I have to use it :P

Germanicus

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #4 on: September 29, 2005, 03:03:25 am »
Hmmm... I changed the entries to:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SVNScc\SVNScc]
"SCCServerName"="SVNScc"
"SCCServerPath"="C:\\Program Files\\Sparx Systems\\SVNScc-0.1.0.98_svn-1.0.6\\SVNScc.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider]
"ProviderRegKey"="SOFTWARE\\SVNScc\\SVNScc"

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
"SVNScc"="SOFTWARE\\SVNScc\\SVNScc"


That didn't do the trick!  :(


/peter
« Last Edit: September 29, 2005, 03:03:53 am by Germanicus »

davisford

  • EA User
  • **
  • Posts: 63
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #5 on: September 29, 2005, 06:00:04 am »
I don't have any solid solutions for you.  Here are a couple things I would try:

1) Verify that subversion works correctly on your system.  From command prompt, use svnadmin to create a new repo, and svn to add some files, and commit them.  (or download TortoiseSVN and use the Windows Explorer shell integration).

2) It still sounds to me like something is not right in the registry.  There is a free tool from http://www.sysinternals.com -- I can't remember the name exactly, but it acts like a registry snoop, and allows you to capture all read/writes from the registry.  You might d/l and try that...see if you can filter to capture on the read from the registry where EA.exe tries to read those keys.  

I did an export on my registry for those two keys, and this is what I get when I open in Notepad:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SVNScc]

[HKEY_LOCAL_MACHINE\SOFTWARE\SVNScc\SVNScc]
"SCCServerName"="SVNScc"
"SCCServerPath"="C:\\Program Files\\Subversion\\SVNScc-0.1.0.98_svn-1.0.6\\SVNScc.dll"

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider]

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
"SVNScc"="Software\\SVNScc\\SVNScc"
"SYNERGY/CM"="Software\\Telelogic\\CM Synergy"

Ignore the Telelogic stuff.

Verify again that that path that you have does indeed find the correct .dll file in there.

Other than that -- I don't have any good advice.  Perhaps Sparx can chime in and explain what is happening when that error message occurs.  It sounds like either it can't find that .dll or there is something wrong with the .dll when it tries to make API calls into it.

Good luck - if you solve it, post back.

Germanicus

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #6 on: September 29, 2005, 06:48:34 am »
Ok... thank's for the tip...

I snooped EA's register access when setting upp the version control options.

Code: [Select]

OpenKey
    ...\InstalledSCCProviders          SUCCESS   Access: 0x20019
QueryValue   ...\InstalledSCCProviders\SVNScc   SUCCESS   "SOFTWARE\SVNScc\SVNScc"
QueryValue   ...\InstalledSCCProviders\SVNScc   SUCCESS   "SOFTWARE\SVNScc\SVNScc"
CloseKey     ...\InstalledSCCProviders          SUCCESS
OpenKey
    ...\SVNScc\SVNScc                  SUCCESS   Access: 0x20019
QueryValue   ...\SVNScc\SVNScc\SCCServerPath    BUFFER    OVERFLOW
QueryValue   ...\SVNScc\SVNScc\SCCServerPath    SUCCESS   "C:\Program Files\Sparx Systems\SVNScc-0.1.0.98_svn-1.0.6\SVNScc.dll"
QueryValue   ...\SVNScc\SVNScc\SCCServerPath    BUFFER OVERFLOW
QueryValue   ...\SVNScc\SVNScc\SCCServerPath    SUCCESS   "C:\Program Files\Sparx Systems\SVNScc-0.1.0.98_svn-1.0.6\SVNScc.dll"
CloseKey     ...\SVNScc\SVNScc                  SUCCESS



As you can see I get a buffer overflow and don't know why?!  ???

HowardB

  • EA Administrator
  • EA User
  • *****
  • Posts: 55
  • Karma: +0/-0
  • I love YaBBies!
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #7 on: September 29, 2005, 09:25:21 pm »
Hello Germanicus,

I have inspected the EA code and determined that in order to recieve the message "Failed to load SCC module", EA has found an entry in the registry for your chosen SCC provider, retrieved the DLL path and attempted to load that DLL.  The attempt to load the DLL, using Windows' LoadLibrary function, has failed.  Given that Davis has succeeded in using SVNScc, I suspect the error you are receiving, indicates a problem with the DLL path that is recorded in your registry.


FYI:  Direct support for Subversion has been implemented and will be included in EA version 6.0.
We are waiting on the completion of some functionality in other areas of EA, but our current expectation is that v6.0 will be available in around five weeks.

Best regards,
Howard.

Germanicus

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #8 on: September 29, 2005, 11:22:18 pm »
Thank You very much!

I will give it one more try today beore I give up and wait for the next release.

/peter

thomaskilian

  • Guest
Re: Version Controlling EA Models with Subversion
« Reply #9 on: September 29, 2005, 11:47:22 pm »
Quote
We are waiting on the completion of some functionality in other areas of EA, but our current expectation is that v6.0 will be available in around five weeks.

Just in time for Santa Claus 8)

Digimode

  • EA Novice
  • *
  • Posts: 1
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #10 on: November 01, 2005, 12:35:44 pm »
I have the same problem  :(.

The registry looks fine.

It would be nice to know what OS version and EA Build was used for that successful SVN attempt.

I am running on Windows XP SP2, with EA Build 772.
The svnscc plug-in is the same version mentionned earlier: SVNScc-0.1.0.98_svn-1.0.6

In the meantime, I will try the beta release to test SVN.

Germanicus

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
Re: Version Controlling EA Models with Subversion
« Reply #11 on: November 01, 2005, 11:11:10 pm »
I have just installed and configured the beta and it seams to work fine with Subversion... but as I said Ive just insatlled it ;-)