view contrib/sample.hgrc @ 22196:23fe278bde43

largefiles: keep largefiles from colliding with normal one during linear merge Before this patch, linear merging of modified or newly added largefile causes unexpected result, if (1) largefile collides with same name normal one in the target revision and (2) "local" largefile is chosen, even though branch merging between such revisions doesn't. Expected result of such linear merging is: (1) (not yet recorded) largefile is kept in the working directory (2) largefile is marked as (re-)"added" (3) colliding normal file is marked as "removed" But actual result is: (1) largefile in the working directory is unlinked (2) largefile is marked as "normal" (so treated as "missing") (3) the dirstate entry for colliding normal file is just dropped (1) is very serious, because there is no way to restore temporarily modified largefiles. (3) prevents the next commit from adding the manifest with correct "removal of (normal) file" information for newly created changeset. The root cause of this problem is putting "lfile" into "actions['r']" in linear-merging case. At liner merging, "actions['r']" causes: - unlinking "target file" in the working directory, but "lfile" as "target file" is also largefile itself in this case - dropping the dirstate entry for target file "actions['f']" (= "forget") does only the latter, and this is reason why this patch doesn't choose putting "lfile" into it instead of "actions['r']". This patch newly introduces action "lfmr" (LargeFiles: Mark as Removed) to mark colliding normal file as "removed" without unlinking it. This patch uses "hg debugdirstate" instead of "hg status" in test, because: - choosing "local largefile" hides "removed" status of "remote normal file" in "hg status" output, and - "hg status" for "large2" in this case has another problem fixed in the subsequent patch
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 15 Aug 2014 20:28:51 +0900
parents 3dcc6708231c
children
line wrap: on
line source

### --- User interface

[ui]

### show changed files and be a bit more verbose if True

# verbose = True

### username data to appear in comits
### it usually takes the form: Joe User <joe.user@host.com>

# username = Joe User <j.user@example.com>

### --- Extensions

[extensions]

### each extension has its own 'extension_name=path' line
### the default python library path is used when path is left blank
### the hgext dir is used when 'hgext.extension_name=' is written

### acl - Access control lists
### hg help acl

# hgext.acl =

### bisect - binary search changesets to detect bugs
### hg help bisect

# hgext.hbisect =

### bugzilla - update bugzilla bugs when changesets mention them
### hg help bugzilla

# hgext.bugzilla =

### extdiff - Use external diff application instead of builtin one

# hgext.extdiff =

### gpg - GPG checks and signing
### hg help gpg

# hgext.gpg =

### hgk - GUI repository browser
### hg help view

# hgext.hgk =

### strip - Remove changesets and their descendents from history
### hg help strip

# hgext.strip =

### notify - Template driven e-mail notifications
### hg help notify

# hgext.notify =

### patchbomb - send changesets as a series of patch emails
### hg help email

# hgext.patchbomb =

### churn - create a graph showing who changed the most lines
### hg help churn

# hgext.churn = /home/user/hg/hg/contrib/churn.py

### eol - automatic management of line endings

# hgext.eol =

### --- hgk additional configuration

[hgk]

### set executable path

# path = /home/user/hg/hg/contrib/hgk

### --- Hook to Mercurial actions - See hgrc man page for avaliable hooks

[hooks]

### Example notify hooks (load hgext.notify extension before use)

# incoming.notify = python:hgext.notify.hook
# changegroup.notify = python:hgext.notify.hook

### Email configuration for the notify and patchbomb extensions

[email]

### Your email address

# from = user@example.com

### Method to send email - smtp or /usr/sbin/sendmail or other program name

# method = smtp

### smtp server to send email to

[smtp]

# host = mail
# port = 25
# tls = false
# username = user
# password = blivet
# local_hostname = myhost

### --- Email notification hook for server

[notify]
### multiple sources can be specified as a whitespace or comma separated list

# sources = serve push pull bundle

### set this to False when you're ready for mail to start sending

# test = True

### path to config file with names of subscribers

# config = /path/to/subscription/file