Differences between revisions 1 and 2
Revision 1 as of 2011-02-05 00:10:06
Size: 1092
Editor: mpm
Comment:
Revision 2 as of 2012-05-08 15:12:45
Size: 1094
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:
-- ----

Technical Debt

/!\ This page is intended for developers.

This page describes areas of Mercurial that most need refactoring and why.

1. What is technical debt?

Technical debt is the cost incurred by writing hard-to-maintain code. It is effectively developer time that is owed to the future.

2. Most wanted list

Several areas have accumulated substantial debt to the point that they are now very challenging to extend or bugfix:

  • The log command (consider replacing core logic with revsets)
  • changegroupsubset (very poorly understood, consider refactoring with contexts)
  • copy/rename handling
  • MQ (doesn't handle exceptions well)

3. Danger list

Several areas are in danger of becoming troublespots:

  • subrepo support (not well-contained)
  • bookmark support (not well-contained)

4. Tools for refactoring

The most successful refactorings introduce natural high-level abstractions that simplify complex code. For instance:

  • contexts
  • revsets


CategoryDeveloper

TechnicalDebt (last edited 2013-08-27 19:26:55 by WagnerBruna)