Note:

This page is primarily intended for developers of Mercurial.

cHg Porting Plan

Steps to merge cHg into the Mercurial tree.

1. How to Merge

Perhaps (B) or (D).

  1. single big commit
    • {o} hard to review

    • {o} useless history for digging

  2. reorganize as 10+ patches (base implementation, pager, setenv, sendfds, ...)
    • {*} can improve the code incrementally

    • {o} less useful history for digging

  3. pull, rename and merge
    • {o} having more than one roots

  4. convert with filemap and rebase
    • {*} full history is useful when digging into bugs

    • {o} 300+ revisions

2. Source Layout

Perhaps (A) or (B) because we don't have to worry about the extension path.

Original:

README
hgext/chgserver.py
      chgutil.c
src/Makefile
    chg.c
    hgclient.[ch]
    util.[ch]

A. Merge extension part into hgext:

contrib/chg/Makefile
            README
            chg.c
            hgclient.[ch]
            util.[ch]
hgext/chgserver.py
mercurial/osutil.c <- chgutil.c

B. Merge extension part into core:

contrib/chg/Makefile
            README
            chg.c
            hgclient.[ch]
            util.[ch]
mercurial/chgserver.py
mercurial/osutil.c <- chgutil.c

C. Put everything under contrib/chg:

contrib/chg/hgext/...
            src/...

3. Coding Style

Current state:

What to do:

4. Random Thoughts


CategoryDeveloper CategoryNewFeatures