##// END OF EJS Templates
hg: obtain lock when creating share from pooled repo (issue5104)...
hg: obtain lock when creating share from pooled repo (issue5104) There are race conditions between clients performing a shared clone to pooled storage: 1) Clients race to create the new shared repo in the pool directory 2) 1 client is seeding the repo in the pool directory and another goes to share it before it is fully cloned We prevent these race conditions by obtaining a lock in the pool directory that is derived from the name of the repo we will be accessing. To test this, a simple generic "lockdelay" extension has been added. The extension inserts an optional, configurable delay before or after lock acquisition. In the test, we delay 2 seconds after lock acquisition in the first process and 1 second before lock acquisition in the 2nd process. This means the first process has 1s to obtain the lock. There is a race condition here. If we encounter it in the wild, we could change the dummy extension to wait on the lock file to appear instead of relying on timing. But that's more complicated. Let's see what happens first.

File last commit:

r19427:80983af3 default
r28289:d493d647 3.7.2 stable
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)
${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'` ; \
Adam Spiers
mercurial.spec: include CONTRIBUTORS, COPYING and man pages in rpm
r4753 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