Book a Demo

Author Topic: Version Control: Advice Request  (Read 4816 times)

Eamonn John Casey

  • EA User
  • **
  • Posts: 110
  • Karma: +0/-1
    • View Profile
Version Control: Advice Request
« on: February 17, 2017, 06:18:53 am »
Hi!

I am getting alot of greif from work about the limitations of versioning within EA.
We got:
* Baselining at a package level - which has problems when you (normally) do things across packages.
* Time Based Modelling - new in v13. This is a super feature! But again we are talking package level problem.
* Auditing - not used that. But I get feedback that it makes the system really slow.

* Microsoft Teamfoundation Server
* Subversion, Maven, ond others
* LemonTree
These are great versioning tools but with the limitation (I suppose) that the entire Repository gets versioned.

Anyone out there got some alternatives? Suggestions? Guidance? Reference material?

Thanks.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Version Control: Advice Request
« Reply #1 on: February 17, 2017, 07:30:30 am »
Jep. Make a nightly snapshot and stow that in your VC. That's more than sufficient to do rollback (which are never ever needed, though as modeling has only one direction: forward). At least it's an indication of how much has been changed in a certain time, indicating some kind of progress.

q.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Version Control: Advice Request
« Reply #2 on: February 17, 2017, 10:25:51 am »
Jep. Make a nightly snapshot and stow that in your VC. That's more than sufficient to do rollback (which are never ever needed, though as modeling has only one direction: forward). At least it's an indication of how much has been changed in a certain time, indicating some kind of progress.

q.
To take qwerty's snapshot idea to it's (hopefully) logical conclusion, we take snapshots using transfer project (faster than XMI for export and an order of magnitude quicker for recovery).  We then use MS Access to do any recovery from a previous snapshot.  For example, one time EA lost over 300K diagram links.  In 30 mins we had recovered them all.

We don't use VC AT ALL.  Only snapshots.  As qwerty says, modelling proceeds only forward.

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

PeterHeintz

  • EA Practitioner
  • ***
  • Posts: 1001
  • Karma: +59/-18
    • View Profile
Re: Version Control: Advice Request
« Reply #3 on: February 17, 2017, 07:02:58 pm »
We use this snapshot approach as well.
On a daily basis we transfer our MS-SQL DB to MS-Access. The reason for that, is more or less that in case of disaster we do not want to wait until our IT department find a timeslot to do a SQL-DB recover. If we have a model fragment that is “formally verified” (we are working on safety related systems”) we check in the snapshot to SVN and do some tagging.

Further on, we use MS-Assess models having SVN configured packages. But this only for models with view users which are only updated from time to time (not daily).
Best regards,

Peter Heintz

Eamonn John Casey

  • EA User
  • **
  • Posts: 110
  • Karma: +0/-1
    • View Profile
Re: Version Control: Advice Request
« Reply #4 on: February 18, 2017, 12:25:09 am »
Thanks for the help. Probably too much to ask if there is a Transfer Project capability somewhere in the API so I could automate it using C# or something.

Eamonn J.

PeterHeintz

  • EA Practitioner
  • ***
  • Posts: 1001
  • Karma: +59/-18
    • View Profile
Re: Version Control: Advice Request
« Reply #5 on: February 18, 2017, 12:27:40 am »
This API feature is there.
We do the whole job including checkin to SVN by script.
Best regards,

Peter Heintz

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Version Control: Advice Request
« Reply #6 on: February 18, 2017, 02:47:29 am »

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Version Control: Advice Request
« Reply #7 on: February 20, 2017, 07:34:01 pm »
Hello,


A different approach is to use the reusable asset service as a versioning repository.

Reusable assets are related to baselines, so each asset corresponds to a package (and you've got the same in-EA comparison tool), but the versions are stored off-project in a "registry" (which is in fact also an EA project, but of a somewhat different nature).

You can only pull the latest version out of a registry, but the service does support dependency management between packages. The support is limited to dependencies within the same "storage" (sub-section within a registry), but it does work. This is the key selling point in my book.

Access to registries and storages is controlled separately from the regular projects, and with a different proprietary mechanism which you'd have to get to know.

You could implement branching by setting up different storages for the different branches; however all management of the branching stuff you'd have to do by imposing suitable policies. (Note: I haven't tested this, so it might be that you'd have to set up separate registries in order to support branching, not just separate storages.)

It's rough and ready in parts, but it has some potential and it might suit your needs.

I've set this up for a client, and we're currently looking at some additional functionality such as between-storage dependency management, which could be implemented but which requires a bit of reverse-engineering of the storage format (which is undocumented, and there's no API).

HTH,


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