title: What does "check out" and "check in" actually do in Enterprise Architect version control?
body: <p>Lately, I started to use SVN branches to manage different versions of my model. Before I started I read official guides on version control and tried it on toy models to get the gist of it.</p>
  <p>Now, to make things easier I'd like to write some scripts to help me manage different branches of a model. To do this efficiently and in a controlled manner I'd like to learn what does EA &quot;check out&quot; and &quot;check in&quot; commands actually do. I didn't find any documentation on this topic.</p>
  <p>From observation and deduction I assume that &quot;check out&quot;:</p>
  <ol>
  <li>does <code>svn checkout</code> on a file</li>
  <li>does <code>svn lock</code> on a file</li>
  <li>deletes all elements from a package (without showing it)</li>
  <li>imports a checked out XMI file (like 'import package from XMI file')</li>
  <li>marks some flags in EA db</li>
  </ol>
  <p>For &quot;check in&quot; I assume it:</p>
  <ol>
  <li><p>exports a package to temporary XMI file (like 'export package to XMI file')</p>
  </li>
  <li><p>prompts for commit message (using &quot;check in branch&quot; the order of 1. and 2. is reversed)</p>
  </li>
  <li><p>if the commit message is confirmed - replaces a file in a configured directory, does <code>svn commit</code> with message (one after another, if &quot;check in branch&quot; is used) and <code>svn unlock</code> on every single file</p>
  </li>
  <li><p>marks some flags in EA db (like package VC status)</p>
  <p>I'm not sure how does EA know about missing cross-references, but it must check this after exporting a XMI file.</p>
  </li>
  </ol>
  <p>Can you help me finding out what is the actual process of &quot;check out&quot; and &quot;check in&quot;? Thanks</p>