##// END OF EJS Templates
localrepo: move repo creation logic out of localrepository.__init__ (API)...
localrepo: move repo creation logic out of localrepository.__init__ (API) It has long bothered me that local repository creation is handled as part of localrepository.__init__. Upcoming changes I want to make around how repositories are initialized and instantiated will make the continued existence of repository creation code in localrepository.__init__ even more awkward. localrepository instances are almost never constructed directly: instead, callers are supposed to go through hg.repository() to obtain a handle on a repository. And hg.repository() calls localrepo.instance() to return a new repo instance. This commit teaches localrepo.instance() to handle the create=True logic. Most of the code for repo construction has been moved to a standalone function. This allows extensions to monkeypatch the function to further customize freshly-created repositories. A few calls to localrepo.localrepository.__init__ that were passing create=True were converted to call localrepo.instance(). .. api:: local repo creation moved out of constructor ``localrepo.localrepository.__init__`` no longer accepts a ``create`` argument to create a new repository. New repository creation is now performed as part of ``localrepo.instance()`` and the bulk of the work is performed by ``localrepo.createrepository()``. Differential Revision: https://phab.mercurial-scm.org/D4534

File last commit:

r39584:7ce9dea3 default
r39584:7ce9dea3 default
Show More
test-status-inprocess.py
47 lines | 989 B | text/x-python | PythonLexer
/ tests / test-status-inprocess.py
timeless
tests: use /usr/bin/env python for test-status-inprocess.py...
r28824 #!/usr/bin/env python
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 from __future__ import absolute_import, print_function
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843
Augie Fackler
tests: fix test-status-inprocess.py on Python 3...
r37918 import sys
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 from mercurial import (
commands,
localrepo,
ui as uimod,
Robert Stanca
py3: use absolute_import in test-status-inprocess.py
r28765 )
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Augie Fackler
tests: fix test-status-inprocess.py on Python 3...
r37918 print_ = print
def print(*args, **kwargs):
"""print() wrapper that flushes stdout buffers to avoid py3 buffer issues
We could also just write directly to sys.stdout.buffer the way the
ui object will, but this was easier for porting the test.
"""
print_(*args, **kwargs)
sys.stdout.flush()
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% creating repo')
Gregory Szorc
localrepo: move repo creation logic out of localrepository.__init__ (API)...
r39584 repo = localrepo.instance(u, b'.', create=True)
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
f = open('test.py', 'w')
try:
f.write('foo\n')
finally:
f.close
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% add and commit')
Pulkit Goyal
py3: add b'' prefixes to tests/test-status-inprocess.py...
r37678 commands.add(u, repo, b'test.py')
commands.commit(u, repo, message=b'*')
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 commands.status(u, repo, clean=True)
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% change')
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838 f = open('test.py', 'w')
try:
f.write('bar\n')
finally:
f.close()
# this would return clean instead of changed before the fix
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 commands.status(u, repo, clean=True, modified=True)