Book a Demo

Author Topic: Version control with shared packages  (Read 3556 times)

Mekugi

  • EA Novice
  • *
  • Posts: 13
  • Karma: +1/-0
    • View Profile
Version control with shared packages
« on: January 14, 2015, 07:57:10 pm »
Hi,

I am trying to figure out how to use the version control capability of EA 11.0 to manage an EA package shared by different projects on different development branches.

I am using Perforce as a source code control application through its SCC-compliant plugin.
Each project has its own local project path and Perforce codeline.
I am using the multiple private model mode where each user has a own .eap file for each single project.


My understanding is that the package shall have its own unique identifier for the version control and I intended to use a version control setting for the package.

The problem here is that EA links the unique identifier to a single SCC configuration stored in the registry rather than in the EAP file.
Said version control setting contains information about the local project path and the Perforce codeline used to checkin/checkout the package.
Consequently, this setting cannot be used by 2 different projects in different local paths and possibly using different branches.

Is there any way to configure EA to suits the need of sharing a version-controlled package between different projects?

Thank you by advance.

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 with shared packages
« Reply #1 on: January 14, 2015, 08:32:26 pm »
Mekugi,

I'm not sure I understand the problem.
You are not trying to maintain different branches of the shared package are you?

If not then it is rather simple. You have a single version control repository that contain the one and only version of your package.
Each EA project connects to that same VC repository.
Only one EA project at a time can checkout the shared package and thus make changes.
Once checked in you can do a "get latest version" on the other EA projects to get the latest and greatest version of the shared package.

Geert

Mekugi

  • EA Novice
  • *
  • Posts: 13
  • Karma: +1/-0
    • View Profile
Re: Version control with shared packages
« Reply #2 on: January 15, 2015, 01:09:05 am »
Hello Geert,

Thank you for the answer.

Maybe "project" was not the proper term to use in that context. I did not mean EA projects, but customer application projects (although application projects use different EA projects  :D).
Let's use "applications".

There are 2 axis:
- applications
- branches
Let's set the branches aside for the moment.


In my context, several applications share some packages.
Each application has its own Perforce workspace and local project path, as well as a EA .eap file  (not under SCC).

So for application appA:
- the package is located in ~/appA/sharedPackage.xmi to be checked out through Perforce workspace appA and the EA project is ~/appA/appA.eap
And for application appB:
- the package is located in ~/appB/sharedPackage.xmi to be checked out through Perforce workspace appB and the EA project is ~/appB/appB.eap

When I use appA.eap, I would like the package to be read from  ~/appA/sharedPackage.xmi and when I use appB.eap, I would like the package to be read from  ~/appB/sharedPackage.xmi.

Of course, I will not modify the package simultaneously from both EA project, as sharedPackage.xmi is protected by an exclusive lock.


As the Version Control Setting is located in the windows' registry, the information it contains will be valid only for one of the two applications.
And I cannot use two different Version Control Settings as these would need to have the same unique identifier.

Hope this clarifies the configuration I am using and the sought target.

Cheers,
Mekugi

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 with shared packages
« Reply #3 on: January 15, 2015, 06:32:45 pm »
Mekugi,

You need to setup a separate version control repository for your Shared EA packages.
You should not control them in the same vc repository as your applications.

Geert

Mekugi

  • EA Novice
  • *
  • Posts: 13
  • Karma: +1/-0
    • View Profile
Re: Version control with shared packages
« Reply #4 on: January 15, 2015, 06:44:03 pm »
Geert,

That is indeed a possibility, but this comes with the cost of having to manually maintain the consistency between the baselines of the model and the source code, which I wanted to avoid.

Mekugi