squash: Combine all changes since a given revision into a new commit

Usage:
  eg squash [--against REVISION]

Description:
  Combines all commits since REVISION into a single commit, and open an
  editor with the concatenation of log messages for the user to edit to
  create a new log message.

  REVISION must be an ancestor of the current commit.  If REVISION is
  not specified, the remote tracking branch for the current branch is
  assumed.  (If there is no such branch, eg squash will abort with an
  error.)

Examples:
  Combine all commits in the current branch that aren't in origin/master
  into a single commit
      $ eg squash --against origin/master

Options:
  --against
    An optional command line argument that makes it clearer what is
    happening.  (In the example above, we are not "squashing origin/master",
    we are squashing all changes since origin/master on top of origin/master.

Differences from git squash:
  eg squash is a command new to eg that is not part of git.