##// END OF EJS Templates
localrepo: move extension loading to a separate method...
localrepo: move extension loading to a separate method The stateful chg plan [1] requires a special repo object, where ideally all side effects caused by loading the repo object could be reverted by just dropping (gabbage collect) the loaded repo object. Currently, that is impossible because repo.__init__ calls "extensions.loadall", which may have unpredictable side-effects that cannot be reverted by dropping the repo object. This patch moves "extensions.loadall" to a separate method, so chg could subclass localrepository and make extensions loading a no-op. [1]: mercurial-scm.org/pipermail/mercurial-devel/2017-February/092547.html

File last commit:

r30738:a45c0f42 default
r30989:74af89c6 default
Show More
Makefile
52 lines | 1.1 KiB | text/x-makefile | MakefileLexer
Yuya Nishihara
chg: use in-tree hg executable to start server for testing
r28062 HG = $(CURDIR)/../../hg
Yuya Nishihara
chg: import frontend sources...
r28060
TARGET = chg
Jun Wu
chg: add procutil.h...
r30693 SRCS = chg.c hgclient.c procutil.c util.c
Yuya Nishihara
chg: import frontend sources...
r28060 OBJS = $(SRCS:.c=.o)
CFLAGS ?= -O2 -Wall -Wextra -pedantic -g
CPPFLAGS ?= -D_FORTIFY_SOURCE=2
override CFLAGS += -std=gnu99
Jun Wu
chg: allows default hg path to be overridden...
r28605 ifdef HGPATH
override CPPFLAGS += -DHGPATH=\"$(HGPATH)\"
endif
Yuya Nishihara
chg: import frontend sources...
r28060
DESTDIR =
PREFIX = /usr/local
MANDIR = $(PREFIX)/share/man/man1
CHGSOCKDIR = /tmp/chg$(shell id -u)
CHGSOCKNAME = $(CHGSOCKDIR)/server
.PHONY: all
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS)
Jun Wu
chg: add procutil.h...
r30693 chg.o: hgclient.h procutil.h util.h
Jun Wu
chg: handle pager request client-side...
r30738 hgclient.o: hgclient.h procutil.h util.h
Jun Wu
chg: add procutil.h...
r30693 procutil.o: procutil.h util.h
Yuya Nishihara
chg: import frontend sources...
r28060 util.o: util.h
.PHONY: install
install: $(TARGET)
install -d $(DESTDIR)$(PREFIX)/bin
install -m 755 $(TARGET) $(DESTDIR)$(PREFIX)/bin
install -d $(DESTDIR)$(MANDIR)
install -m 644 chg.1 $(DESTDIR)$(MANDIR)
.PHONY: serve
serve:
[ -d $(CHGSOCKDIR) ] || ( umask 077; mkdir $(CHGSOCKDIR) )
$(HG) serve --cwd / --cmdserver chgunix \
--address $(CHGSOCKNAME) \
--config cmdserver.log=/dev/stderr
.PHONY: clean
clean:
$(RM) $(OBJS)
.PHONY: distclean
distclean:
$(RM) $(OBJS) $(TARGET)