[isabelle-dev] hg

Makarius makarius at sketis.net
Thu Mar 5 16:29:10 CET 2009

On Mon, 2 Mar 2009, Lawrence Paulson wrote:

> Can you tell me why "status" returns the attached output? I haven't 
> changed any files, as far as I know.
> ~/isabelle/Repos: hg status
> M doc-src/IsarImplementation/Thy/ML.thy
> M doc-src/IsarImplementation/Thy/ROOT.ML
> M doc-src/IsarImplementation/Thy/document/ML.tex
> M doc-src/IsarImplementation/Thy/document/session.tex
> M doc-src/IsarImplementation/implementation.tex
> M doc-src/IsarImplementation/style.sty
> M doc-src/IsarRef/IsaMakefile
> M doc-src/IsarRef/Makefile
> M doc-src/IsarRef/Thy/Document_Preparation.thy
> M doc-src/IsarRef/Thy/Generic.thy
> M doc-src/IsarRef/Thy/HOLCF_Specific.thy
> ! doc-src/IsarImplementation/Thy/base.thy
> ! doc-src/IsarImplementation/Thy/document/base.tex
> ! doc-src/IsarImplementation/Thy/document/integration.tex
> ! doc-src/IsarImplementation/Thy/document/isar.tex
> ! doc-src/IsarImplementation/Thy/document/locale.tex
> ! doc-src/IsarImplementation/Thy/document/logic.tex
> ! doc-src/IsarImplementation/Thy/document/prelim.tex

Larry, I am forwarding this to isabelle-dev because it might affect other 
Mac users as well.

>From what I have learned in the meantime, you probably came across a 
case-folding issue of Mercurial 1.0.x -- the default Mac OS filesystem is 
insensitive.  I am very glad that you did not force it, otherwise we would 
probably have lost some arms and legs.

The release notes of the consolidated Mercurial 1.1.x say something like 
"improved correctness in the face of casefolding filesystems" (this 
wording is strikingly similar to what I usually use instead of postulating 
"fixed bug" :-)).

So it might help to prevent such problems in the future by telling 
MacPorts to upgrade Mercurial.  IIRC it works like this:

  sudo port upgrade mercurial

or even

  sudo port selfupdate
  sudo port upgrade installed

Users of 1.1.x get an extra bonus by the nice "color" extension for 
regular tty output.  It can be configured like this in ~/.hgrc

  color =

  status = --color=always
  diff = --color=always

  status.modified = magenta
  status.added = green
  status.removed = red
  status.deleted = cyan bold
  status.unknown = black bold
  status.ignored = black bold
  diff.diffline = bold
  diff.extended = cyan bold
  diff.file_a = red
  diff.file_b = green
  diff.hunk = magenta
  diff.deleted = red
  diff.inserted = green
  diff.changed = white
  diff.trailingwhitespace = bold red_background

Note that the "less" pager requires option -R (e.g. via env LESS) to 
interpret color codes properly.


More information about the isabelle-dev mailing list