context: enforce memctx.files() unicity
localrepo.commitctx() expects changed files lists to contain unique items and
does not sort itself. Passing duplicates makes them evaluated more than once
and changes the committed changelog id.
store: encode trailing period and space on directory names (
issue1417)
Windows won't create directories with names ending in period or space, so
we encode the last period/space character in directory names of non-hashed
paths in the store using reversible ~xx encoding (' ' -> '~20', '.' -> '~2e').
With this change it is possible to remove a directory ending in period or space
that was inadvertantly checked in on a linux system while still being able
to clone such a repository with its full history to Windows (see also
issue793).
store: don't create dirs ending in period or space for hashed paths (
issue1417)
Windows won't create directories with names ending in period or space, so
we replace the last period/space character in truncated directory names of
hashed paths with some other character (underbar).
Fix test-acl failure on AIX due to read only LOGNAME.
On AIX /etc/profile sets LOGNAME read only. This causes test-acl to
fail when it comes to set LOGNAME in do_push().
Work around this by using env to set LOGNAME and run the command.