##// END OF EJS Templates
namespaces: let namespaces override singlenode() definition...
namespaces: let namespaces override singlenode() definition Some namespaces have multiple nodes per name (meaning that their namemap() returns multiple nodes). One such namespace is the "topics" namespace (from the evolve repo). We also have our own internal namespace at Google (for review units) that has multiple nodes per name. These namespaces may not want to use the default "pick highest revnum" resolution that we currently use when resolving a name to a single node. As an example, they may decide that `hg co <name>` should check out a commit that's last in some sense even if an earlier commit had just been amended and thus had a higher revnum [1]. This patch gives the namespace the option to continue to return multiple nodes and to override how the best node is picked. Allowing namespaces to override that may also be useful as an optimization (it may be cheaper for the namespace to find just that node). I have been arguing (in D3715) for using all the nodes returned from namemap() when resolving the symbol to a revset, so e.g. `hg log -r stable` would resolve to *all* nodes on stable, not just the one with the highest revnum (except that I don't actually think we should change it for the branch namespace because of BC). Most people seem opposed to that. If we decide not to do it, I think we can deprecate the namemap() function in favor of the new singlenode() (I find it weird to have namespaces, like the branch namespace, where namemap() isn't nodemap()'s inverse). I therefore think this patch makes sense regardless of what we decide on that issue. [1] Actually, even the branch namespace would have wanted to override singlenode() if it had supported multiple nodes. That's because closes branch heads are mostly ignored, so "hg co default" will not check out the highest-revnum node if that's a closed head. Differential Revision: https://phab.mercurial-scm.org/D3852

File last commit:

r34623:b584ed1b default
r38505:4c068365 @58 default
Show More
Makefile
47 lines | 1.2 KiB | text/x-makefile | MakefileLexer
Takumi IINO
doc: make man and html from translated documents...
r19426 SOURCES=$(notdir $(wildcard ../mercurial/help/*.[0-9].txt))
Bryan O'Sullivan
Move hgrc documentation out to its own man page, hgrc(5)....
r671 MAN=$(SOURCES:%.txt=%)
HTML=$(SOURCES:%.txt=%.html)
Martin Geisler
doc/Makefile: docs now also depend on extensions...
r12921 GENDOC=gendoc.py ../mercurial/commands.py ../mercurial/help.py \
../mercurial/help/*.txt ../hgext/*.py ../hgext/*/__init__.py
wilde@trapperkeeper.sha-bang.de
Added install target.
r2233 PREFIX=/usr/local
Jonathan Smith <https://issues.rpath.com/>
install man pages by default into $(PREFIX)/share/man not $(PREFIX)/man since the FHS puts them there
r4030 MANDIR=$(PREFIX)/share/man
Christian Ebert
Do not install executable man pages...
r7686 INSTALL=install -c -m 644
Dirkjan Ochtman
use ${PYTHON} var in doc/Makefile as well
r6724 PYTHON=python
Nicolas Dumazet
runrst: add RSTARGS Makefile variable to allow customization...
r13054 RSTARGS=
mpm@selenic.com
Add a doc makefile...
r465
Takumi IINO
doc: make i18n man and html...
r19427 export HGENCODING=UTF-8
Martin Geisler
doc/Makefile: ensure C locale...
r9971
Thomas Arendsen Hein
Generate html documentation by default, too.
r1006 all: man html
mpm@selenic.com
Add a doc makefile...
r465
man: $(MAN)
html: $(HTML)
Takumi IINO
doc: make man and html from translated documents...
r19426 common.txt $(SOURCES) $(SOURCES:%.txt=%.gendoc.txt): $(GENDOC)
muxator
build: make install in "/doc" failed if the destination dir contained spaces...
r34623 ${PYTHON} gendoc.py "$(basename $@)" > $@.tmp
Martin Geisler
doc/Makefile: do not create files in case of errors...
r9444 mv $@.tmp $@
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
Takumi IINO
doc: make man and html from translated documents...
r19426 %: %.txt %.gendoc.txt common.txt
Nicolas Dumazet
runrst: add RSTARGS Makefile variable to allow customization...
r13054 $(PYTHON) runrst hgmanpage $(RSTARGS) --halt warning \
Martin Geisler
doc/Makefile: make rst2html and rst2man halt on warnings
r9445 --strip-elements-with-class htmlonly $*.txt $*
mpm@selenic.com
Add a doc makefile...
r465
Takumi IINO
doc: make man and html from translated documents...
r19426 %.html: %.txt %.gendoc.txt common.txt
Nicolas Dumazet
runrst: add RSTARGS Makefile variable to allow customization...
r13054 $(PYTHON) runrst html $(RSTARGS) --halt warning \
Martin Geisler
doc: add a style sheet to the generated HTML pages
r9626 --link-stylesheet --stylesheet-path style.css $*.txt $*.html
mpm@selenic.com
Add a doc makefile...
r465
Benoit Boissinot
fix MANIFEST generation
r3872 MANIFEST: man html
Mads Kiilerich
doc/Makefile: Don't show Makefile comments in output...
r9401 # tracked files are already in the main MANIFEST
Benoit Boissinot
fix MANIFEST generation
r3872 $(RM) $@
Martin Geisler
doc/Makefile: do not include hg.1.gendoc.txt in MANIFEST...
r12841 for i in $(MAN) $(HTML); do \
Benoit Boissinot
fix MANIFEST generation
r3872 echo "doc/$$i" >> $@ ; \
done
wilde@trapperkeeper.sha-bang.de
Added install target.
r2233 install: man
for i in $(MAN) ; do \
Cédric Duval
doc: fix regexp for determining the man page section...
r8822 subdir=`echo $$i | sed -n 's/^.*\.\([0-9]\)$$/man\1/p'` ; \
muxator
build: make install in "/doc" failed if the destination dir contained spaces...
r34623 mkdir -p "$(DESTDIR)$(MANDIR)"/$$subdir ; \
$(INSTALL) $$i "$(DESTDIR)$(MANDIR)"/$$subdir ; \
wilde@trapperkeeper.sha-bang.de
Added install target.
r2233 done
mpm@selenic.com
Add a doc makefile...
r465 clean:
Takumi IINO
doc: make man and html from translated documents...
r19426 $(RM) $(MAN) $(HTML) common.txt $(SOURCES) $(SOURCES:%.txt=%.gendoc.txt) MANIFEST