title: A versioned equivalent for SVN properties to be preserved during SVN -> Git migration
body: <p>For the purpose of versioning the content of all jar files released to our customers, for the last few years we've been releasing a text file within those jars that would hold <code>File &lt;-&gt; CVS Version</code> mapping for each java file contained in that jar. CVS repository was in use as our VCS.</p>
  
  <p>Not questioning whether there was no better solution at that time, a couple months back we've decided to migrate to SVN and our solution to keeping the history for a long forgotten jar that might have been retrieved at any time from customer's production environment, was adding a custom <code>svn property</code> to each java file migrated.</p>
  
  <hr>
  
  <p>E.g.:</p>
  
  <p><code>My/Foo/Bar.java</code> migrated at CVS Version <code>1.2.33.5</code> to SVN as <code>svn-rev.5678</code> would receive the following property: <code>svn:cvs = 1.2.33.5</code>.</p>
  
  <p>Last change to <code>My/Foo/Bar.java</code> (CVS version <code>1.2.33.4</code>) was mapped to <code>svn-rev.5145</code> which has the svn property set for our file to <code>svn:cvs = 1.2.33.4</code>.</p>
  
  <p>SVN status / log for that file can be easily browsed so can be both, changes made to that file and the history of <code>svn:cvs</code> property values.</p>
  
  <p>Now, when a new svn check-in comes to that file, say as <code>svn-rev.5700</code>, all that needs to be done is clearing the property.</p>
  
  <p>Mission accomplished - we could have dropped CVS completely.</p>
  
  <hr>
  
  <p>Moving to Git.</p>
  
  <p>The next step on our path is merging some legacy TFS repository with SVN repository that we now have and, not going into much details, the approach we'd like to follow is migrating both of these straight to Git.</p>
  
  <p>One major concern we have is how not to loose the svn:cvs properties introduced during our first migration. Being aware of <a href="http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html" rel="nofollow">gitattributes</a> they may seem like the right way to go, but is there no better option? Is it really necessary to store <code>.gitattributes</code> files around the source code? (the global file wouldn't probably be practical). Also, generating these files and their history from svn properties doesn't sound like a trivial script to write.</p>
  
  <p>Any hints will be well appreciated.</p>