title: Alternatives to commented out code for historical purposes
body: <p>Does anyone have a valid alternative for using commented out code checked into the repository for findability reasons? </p>
  
  <p>The reason I ask is because I had a discussion with a fellow developer recently on checking in code that is commented out. My stance is that commented out code should never be checked into our VCS since it is not technically part of the codebase, and thus annoying cruft which does not deserve the bytes it is taking up, so to speak.</p>
  
  <p>His counterpoint was that some of the commented out code he checked in still illustrated some work he would like to fix in the future (in this particular point the commenting out occurred 2 years ago, but that is besides the point). He wanted to keep it in the codebase so he could easily find it, and even though it would not currently compile, it still showed in global lines the correct way to solve it.</p>
  
  <p>In the end he agreed, sort of, that commented out code does not belong. But when we were thinking of possible alternatives to his we came up pretty short. </p>
  
  <p>The only options I could think of were:</p>
  
  <ul>
  <li><strong>Wiki</strong>: just paste it somewhere on a wiki. Drawback of this is that it will get mixed with other non-code related wiki content which may make it hard to search on it.</li>
  <li><strong>Index all VCS revisions</strong>: This is largely theoretical for me, but are there systems which make a codebase and its entire history searchable?</li>
  </ul>
  
  <p>Does anyone know of/use any alternatives? Both my options sound like more work than it's actually worth, but that may be skewed by my reasoning that commented out code is worthless anyway. I'd hate to have to go the "Hey, if you don't have time to fix it now it's not important enough to stay in the codebase anyway" route (but I will if there are no viable alternatives).</p>
  
  <p><em>Sorry for the horrible title, I could not come up with a better one</em></p>