Author Topic: incremental code import into a very large model  (Read 298 times)

eberline

  • EA User
  • **
  • Posts: 40
  • Karma: +0/-0
    • View Profile
incremental code import into a very large model
« on: July 12, 2019, 10:08:12 am »
Is it possible to perform an incremental code import, to both synchronize existing elements and import new ones? For our large project, a full re-import from source takes far too long to be practical for a nightly job. That's on a local .eapx repo; on a SQL Server repo over WAN, it would take days. (Even just doing a project transfer over WAN takes days; I'll be looking at PCS4 for WAN optimization, later.)

I tried temporarily removing from the source tree those files that haven't changed, but EA then considers those unchanged elements to be "not found in code". I was hoping it would instead ignore those elements, and only consider removing elements no longer found in their still-found source files.

I need an automatable workflow to control missing code elements separately from missing code files. Or some other way to accomplish incremental import, for example if EA would compare model element timestamps with source file timestamps.

Any suggestions?

Arquesoft

  • EA User
  • **
  • Posts: 258
  • Karma: +5/-3
  • EA Consulting and development in Spanish
    • View Profile
    • Arquesoft website
Re: incremental code import into a very large model
« Reply #1 on: July 20, 2019, 12:56:04 am »
I've worked in several different environments in EA with different clients and definitely the worst option is to choose a workflow in which you need to export and import data from one model to another. In those cases the best way is to export lower-level packages (containing fewer elements), but the costs is to have more packages to export.

So, this is a nightmare from any point of view. The solution: restructure your strategy in order to avoid export and import. Maybe consider have a unique repository.

If you try to explain here why you need more than one repository we could help you to think different strategies.

eberline

  • EA User
  • **
  • Posts: 40
  • Karma: +0/-0
    • View Profile
Re: incremental code import into a very large model
« Reply #2 on: July 20, 2019, 05:12:45 am »
the worst option is to choose a workflow in which you need to export and import data from one model to another.

If you try to explain here why you need more than one repository we could help you to think different strategies.

Hey, thank you for the response, but I think there's been a miscommunication.

By "import", I mean as reverse engineering of C++ code, not import of model packages from one repo to another. So the question is how to do that incrementally:
  • importing from just e.g. a few dozen files that have changed in the last {n} hours, not all of the tens of thousands of files;
  • removing elements that were in updated files but are no longer there; and,
  • removing elements that were in deleted files.
Just one EA model repository, shared (eventually) among our WAN-distributed team.

I hope this is a pretty common use case, and somebody must have solved it already; this can't be the first project needing a model in sync with a very large codebase under active and geo-distributed development. I may get lucky with the C# automation API, meanwhile... Help?!

Arquesoft

  • EA User
  • **
  • Posts: 258
  • Karma: +5/-3
  • EA Consulting and development in Spanish
    • View Profile
    • Arquesoft website
Re: incremental code import into a very large model
« Reply #3 on: July 20, 2019, 07:36:37 am »
Do you use the native reverse engineering option in EA? have you ever tried the Visual Studio integration? https://sparxsystems.com/products/mdg/int/vs/index.html

eberline

  • EA User
  • **
  • Posts: 40
  • Karma: +0/-0
    • View Profile
Re: incremental code import into a very large model
« Reply #4 on: July 22, 2019, 06:12:23 am »
Do you use the native reverse engineering option in EA? have you ever tried the Visual Studio integration?

I've been importing code via EA's UI, if that's what you mean by the native option:
   Code  →  Import  →  File  →  Import Source Directory...
And occasionally
   Code  →  Code Engineering  →  Synchronize  →  Synchronize Selected Element(s)

I tried MDG Integration years ago, but get the impression it's a dead end, or at least no longer under active development. It never seemed to track releases of Visual Studio very well. The latest install I found (version 5.0) was signed five years ago, and is only documented to support up to VS 2013 and Windows 7. I see the option to automatically sync when saving code files in VS, but no mention of doing so when code files are modified externally by for example a Perforce client. So even if MDG Integration works at all with Visual Studio 2015-2019 and Windows 10 and maybe the old Perforce SCC plugin for VS, I still don't see how it gets me any closer.

But again, I do appreciate the suggestion, thanks.