A Scalable, User-Friendly Source Control System.
Go to file
FUJIWARA Katsunori 24a3947a41 util: make copyfile avoid ambiguity of file stat if needed
In some cases below, copying from backup is used to restore original
contents of a file. If copying keeps ctime, mtime and size of a file,
restoring is overlooked, and old contents cached before restoring
isn't invalidated as expected.

  - failure of transaction before closing (from '.hg/journal.backup.*')
  - rollback of previous transaction (from '.hg/undo.backup.*')

To avoid such problem, this patch makes copyfile() avoid ambiguity of
file stat, if needed.

Ambiguity check is executed, only if:

  - checkambig=True is specified (not all copying needs ambiguity check), and
  - destination file exists before copying

This patch also adds 'not (copystat and checkambig)' assertion,
because combination of copystat and checkambig is meaningless.

This patch is a part of preparation for "Exact Cache Validation Plan":

    https://www.mercurial-scm.org/wiki/ExactCacheValidationPlan
2016-05-19 00:20:38 +09:00
contrib merge with stable 2016-05-17 11:28:46 -05:00
doc merge with stable 2016-05-17 11:28:46 -05:00
hgext hgcia: remove hgcia (BC) 2016-05-12 01:03:19 +01:00
hgext3rd extensions: also search for extension in the 'hgext3rd' package 2016-03-11 10:30:08 +00:00
i18n py3: make i18n/hggettext use print_function 2016-05-13 02:58:15 +05:30
mercurial util: make copyfile avoid ambiguity of file stat if needed 2016-05-19 00:20:38 +09:00
tests util: make atomictempfile avoid ambiguity of file stat if needed 2016-05-19 00:20:38 +09:00
.editorconfig mercurial: add editorconfig 2016-04-05 18:10:33 +01:00
.hgignore make: turn ubuntu docker into template 2016-04-26 23:33:17 -07:00
.hgsigs Added signature for changeset 923825600655 2016-05-16 17:21:25 -05:00
CONTRIBUTORS Add note to CONTRIBUTORS file 2007-11-07 21:10:30 -06:00
COPYING COPYING: refresh with current address from fsf.org 2011-06-02 11:17:02 -05:00
hg hg: limit HGUNICODEPEDANTRY to py2 2016-04-05 01:35:36 +00:00
hgeditor spelling: trivial spell checking 2015-10-17 00:58:46 +02:00
hgweb.cgi urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
Makefile ubuntu-xenial-ppa: add makefile rule 2016-04-27 01:07:40 -07:00
README urls: bulk-change primary website URLs 2015-09-30 15:43:49 -05:00
setup.py setup: detect Python DLL filename from loaded DLL 2016-04-28 08:52:13 -07:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install:

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

Running without installing:

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.