view TODO @ 635:85e2209d401c

Protocol switch from using generators to stream-like objects. This allows the the pull side to precisely control how much data is read so that another encapsulation layer is not needed. An http client gets a response with a finite size. Because ssh clients need to keep the stream open, we must not read more data than is sent in a response. But due to the streaming nature of the changegroup scheme, only the piece that's parsing the data knows how far it's allowed to read. This means the generator scheme isn't fine-grained enough. Instead we need file-like objects with a read(x) method. This switches everything for push/pull over to using file-like objects rather than generators.
author Matt Mackall <mpm@selenic.com>
date Wed, 06 Jul 2005 22:20:12 -0800
parents 62a7b679a9ca
children a55048b2ae3a
line wrap: on
line source

General:
- Better documentation
- More regression tests
- More specific try/except.
- less code duplication, more code in the right places
- python 2.2 support
- better import support
- export to git
- Code cleanup: apply http://python.org/peps/pep-0008.html

Core:
- difflib creating/removing files (fixed except dates: should be epoch)
- directory foo.d or foo.i with existing file foo (use some quoting?)
- get various options from hgrc (e.g. history always -v, tip always -q)
- better push support (hack exists)
- hg over ssh:// and https:// and rsync://
- hooks for new changesets getting pulled/imported etc.
- make showing removed files (in history etc.) faster.

Commands:
- hg add <directory> should work
- hg status <filename>: file rev, changeset rev, changed, added,
  deleted, sha-1
- select to pull a subset of the heads
- commands.py: number of args too much magic (e.g. in patch())
- automatic pull fallback to old-http://
- optionally only show merges (two parents or parent != changeset-1, etc.)

Web:
- optionally only show merges (two parents or parent != changeset-1, etc.)
- one hgweb with many repos (another script)
- hgweb tip link too verbose
- hgweb: deliver static files (e.g. favicon, stylesheets)
- hgweb personalization: timezone (display/change), display of
  features
- hg export 240 shows -tkmerge (good), hgweb does not (bad).
- some web servers think hgweb.cgi.[di] is a CGI script with old-http://
  (use quoting (see foo.d in Core) or document server configurations?)
- link children in hgweb