view doc/hgrc.5.txt @ 19159:1b329f8c7b24 stable

windows: check target type before actual unlinking to follow POSIX semantics Creation and writing into target file via vfs (a.k.a opener) is done after "unlink()" target file, if it exists. For example, it is assumed that the revision X consists of file 'A', and the revision Y consists of file 'A/B'. Merging revision X into Y tries to "unlink()" on directory 'A' of 'A/B', before creation of file 'A'. On POSIX environment, directories should be removed by "rmdir(2)", and "unlink(2)" on directories fails. "unlink()" of Mercurial (and Python) uses "unlink(2)" directly, so unlinking in the merge case above would fail. In the other hand, on Windows environment, "unlink()" of Mercurial tries to rename before actual unlinking, to follow POSIX semantics: already opened file can be unlinked safely. This causes unexpected success in unlinking in the merge case above, even though directory 'A' is renamed to another. This confuses users. This patch checks whether target is directory or not before renaming, and raises IOError(errno.EPERM) if so, to follow POSIX semantics.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 07 May 2013 05:04:11 +0900
parents 979b107eaea2
children 6f3428c528b4
line wrap: on
line source

======
 hgrc
======

---------------------------------
configuration files for Mercurial
---------------------------------

:Author:         Bryan O'Sullivan <bos@serpentine.com>
:Organization:   Mercurial
:Manual section: 5
:Manual group:   Mercurial Manual

.. contents::
   :backlinks: top
   :class: htmlonly


Synopsis
========

.. include:: ../mercurial/help/config.txt

Author
======
Bryan O'Sullivan <bos@serpentine.com>.

Mercurial was written by Matt Mackall <mpm@selenic.com>.

See Also
========
|hg(1)|_, |hgignore(5)|_

Copying
=======
This manual page is copyright 2005 Bryan O'Sullivan.
Mercurial is copyright 2005-2012 Matt Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.

.. include:: common.txt