Book a Demo

Author Topic: Usage of Version Control - opinion requested  (Read 7655 times)

Steven Bos

  • EA Novice
  • *
  • Posts: 14
  • Karma: +0/-0
    • View Profile
Usage of Version Control - opinion requested
« on: June 15, 2016, 06:45:25 pm »
Hello,

So we are looking at a current project on what we will or will not use for a Shared Repository to be used by multiple teams. One of the things that have to pass our decision tree is Version Control. Now we do understand how helpfull Version Control is but we now got stuck in finding/selecting the proper Version Control tools.
Questions from me to you.

1 - Are you using Version Control?

2 - What are you using for Version Control?

3 - How easy was Version Control for you to install?

4 - How many additional software packages did you have to install to get it all to work?

5 - How user friendly is the Version Control you are using?

Yes, it is a list but we want to make sure that it is easy to install, easy to use, easy to maintain and most of all does not cost us a suitcase full of money.
In the end - is it really worth all the money and trouble to get it installed?

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Usage of Version Control - opinion requested
« Reply #1 on: June 15, 2016, 07:07:42 pm »
Steven,

Adding version control will add a significant overhead to your day-to-day modelling. Every time you check a package in EA will export the package to XMI and upload that xmi file into the version control system.
And every time you check a package out, EA will get the latest version of the XMI file from the VCS server, delete the package and recreate it by importing the XMI file.
In any scenario it is crucial to keep the size of the packages to an absolute minimum. You don't want to be waiting 20 minutes before you can start editing a part of the model because it has to import a huge XMI file.

I usually only advice to use version control in one of the following scenario's

- You have a part of the model that is used to generate (some sort of) code from
- You have some kind of requirement (ISO compliance?) to be able to go back to any previous version of the model
- You have a part of the model that is shared by different repositories
- ...

But if you do decide that you need version control then it works pretty much OK.
It takes some configuring, but once everything is setup the experience for the users is pretty user friendly.

I've used both SVN as TFS, and both worked fine.

In any case you will need to install a server component to store the version control repository, and a client component that EA will use to check-in/check-out.

Geert

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Usage of Version Control - opinion requested
« Reply #2 on: June 15, 2016, 08:31:37 pm »
Version control has been invented for source code. For that it works pretty well. UML models do not have the granularity of code but deal with more complex structures. So the single commits "renamed x to y" or so, are absolutely pointless. Where ever possible I voted for and implemented a nightly commit on an else not versioned repository. And before you ask: branching with UML models is impossible, except you are an actor in "The Deadline: A Novel About Project Management"

q.

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Usage of Version Control - opinion requested
« Reply #3 on: June 16, 2016, 09:57:18 am »
I find that mostly when people talk to me about version control with Sparx, they actually want the built in base lining functionality.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Usage of Version Control - opinion requested
« Reply #4 on: June 16, 2016, 10:20:35 am »
Hi Steven,

Listen carefully to what qwerty, Geert and Glassboy have to say (in that order - for this particular topic).

We run an enterprise scale repository (our snapshot .EAP files) have sometimes reached 0.5Gb in size.  Currently over 300Mb.  We DON'T use XMI for version control.  (We currently don't have any of the needs that Geert has mentioned - which might suggest we should maintain one or more source evolved XMIs).  This repository has been live for over 1 year. Previously, I had a repository  for over 3 years without VC.

We do however, take regular snapshots with the Project Transfer facility (takes about 8mins) - both to .EAP files and SQL Server.  We also do SQL Server backups (takes about 1 min).

We often use the snapshots to recover portions of the repository that have been abused.  (We do a lot of surgery in the background - via Add-Ins and Side-Ins.)

If you must make XMIs, make a snapshot copy and then export from that.  That way you offload any impact on the main model and you have a guaranteed fixed repository to play with.

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

Steven Bos

  • EA Novice
  • *
  • Posts: 14
  • Karma: +0/-0
    • View Profile
Re: Usage of Version Control - opinion requested
« Reply #5 on: June 16, 2016, 05:40:32 pm »
I already had a feeling something was of with this Version Control.
That is why I asked the question. Arguments from experts on a forum like this do help me strengthen my case of not using Version Control. Now I am sure of it.

Yesterday we also had some discussion regarding backups/snap-shots to other repositories or usage of the Baseline to compare repositories. Also the whole configuration of Subversion or the cost from TFS are to steap to just give it a try.

I will try to convince them to go for the snapshot version for now and to store the snapshots on a server with backup functionality.

Thanks for the answers,

Steven

Dieter Goetz

  • EA User
  • **
  • Posts: 43
  • Karma: +0/-1
    • View Profile
Re: Usage of Version Control - opinion requested
« Reply #6 on: June 16, 2016, 08:09:47 pm »
Hi Steven,

we are working on a project in EA under version control in a big team for several years now. It works fine and I will never miss it. Ok, you have to spend some time on get all latest, check in and check out. But with version control it is very easy to share a model on several PCs. With a version control you have log messages where you can look up the changes in the model. Also you can open an older xml file or even compare them to check changes. Check out can be nerving sometimes. But it prevents inconsistent changes by two designers on the same diagram.

You have to take care if you delete an element in a controlled package linked to an element in another controlled package. Both packages shall be checked out. An EA-Add-In can check this relation and stop the deletion.

Actually we switched off baselines. Baselines doesn't have a HEAD version. If you restore in your model to a baseline all changes from the last baseline to your current work gets lost.
When you use baselines it will be a good idea to backup your EA-repository regularly.

Dieter