Mercurial > hg
view mercurial/help/hgweb.txt @ 15708:309e49491253
push: propagate --new-branch and --ssh options when pushing subrepos
Up until now the all the push command options were ignored when pushing
subrepos. In particular, the fact that the --new-branch command was not passed
down to subrepos made it not possible to push a repo when any of its
subrepos had a new branch, even if you used the --new-branch option of the push
command.
In addition the error message was confusing since it showed the following hint:
"--new-branch hint: use 'hg push --new-branch' to create new remote branches".
However using the --new_branch flag did not fix the problem, as it was ignored
when pushing subrepos.
This patch passes the --new-branch and --ssh flags to every subrepo that is
pushed.
Issues/Limitations:
- All subrepo types get these flags, but only the mercurial subrepos use them.
- It is no longer possible to _not_ pass down these flags to subrepos when
pushing:
* An alternative would be to introduce a --subrepos flag that should be
used to pass down these flags to the subrepos.
* If we did this, it could make sense to make the --force flag respect this
new --subrepos flag as well for consistency's sake.
- Matt suggested that the ssh related flags could also be passed down to
subrepos during pull and clone. However it seems that it would be the "update"
command that would need to get those, since subrepos are only pulled on update.
In any case I'd prefer to leave that for a later patch.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Thu, 29 Sep 2011 17:20:04 +0200 |
parents | 8d960240faac |
children | 5a9acb0b2086 |
line wrap: on
line source
Mercurial's internal web server, hgweb, can serve either a single repository, or a collection of them. In the latter case, a special configuration file can be used to specify the repository paths to use and global web configuration options. This file uses the same syntax as other Mercurial configuration files, but only the following sections are recognized: - web - paths - collections The ``web`` section can specify all the settings described in the web section of the hgrc(5) documentation. See :hg:`help config` for information on where to find the manual page. The ``paths`` section provides mappings of physical repository paths to virtual ones. For instance:: [paths] projects/a = /foo/bar projects/b = /baz/quux web/root = /real/root/* / = /real/root2/* virtual/root2 = /real/root2/** - The first two entries make two repositories in different directories appear under the same directory in the web interface - The third entry maps every Mercurial repository found in '/real/root' into 'web/root'. This format is preferred over the [collections] one, since using absolute paths as configuration keys is not supported on every platform (especially on Windows). - The fourth entry is a special case mapping all repositories in '/real/root2' in the root of the virtual directory. - The fifth entry recursively finds all repositories under the real root, and maps their relative paths under the virtual root. The ``collections`` section provides mappings of trees of physical repositories paths to virtual ones, though the paths syntax is generally preferred. For instance:: [collections] /foo = /foo Here, the left side will be stripped off all repositories found in the right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as ``bar`` and ``quux/baz`` respectively.