A Scalable, User-Friendly Source Control System.
Go to file
Martin Geisler 19be7012dc largefiles: handle merges between normal files and largefiles (issue3084)
The largefiles extension prevents users from adding a normal file
named 'foo' if there is already a largefile with the same name.
However, there was a loop-hole: when merging, it was possible to bring
in a normal file named 'foo' while also having a '.hglf/foo' file.

This patch fixes this by extending the manifest merge to deal with
these kinds of conflicts. If there is a normal file 'foo' in the
working copy, and the other parent brings in a '.hglf/foo' file, then
the user will be prompted to keep the normal file or the largefile.
Likewise for the symmetric case where a normal file is brought in via
the second parent. The prompt looks like this:

  $ hg merge
  foo has been turned into a largefile
  use (l)argefile or keep as (n)ormal file?

After the merge, either the '.hglf/foo' file or the 'foo' file will
have been deleted. This would cause status to return output like:

  $ hg status
  M foo
  R foo

To fix this, the lfiles_repo.status method is changed so that a
removed normal file isn't shown if there is largefile with the same
name, and vice versa for largefiles.
2011-12-09 17:35:00 +01:00
contrib test-svn-subrepo: fix reference output for svn 1.7 2011-12-02 16:50:48 +01:00
doc Describe all files related to the standard commands. 2011-12-06 15:50:28 +01:00
hgext largefiles: handle merges between normal files and largefiles (issue3084) 2011-12-09 17:35:00 +01:00
i18n i18n-pt_BR: synchronized with 598dd12000c9 2011-11-29 12:40:26 -02:00
mercurial changelog: handle decoding of NULs in extra more carefully (issue3156) 2011-12-16 18:23:15 -06:00
tests largefiles: handle merges between normal files and largefiles (issue3084) 2011-12-09 17:35:00 +01:00
.hgignore hgignore: ignore MANIFEST.in (generated since 3f7ee5b12708) 2011-06-10 20:38:02 +02:00
.hgsigs Added signature for changeset b4eeeb8c0f79 2011-12-01 15:55:37 -06: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 rename util.set_binary to setbinary 2011-05-06 15:25:35 +02:00
hgeditor Fixed a bashism with the use of $RANDOM in hgeditor. 2010-05-19 18:06:35 +02:00
hgweb.cgi hgweb: add hint about finding library path with debuginstall 2011-11-10 15:08:51 -06:00
Makefile Makefile: adjust example, test-merge1 is now test-merge1.t 2011-10-28 12:59:50 +02:00
README README: add small introduction 2010-10-27 12:05:37 +02:00
setup.py setup: set whole env for running hg even if .hg doesn't exist (issue3073) 2011-10-31 00:42:32 +09: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

See http://mercurial.selenic.com/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.