sapling/hgext
Matt Harbison 408a3898be subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)
Previously, only the top level repo was shared, and then any subrepos were
cloned on demand.  This is problematic because commits to the parent repo would
write an updated .hgsubstate to the share source, but the corresponding subrepo
commit would be stuck in the local subrepo.  That would prevent an update in the
source repo.  We already go to great lengths to avoid having inconsistent repos
(e.g., `hg push -r rev` will push _everything_ in a subrepo, even if it isn't
referenced in one of the parent's outgoing commits).  Therefore, this seems like
a bug fix, and there's no option to get the old behavior.  I can't imagine the
previous behavior was useful to anybody.

There shouldn't be an issue with svn, since it is centralized.  Maybe --git-dir
can be used for git subrepos, but I'll leave that to someone more familiar with
git.

An integer was previously being implicitly returned from commands.share(), which
caused dispatch() to start crashing when changing over to returning the shared
repo.  All error paths appear to raise, so this can be hardcoded to success.
The clone command checks for 'is None' in a similar pattern, but since
hg.clone() always returns a tuple, that seems wrong?

.. fix:: Issue 5675

   Creating a share of a repository with a Mercurial subrepository will now
   share the subrepository.

and

.. bc::

   Mercurial subrepositories are now shared instead of cloned when the parent
   repository is shared.  This prevents dangling subrepository references in the
   share source.  Previously shared repositories with cloned subrepositories
   will continue to function unchanged.
2017-10-15 22:48:02 -04:00
..
convert codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
fsmonitor codemod: use pycompat.isdarwin 2017-10-12 23:34:34 -07:00
highlight highlight: put pygments import inside demandimport.deactivated 2017-06-18 23:05:54 -04:00
largefiles configitems: register the 'largefiles.usercache' config 2017-10-13 22:28:03 +02:00
zeroconf zeroconf: do not crash if socket being read is closed by another thread 2017-10-02 20:23:25 -07:00
__init__.py hgext: officially turn 'hgext' into a namespace package 2016-02-27 12:56:26 +01:00
acl.py configitems: register acl config section 2017-10-14 01:15:01 +02:00
amend.py amend: add a flag -n/--note to store note with amend 2017-10-15 19:29:56 +05:30
automv.py configitems: register the 'automv.similarity' config 2017-06-30 03:27:24 +02:00
blackbox.py configitems: register the 'blackbox.maxfiles' config 2017-10-11 22:51:23 +02:00
bugzilla.py bugzilla: remove superfluous pass statements 2017-09-29 11:55:26 -04:00
censor.py revlog: rename constants (API) 2017-05-17 19:52:18 -07:00
children.py commands: move templates of common command options to cmdutil (API) 2017-05-14 16:19:47 +09:00
churn.py churn: use the non-deprecated template option in the examples 2017-05-08 23:05:01 -04:00
clonebundles.py clonebundles: fix missing newline character 2017-05-24 22:59:59 -04:00
commitextras.py commitextras: make sure keys are not empty 2017-07-30 12:19:46 +05:30
eol.py configitems: register the 'eol.only-consistent' config 2017-06-30 03:39:32 +02:00
extdiff.py configitems: register the 'extdata.*.diffargs' config 2017-10-14 00:34:46 +02:00
factotum.py configitems: register the 'factotum.service' config 2017-06-30 03:42:15 +02:00
fetch.py fetch: remove shorthand of --edit colliding against -e/-ssh in remoteopts (BC) 2017-06-24 02:39:13 +09:00
gpg.py configitems: register the 'gpg' arbitraty key section 2017-10-13 23:26:16 +02:00
graphlog.py commands: move templates of common command options to cmdutil (API) 2017-05-14 16:19:47 +09:00
hgk.py configitems: register the 'hgk.path' config 2017-06-30 03:42:35 +02:00
histedit.py histedit: remove the nonexistant config 'histeditng' 2017-10-16 12:15:00 -07:00
journal.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
keyword.py configitems: register the 'keywordset.svn' config 2017-06-30 03:42:50 +02:00
logtoprocess.py codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
mq.py mq: use the newcommitphase utility 2017-10-09 17:33:03 +02:00
notify.py configitem: register the 'notify.changegroup' config 2017-10-13 21:50:43 +02:00
pager.py configitems: register the 'pager.attend-.*' options 2017-10-11 02:26:09 +02:00
patchbomb.py configitems: register the 'patchbomb.reply-to' config 2017-10-13 23:07:12 +02:00
purge.py commands: move templates of common command options to cmdutil (API) 2017-05-14 16:19:47 +09:00
rebase.py context: add workingfilectx.markcopied 2017-10-15 20:36:29 -07:00
record.py commands: move templates of common command options to cmdutil (API) 2017-05-14 16:19:47 +09:00
releasenotes.py releasenotes: show a warning if fuzzywuzzy is not present 2017-10-16 22:46:37 +05:30
relink.py extensions: change magic "shipped with hg" string 2016-08-23 11:26:08 -04:00
schemes.py codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
share.py subrepo: share instead of clone if the parent repo is shared (issue5675) (BC) 2017-10-15 22:48:02 -04:00
shelve.py configitems: register the 'shelve.maxbackups' config 2017-06-30 03:44:19 +02:00
show.py configitems: register the 'commands.show.aliasprefix' config 2017-10-08 20:16:09 +02:00
sparse.py sparse: require [section] in sparse config files (BC) 2017-07-15 13:21:23 -07:00
strip.py strip: take branch into account when selecting update target (issue5540) 2017-10-05 16:13:05 +02:00
transplant.py configitems: register the 'transplant.log' config 2017-06-30 03:44:30 +02:00
uncommit.py configitems: register the 'experimental.uncommitondirtywdir' config 2017-10-12 00:38:18 +02:00
win32mbcs.py codemod: use pycompat.iswindows 2017-10-12 23:30:46 -07:00
win32text.py configitems: register the 'win32text.warn' config 2017-06-30 03:45:56 +02:00