view contrib/sample.hgrc @ 11769:ca6cebd8734e stable

dirstate: ignore symlinks when fs cannot handle them (issue1888) When the filesystem cannot handle the executable bit, we currently ignore it completely when looking for modified files. Similarly, it is impossible to set or clear the bit when the filesystem ignores it. This patch makes Mercurial treat symbolic links the same way. Symlinks are a little different since they manifest themselves as small files containing a filename (the symlink target). On Windows, these files show up as regular files, and on Linux and Mac they show up as real symlinks. Issue1888 presents a case where the symlink files are better ignored from the Windows side. A Linux client creates symlinks in a working copy which is shared over a network between Linux and Windows clients. The Samba server is helpful and defererences the symlink when the Windows client looks at it. This means that Mercurial on the Windows side sees file content instead of a file name in the symlink, and hence flags the link as modified. Ignoring the change would be much more helpful, similarly to how Mercurial does not report any changes when executable bits are ignored in a checkout on Windows. An initial checkout of a symbolic link on a file system that cannot handle symbolic links will still result in a regular file containing the target file name as its content. Sharing such a checkout with a Linux client will not turn the file into a symlink automatically, but 'hg revert' can fix that. After the revert, the Windows client will see the correct file content (provided by the Samba server when it follows the link on the Linux side) and otherwise ignore the change. Running 'hg perfstatus' 10 times gives these results: Before: After: min: 0.544703 min: 0.546549 med: 0.547592 med: 0.548881 avg: 0.549146 avg: 0.548549 max: 0.564112 max: 0.551504 The median time is increased about 0.24%.
author Martin Geisler <mg@aragost.com>
date Mon, 09 Aug 2010 15:31:56 +0200
parents 5f01fd602542
children 216d3d85372b
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 =

### graphlog - ASCII graph log
### hg help glog

# hgext.graphlog =

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

# hgext.hgk =

### mq - Mercurial patch queues
### hg help mq

# hgext.mq =

### 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