Sparx Systems Forum

Enterprise Architect => Bugs and Issues => Topic started by: Simen on March 18, 2010, 07:44:06 am

Title: Checked out package overvritten by GetAllLatest
Post by: Simen on March 18, 2010, 07:44:06 am
Hi, today we discovered a potential critical problem with version control. We have a SQL Server Repository configured with subversion version control. We've also got User Security configured.

What happened was that user A had a package checked out and was working on that package.

User B ran a combination of resynch package status and GetAllLatest and after checking in other packages from a local eap repository used for working out of office.

Then we discovered that user A's package had been overwritten (he got a message about the model was changed and press ok to update). And he lost all his work since last checkin. And, the package changed status from checked out to check in. The latter changed when he did a resynch VC status but all changes was still gone.

We've immediately stopped all usage of local Copies and GetAllLatest until issue is resolved. Seems like a bug or design flaw. The GetAllLatest was set to import only changed packages.

I'm aware of the note in the help file regarding resynch and packages checked out by other users, but our issue is not the same as noted in the help file from my understanding.

Anyone experienced the same behaviour?
Title: Re: Checked out package overvritten by GetAllLates
Post by: Simen on March 18, 2010, 07:34:05 pm
And forgot to mention, we're usinig EA 7.5.850 and CollabNet SVN Client 1.6.6. Also noticed that in the EA 8.0 B2 release notes there's a fix where resynch is updated to handle packages checked out by other users, could this be our problem?

Thanks
Title: Re: Checked out package overvritten by GetAllLates
Post by: lubos on March 18, 2010, 08:07:26 pm
FYI
I have reported this problem as a bug sime times ago (we use ClearCase)
Sparx accepted it as a defect, but I don't know when they will fix it.
Title: Re: Checked out package overvritten by GetAllLates
Post by: ChrisBD on March 22, 2010, 11:10:59 pm
Its because of things like this that I am pushing for people to export their work to a local model and then import back into the shared model when ready to do so.

Another point to be aware of regarding "Get All Latest" if your connection is slow, or something causes the process to hold up or crash, which is possible with very large models, then every model item is left in a locked state until the process completes.

This happened to me, it left people unable to check in or check out work until I'd managed to get the process to complete.
Title: Re: Checked out package overvritten by GetAllLates
Post by: James Chan on March 27, 2010, 02:09:29 pm
We also encountered this.
So we want to disable this function.
Pls check as follow:
http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1267757052/0
Title: Re: Checked out package overvritten by GetAllLates
Post by: Simen on March 30, 2010, 12:46:56 am
Thanks all for your responses. Would like to see any Sparxians comment on this though. And one more thing we discovered. When importing a new version controlled package to a local eap through GetAllLatest, any elements in the given package of type 'Packaging Component' ends up as a standard Package...
Title: Re: Checked out package overvritten by GetAllLates
Post by: RoyC on March 30, 2010, 10:15:26 am
@sbe and James Chan - please could you submit this in a formal bug report to Sparx Support, using the Report a bug link in the Support column at the bottom of the page. The Support guys will then investigate it for you.

Thanks.
Title: Re: Checked out package overvritten by GetAllLates
Post by: dschmid2 on March 30, 2010, 05:34:12 pm
We are using SVN here and we faced the exact same bug. It's not a matter of SourceControl, its a matter of how EA handles the package import/exports.

When two packages evolve at different paces, and they have associations between its classes, it can happen that when only one of the is updated, associations are just silently REMOVED if the class at the other end of the association is not known, due to the fact that the other package is not yet updated!
And what is really heavy: there is no message notifying the user that there are associations which will be removed. :-?

This is really a heavy issue, i reported it also already via the official bug report forum.
Title: Re: Checked out package overvritten by GetAllLates
Post by: Simen on March 30, 2010, 06:19:33 pm
Bug submitted. Thanks for commenting Roy.
Title: Re: Checked out package overvritten by GetAllLates
Post by: dschmid2 on March 30, 2010, 06:23:47 pm
Instead of waiting for EA to come up with a solution, I started to write an EA-AddIn that replaces the whole VersionControl and GettingLatest Stuff.

- Basically, when opening the EAP-File, the AddIn scans through all controlled packages, compares their version to the one in the repository and displays a nice overview of the whole situation.
- Furthermore it shows the dependencies of the different packages amount each other, so to know that a package needs some classes of another one
- It shows in a Tourtoise-kind of view the list of availabe revisions per package, and a any revision can directly be retrieved from the repository
- the AddIn resolves all dependencies and can perform a healthy GetAllLatest in the correct order to prevent relations beeing removed silently.

This AddIn is just a workaround for us, since EA doesn't seem to care about this issues of XMI handling and resolving relations.
Title: Re: Checked out package overvritten by GetAllLates
Post by: Simen on March 30, 2010, 07:43:50 pm
And yet another problem in the same are. I wanted to move a package (with subpackages) from one model root node to another. As drag and drop between model root nodes doesn't work I decided to export the package as a model branch and the import the model branch to the new model root node (in the same repository).

What happened when I tried to import was that EA started a GetAllLatest as part of the import. As you cannot cancel that process I decided to kill it after some time to prevent loss of packages checked out but not checked in.

Now it seems that work in progress for one package (checked out by another user) is lost as that package was retreived before I got to kill the GetAllLatest process. The help text does not mention that GetAllLatest is an implicit part of importing a Model Branch. Really need Sparx to look into this issue.
Title: Re: Checked out package overvritten by GetAllLates
Post by: Simen on March 30, 2010, 11:12:46 pm
Correction. Turns out that I had to add a view to the model root node, then I could drag and drop the package in question. However the Import Model Branch doing GetAllLatest still apply.
Title: Re: Checked out package overvritten by GetAllLates
Post by: Henrique Narciso on October 27, 2010, 04:06:33 am
Have you developed the addin?  Can you make it available?

Thanks in advance!

Quote
Instead of waiting for EA to come up with a solution, I started to write an EA-AddIn that replaces the whole VersionControl and GettingLatest Stuff.

- Basically, when opening the EAP-File, the AddIn scans through all controlled packages, compares their version to the one in the repository and displays a nice overview of the whole situation.
- Furthermore it shows the dependencies of the different packages amount each other, so to know that a package needs some classes of another one
- It shows in a Tourtoise-kind of view the list of availabe revisions per package, and a any revision can directly be retrieved from the repository
- the AddIn resolves all dependencies and can perform a healthy GetAllLatest in the correct order to prevent relations beeing removed silently.

This AddIn is just a workaround for us, since EA doesn't seem to care about this issues of XMI handling and resolving relations.