Book a Demo

Author Topic: Version Control  (Read 11362 times)

AlexDG

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Version Control
« on: April 09, 2009, 12:42:50 am »
Hi,

I have a machine acting as a server, installed on this machine are SQL Server 2005 and Subversion. I have created an EA project and stored it in SQL Server and its accessible from the server and from clients. I have also setup a Subversion Repository and I can checkin and checkout packages on the server without any difficulty at all.

My problem comes when I try to checkout packages on the client. EA tells me it is checking out the packages the dialog shows the progress bar progress to 100% and then EA and the checkout FREEZE! Subversion is configured in the same wasy as on the server. Network communication is through svnserve. Why does it hang?

Any ideas would be greatly appreciated.

Many thanks in advance


«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Version Control
« Reply #1 on: April 09, 2009, 02:10:58 am »
What versions of the various packages are you using?

Have you checked the release notes for more recent builds of EA? Links are on the EA History page.
No, you can't have it!

AlexDG

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: Version Control
« Reply #2 on: April 09, 2009, 02:36:32 am »
EA 7.5 build 844
Subversion 1.6
SQL Server 2005

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Version Control
« Reply #3 on: April 09, 2009, 04:13:43 am »
Just a guess here...

This sounds like SQL Server is denying access. When that happens client applications generally freeze until SQL Server (and possibly Windows) decide the request has timed out. Depending on how the client application handles the eventual timeout the freeze might go on indefinitely.

I'd say you might have a situation where Subversion is not presenting the same user credentials as the user might. Perhaps you have configured subversion to access SQL Server through a default login, or something along those lines. If so, you need to either change these credentials (at least for your EA project) or go to SQL Server and explicitly add that account to the Login and Role list of the EA project, with appropriate privileges.

If you go this route, remember that SQL Server will require you to explicitly define the domain (or machine) name used by the account. Just because you see the username - even if it is from your desktop user - does not mean SQL Server won't check this for every connection. Note as well that SQL Server may strip default domain names from application-based login attempts. Make sure you include the entire qualified user name in your Subversion credentials.

David
No, you can't have it!

AlexDG

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: Version Control
« Reply #4 on: April 09, 2009, 04:39:59 am »
I had considered this, but if I take subversion out of the equation everything works fine. So i'm leaning towards it being a Subversion problem rather than SQL Server.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Version Control
« Reply #5 on: April 09, 2009, 03:40:10 pm »
David,

I doubt very much that this has anything to do with permissions on SQL server. If I understand correctly, when checking out a package EA will:
- perform a checkout on the xmi file in SVN
- mark the package as checked out in EA

So there is no communication whatsoever between the SVN application and the SQL Server application. The EA application will connect to SVN and EA will connect to SQL Server.

What you might look at are the credentials that you provide to SVN. Are you using security on the EA model? (do you have to login in EA?)
If that is the case, are you using windows authentication for the users setup in EA?
When EA connects to SVN it somehow has to provide credentials to be allowed to checkout a file. If EA is providing credentials other then your Windows system account then that might explain the difference between a manual checkout of a file through the SVN client in Windows or a checkout through EA.
I'm not sure where, but I guess there should be some logging available on the SVN server to check exactly which requests it received, and maybe which errors where returned (but swallowed by EA)

Let us know how it turns out.

Frank Horn

  • EA User
  • **
  • Posts: 535
  • Karma: +1/-0
    • View Profile
Re: Version Control
« Reply #6 on: April 09, 2009, 07:05:27 pm »
AFAIK EA does not provide credentials to SVN at all but simply hangs when the local (!) SVN client is not configured to cache them (which has to be done before you first use EA with SVN).

EA also hangs when it tries to use TortoiseSVN, its needs SVN.exe.

I've never worked with DB repositories though, only with eap files, so the situation could be different there.

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Version Control
« Reply #7 on: April 09, 2009, 10:06:00 pm »
We work with SVN and MSSQL so I have a litlte expirience with it.
1) EA locks file
2) EA perform "get latest to the file
3) EA rebuilds its content with whatever is in file
You need to configure the SVN client to hold the credentials (a Frnak mentioned) else EA will just hang, even if you are using NT log in, and you must update it every time the log in changes.
We work with SVN (through Tortoise and Collabnet) and NT log in so every time someone changes password they have to perform SVN update through Tortoise, so the Colabnet client gets the password.

Enjoy
Recursion definition:
If you don’t understand the definition read "Recursion definition".

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Version Control
« Reply #8 on: April 09, 2009, 10:48:39 pm »
QED
No, you can't have it!

AlexDG

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: Version Control
« Reply #9 on: April 10, 2009, 12:44:09 am »
Yes but no, I can checkin a new package into version control and everything seems okay, but checking out first gives a message that "import is locked by user: me" which is crazy since i am not importing, and if I choose to ignore this message it crashes.

Oh and crashing just shouldn't happen anyway, whatever happend to a graceful exit.
« Last Edit: April 10, 2009, 12:45:10 am by DuncanGreenyer »

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Version Control
« Reply #10 on: April 10, 2009, 01:01:00 am »
Hoooo! that's totaly a different issue. It hapend to us also seens we had packages checked out in previues version of EA, wich consults SVN with every openning of the projcte. This is something the new version does not do, so if you had a packages checked out in previeus version and for some reason it is not reported in DB/EAP file  - you will fail to check it out.
Same you'll have a problem if ouy chakc out in computer A and the want o check in in computer B, since EA does not check VC server and sinec it is writen in the DB that you check it out it belongs to you no matter the computer you used.
Also if the check out failed but the lock action (which is the first in check out procedure) succedded then it is not noticed as checked out by you in DB/EAP, but it is in SVN, so when you try to check out EA checks with SVN and discovers it is alreday checkedout. In this caes you'll have to release lock through SVN and try again.

You may want to perform validation of VC through Project>version control>Validate version control configurations. This will fgive you a report of all the packages and which ones are faulty.

I don't have all the answers for VC issues, we are still to learn how it works with the new verison of EA, but my feelings are that the disconection of EA from VC will give us a lot of headaches.
Recursion definition:
If you don’t understand the definition read "Recursion definition".

AlexDG

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: Version Control
« Reply #11 on: April 10, 2009, 01:17:17 am »
I can understand that but it was "I" who checked the package in and "I" who tried to check the package out from the same machine.

At the moment I'm testing this stuff before we attempt to roll it out and i'm the only person working with this stuff. I am using two PCs one as the server and the other as the client and I was working on the client. So how can I lock myself out whilst checking out?

Martin Terreni

  • EA User
  • **
  • Posts: 672
  • Karma: +0/-0
  • Sorry, I can't write
    • View Profile
Re: Version Control
« Reply #12 on: April 10, 2009, 02:07:06 am »
For some reason I don't know EA got stacked after locking the package, but before marking it as checkedout in DB, so when you try to check it out it tryes to lock the package again it fails, because it is already locked by you .In the new version of EA it doesnt metter if it is locked by you and on the same machine, if it is not marked as checkedout by you in DB then it is checkout by someone else.

This is not the correct way to work, but this is how 7.5 works.
Recursion definition:
If you don’t understand the definition read "Recursion definition".

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Version Control
« Reply #13 on: April 10, 2009, 02:21:03 am »
It's a long shot, but do you have security enabled in EA?
I think there is a setting for importing xmi.
Maybe you don't have the rights to import an xmi file?
What happens if you do a manual import of an xmi file?

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Version Control
« Reply #14 on: April 10, 2009, 11:45:30 pm »
And have you reported this to Sparx support? They'll be interested in anything that hangs or crashes EA.
No, you can't have it!