title: Version control and complicated applications that install files everywhere
body: <p>I have to work on a web application. The version control has directories structured like:</p>
  
  <pre><code>appname/conf
  appname/www
  appname/etc
  appname/keys
  appname/lib
  ...
  </code></pre>
  
  <p>However, for the application to work, it currently has to live in system directories:</p>
  
  <pre><code>/etc/httpd/conf.d
  /var/www/html
  /etc/appname
  /etc/pki/tls/
  /usr/lib/perl5/...
  ...
  </code></pre>
  
  <p>There is an RPM to take the VC'ed code and create a package that places the code into the production place (i.e. /var/www/html and others). There are no install instructions, I'm supposed to use the RPM and improvise (not ideal I know).</p>
  
  <p>In a case like this, how does everybody edit the application, maintaining version control features (git diff etc...), and making changes to the app quick to be runnable? The app is written in Perl, so there's no compile step expected.</p>
  
  <p>The ways I have thought of are:</p>
  
  <ul>
  <li>work on the VC'ed dir (and the code does not execute immediately, you have to have some install step)</li>
  <li>work on the code in the final location (so code edits immediately work, but you have to manually move code back to VC'ed dirs)</li>
  <li>write a filesystem watching program that watches changes to the VC'ed dir, and installs the changed files to their final locations (maybe something like this exists?)</li>
  <li>some other obvious method I've forgotton, I hope someone can tell me :-)</li>
  </ul>
  
  <p>How does everyone handle cases like this?</p>