I found the culprit.

In my ~/.hgrc I activated the option:
tweakdefaults = True 

"tweakdefaults" changes the behaviour of mercurial to output paths relative to 
the current working directory instead of printing paths relative to the 
repository root [1].

I can get the same behaviour in both cases if I pass the --cwd option to 
<"${HG:-hg}" --config defaults.status\= --repository 
/Users/mhaslbeck/Projects/isabelle --cwd /Users/mhaslbeck/Projects/isabelle 
--noninteractive status --modified --added --clean --no-status>

[1] <https://stackoverflow.com/a/46743585 
<https://stackoverflow.com/a/46743585>> (at the end of the answer)

> Am 02.07.2018 um 14:50 schrieb Makarius <makar...@sketis.net>:
> On 02/07/18 12:59, Max Haslbeck wrote:
>> When I’m in one of the "wrong" directories the build process spend most
>> of its time in the function Mercurial.check_files [1]. The problem seems
>> to be that the paths in hg.known_files() are relative to the current
>> working directory. So "hg.root + Path.explode(name)" returns an
>> incorrect path. The filtering of files in the next lines then doesn’t
>> work and it reruns check() for every file.
>> The build process works in the directory "~/tmp/tmp" because the paths
>> in hg.known_files() start with "../../" and by luck "hg.root +
>> Path.explode(name)" returns a correct path.
>> The version of my mercurial installation is 4.6.1.
>> [1]
>> <https://isabelle.in.tum.de/repos/isabelle/file/1b9462304e1d/src/Pure/General/mercurial.scala#l156>
> Thanks for going to the bottom of it. Mercurial.known_files is merely a
> command-line invocation as follows:
> "${HG:-hg}" --config defaults.status\= --repository
> /home/makarius/isabelle/repos --noninteractive status --modified --added
> --clean --no-status
> I did not see the reported problem: the file names are always relative
> to the repository root, independently of the current working directory.
> I have tried it Mercurial 4.6.1 on macOS 10.13.5, and Mercurial 3.7.3 on
> Ubuntu 16.04.
> So there must be something else in your setup. If we can figure this out
> within the coming days or weeks, I can still do something about it for
> the Isabelle2018 release.
>       Makarius

isabelle-dev mailing list

Reply via email to