Book a Demo

Author Topic: Version Control and DBMS repository - EA Sparx - 12.0  (Read 6918 times)

sparxUser

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Version Control and DBMS repository - EA Sparx - 12.0
« on: April 07, 2016, 08:07:16 am »
Hi,
I am wondering if any one can point me to an article that explains - in a distributed team environment - should I use SVN with a RDBMS? What are the pros and cons?

As well I found an article by Sparx on "Version Control Best Practices for Enterprise Architect" but it is from 2010 - does anyone know if we have similar more recent documentation for EA version 12.0?

Will appreciate an urgent response.
Best Regards,
/Abhijit

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 and DBMS repository - EA Sparx - 12.0
« Reply #1 on: April 07, 2016, 02:46:47 pm »
There's not a more recent document, but EA hasn't really changed in that part, so I guess it is still as valid as it was 6 years ago.

Geert

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #2 on: April 07, 2016, 02:56:05 pm »
My tip is, if you decide to migrate your repository to a new db server and version control system remove all security before you start the move :-)  Saves a lot of time.

Helmut Ortmann

  • EA User
  • **
  • Posts: 970
  • Karma: +42/-1
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #3 on: April 07, 2016, 03:09:02 pm »
Hi,

the technical stuff and the scenarios haven't changed a lot since 2010. All the information are still valid. Go to Resources on the Sparx Site (e.g.http://sparxsystems.com/WhitePapers/Version_Control.pdf).

DBMS:
Just a more reliable solution as *.eap files. With a DBMS you can work with a large team on one repository without bothering about corrupted *.eap files and more. It's the solution if you want to work on valuable and reliable information. Have a look on ERP systems with Access or Accounting with Excel, It works in principle but...

Version Control, e.g. with SVN:
A typical Use Case is: You want a historical release of a package of your repository / model. Think of it and of the dependencies to other packages.
Some processes like SPICE, Functional safety, CMMI requires Version Control. Then it's difficult not to use it. It's similar to code development with SVN. In practice Diff/Merge isn't an easy task. To summarize: Think carefully about using Version Control. It isn't easy to profit from the theoretical advantages (there are a lot of discussions in this forum, search for Version Control, SVN, Merge)

DBMS:
In my opinion a must have if you work in a team and your data are valuable for you. It's easy to setup and maintain.

SVN / Version Control:
+ Version Control ( if your process requires it)
+ Parallel Development, in theory, mostly it won't work in practice (a lot of information in this forum)
+ In a distributed environment (very slow WAN) it is sometimes faster in combination with a local repository
-  Diff/Merge don't give the results you may expect (try it for complex changes and dependencies between packages)
-  Some unexpected errors with EA ( I invested a lot of time searching for them, possible lost of data)
-  Setup needs some time
-  Checkin / Checkout needs extra time

There are a lot of possible solutions to do it with Version Control:
- Central Repository (Everyone looks at the same data)
- Local Repository (Everybody has it's own local repository and synchronization is made by Version Control and Checkin/Checkout)
 
Just think:
You have the same information in a database and in a Version Control system as *.xml files. If you need a historical release of a package you can check out this historical release of that package. You can compare it and merge it. You may have more than one repository to handle it. It works but it comes for a price. The problems are the dependencies to other packages under Version Control.


If you really want Version Control give it a try and test it with realistic changes according to your Use Cases. Don't think of a repository as a flat text file with code. Dependencies, seeing and handling them are the challenge.

Regards,

Helmut
Coaching, Training, Workshop (Addins: hoTools, Search&Replace, LineStyle)

sparxUser

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #4 on: April 08, 2016, 11:50:52 am »
Hi Helmut,
Thank you for the information - the problem with my financial client is - they won't stay connected to the DBMS all the time - so they want to work offline and then next day upload it to the repository. Is there any easy way of letting them work offline? How do we setup the local repository and sync. it with the DBMS repository? I know we can use export and import but the client things it is too cumbersome to do on a regular basis.
See with SVN they can do check out to there local drive disconnect and do their updates and next morning re-connect and upload. Is there anything like that we can do with a DBMS repository?

Best Regards,
/Abhijit

Helmut Ortmann

  • EA User
  • **
  • Posts: 970
  • Karma: +42/-1
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #5 on: April 08, 2016, 02:55:10 pm »
Hi,

it isn't easy to advice something without knowing the full story.

It's possible to work with local repositories (every user or every user of the branch has it's own repository). This may be a *.eap file for a user.but it also may be a DBMS.

If you use Version Control with e.g. SVN a DBMS isn't that important.

Setting it up:
Let's assume you use SVN and local repositories.
1.  Make a useful package structure to work parallel without to much loss of a comfort
    (fine granulare is usually a good idea, look to your typical work to change something)
2. Setup Version control for EA and SVN
3. Put the packages under Version Control / SVN
4. Test it: Chekin / Check out
5. The other local repositories
5.1 Make a copy of the repository you have just setup with SVN
5.2 Connect that repository with SVN (setup SVN), make the repository private
5.3 You are done
5.4 Synchronization (Get All from...)
5.5 There is no need to put the *.eap file under SVN

Ok, that's for short. Read the description in EA documentation carefully and think about your Use Cases.

It works pretty good with the Use Cases I envisage. As I mentioned earlier. This isn't the silver bullet and you may experience some drawbacks. I was able to handle them.

The user has to:
- Checkout /Checkout Branch to change something (implicit lock)
- Checkin after the changes
- 'Get all..'  or so to make a synchronization
If you have a slow WAN it's also pretty fast


You may also check cloud solutions.

Kind regards,

Helmut
 

Coaching, Training, Workshop (Addins: hoTools, Search&Replace, LineStyle)

sparxUser

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #6 on: April 09, 2016, 12:05:25 pm »
Thanks a bunch.

/Abhijit

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #7 on: April 11, 2016, 08:48:40 pm »
Hi Abhijit,

There is one more option available, which might be indicated in your situation: replication. It's been around for years, I haven't seen it used a lot (actually, ever) but it does have a use case and yours might be it.

/Uffe
My theories are always correct, just apply them to the right reality.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Version Control and DBMS repository - EA Sparx - 12.0
« Reply #8 on: April 11, 2016, 10:03:05 pm »
Hi Abhijit,

There is one more option available, which might be indicated in your situation: replication. It's been around for years, I haven't seen it used a lot (actually, ever) but it does have a use case and yours might be it.

/Uffe
Pleasenot! Mickeysoft's so called replication is something you should trust only as far as you can throw it. You'll open a can of worms.

q.