breezy-3.0.0~bzr6852/.rsyncexclude0000644000000000000000000000031313235603346015114 0ustar 00000000000000*.pyc *.pyo *~ # arch can bite me {arch} .arch-ids ,,* ++* /doc/*.html *.tmp bzr-test.log [#]*# .#* testrev.* /tmp # do want this after all + CHANGELOG /build test*.tmp .*.swp *.orig .*.orig .bzr-shelf* breezy-3.0.0~bzr6852/.testr.conf0000644000000000000000000000023413235603346014473 0ustar 00000000000000[DEFAULT] test_command=BRZ_PLUGIN_PATH=-site:-user ./brz selftest --subunit2 $IDOPTION $LISTOPT test_id_option=--load-list $IDFILE test_list_option=--list breezy-3.0.0~bzr6852/BRANCH.TODO0000644000000000000000000000022613235603346014032 0ustar 00000000000000# This file is for listing TODOs for branches that are being worked on. # It should ALWAYS be empty in the mainline or in integration branches. # # breezy-3.0.0~bzr6852/COPYING.txt0000644000000000000000000004325413235603346014267 0ustar 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. breezy-3.0.0~bzr6852/INSTALL0000644000000000000000000000354413235603346013445 0ustar 00000000000000Breezy install instructions *************************** Dependencies ------------ Breezy requires Python 2.7 or newer, or Python 3.4 or newer. It also requires the `configobj` Python module to be installed. It can be installed either from your operating system's package manager, using pip or by downloading it from: https://github.com/DiffSK/configobj Optional dependencies ~~~~~~~~~~~~~~~~~~~~~ If you wish to access branches over sftp, you will need paramiko and pycrypto: http://www.lag.net/paramiko/ To PGP sign commits and verify PGP signatures on commits, install python-gpg. brz can optionally use compiled versions of some parts of the code for increased speed. When installing brz you need the ability to build C extensions. Some GNU/Linux distributions package the necessary headers separately from the main Python package. This package is probably named something like python-dev or python-devel. FreeBSD, Windows, source-based GNU/Linux distributions, and possibly other operating systems, have the required files installed by default. If you are installing brz from a brz branch rather than a release tarball, then you should also have the Cython package installed. This is not necessary for release tarballs as they already contain the C files that Cython is needed to create. http://www.cython.org/ Installation ------------ When upgrading using setup.py, it is recommended that you first delete the bzrlib directory from the install target. To install brz as a user, run python setup.py install --home ~ To install system-wide, run (as root) python setup.py install For more information on installation, see for the Bazaar installation FAQ (that also applies to Breezy) or write to bazaar@lists.canonical.com mentioning you use Breezy, or ask a question at . breezy-3.0.0~bzr6852/MANIFEST.in0000644000000000000000000000152213235603346014144 0ustar 00000000000000include brz README setup.py COPYING.txt # FIXME: Not needed, remove after 2.7.0 -- vila 2016-02-07 include BRANCH.TODO INSTALL Makefile MANIFEST.in NEWS profile_imports.py README_BDIST_RPM .rsyncexclude .testr.conf TODO tools/bzr_epydoc tools/packaging/lp-upload-release tools/subunit-sum breezy/plugins/news_merge/README breezy/plugins/po_merge/README breezy/tests/ssl_certs/ca.key breezy/tests/ssl_certs/server.csr breezy/plugins/grep/.bzrignore breezy/plugins/grep/NEWS # bzr export still create some empty dirs that need to be removed # breezy/plugins/weave_fmt/tests/ breezy/store/revision/ doc/ja/_templates/ man1/ man1 recursive-include tools/win32 * recursive-include breezy *.py *.pyx *.pxd *.txt *.c *.h recursive-include tools *.py *.sh recursive-include apport * recursive-include contrib * recursive-include doc * recursive-include po * breezy-3.0.0~bzr6852/Makefile0000644000000000000000000004024213235603346014050 0ustar 00000000000000# Copyright (C) 2005-2012, 2016, 2017 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # A relatively simple Makefile to assist in building parts of brz. Mostly for # building documentation, etc. ### Core Stuff ### PYTHON?=python PYTHON3?=python3 PYTHON24=python24 PYTHON25=python25 PYTHON26=python26 BRZ_TARGET=release PLUGIN_TARGET=plugin-release PYTHON_BUILDFLAGS= BRZ_PLUGIN_PATH=-site:-user # Shorter replacement for $(sort $(wildcard )) as $(call sw,) sw = $(sort $(wildcard $(1))) .PHONY: all clean realclean extensions pyflakes api-docs check-nodocs check all: extensions extensions: @echo "building extension modules." $(PYTHON) setup.py build_ext -i $(PYTHON_BUILDFLAGS) check: docs check-nodocs check-nodocs: check-nodocs2 check-nodocs3 check-nodocs3: # Generate a stream for PQM to watch. -$(RM) -f selftest.log echo `date` ": selftest starts" 1>&2 BRZ_PLUGIN_PATH=$(BRZ_PLUGIN_PATH) $(PYTHON3) -Werror -Wignore::ImportWarning -Wignore::DeprecationWarning -O \ ./brz selftest -Oselftest.timeout=120 --load-list=python3.passing \ --subunit2 $(tests) | tee selftest.log | subunit-2to1 echo `date` ": selftest ends" 1>&2 # An empty log file should catch errors in the $(PYTHON3) # command above (the '|' swallow any errors since 'make' # sees the 'tee' exit code for the whole line if [ ! -s selftest.log ] ; then exit 1 ; fi # Check that there were no errors reported. subunit-stats < selftest.log update-python3-passing: # Generate a stream for PQM to watch. -$(RM) -f selftest.log -BRZ_PLUGIN_PATH=$(BRZ_PLUGIN_PATH) $(PYTHON3) -Werror -Wignore::ImportWarning -Wignore::DeprecationWarning -O \ ./brz selftest -Oselftest.timeout=120 \ --subunit2 $(tests) > selftest.log grep -v "^#" python3.passing > python3.passing.new cat selftest.log | \ subunit-filter --no-failure --no-error --success | \ subunit-ls --no-passthrough >> python3.passing.new cp python3.passing python3.passing.old grep "^#" python3.passing.old > python3.passing sort -u python3.passing.new >> python3.passing check-nodocs2: extensions # Generate a stream for PQM to watch. -$(RM) -f selftest.log echo `date` ": selftest starts" 1>&2 BRZ_PLUGIN_PATH=$(BRZ_PLUGIN_PATH) $(PYTHON) -Werror -Wignore::ImportWarning -Wignore::DeprecationWarning -O \ ./brz selftest -Oselftest.timeout=120 \ --subunit2 $(tests) | tee selftest.log | subunit-2to1 echo `date` ": selftest ends" 1>&2 # An empty log file should catch errors in the $(PYTHON) # command above (the '|' swallow any errors since 'make' # sees the 'tee' exit code for the whole line if [ ! -s selftest.log ] ; then exit 1 ; fi # Check that there were no errors reported. subunit-stats < selftest.log # Run Python style checker (apt-get install pyflakes) # # Note that at present this gives many false warnings, because it doesn't # know about identifiers loaded through lazy_import. pyflakes: pyflakes breezy pyflakes-nounused: # There are many of these warnings at the moment and they're not a # high priority to fix pyflakes breezy | grep -v ' imported but unused' clean: $(PYTHON) setup.py clean -find . -name "*.pyc" -o -name "*.pyo" -o -name "*.so" | xargs rm -f realclean: clean # Remove files which are autogenerated but included by the tarball. rm -f breezy/*_pyx.c rm -f breezy/_simple_set_pyx.h breezy/_simple_set_pyx_api.h # Build API documentation docfiles = brz breezy api-docs: mkdir -p api/html pydoctor --make-html --docformat='restructuredtext' --html-output=api/html $(docfiles) # build tags for emacs and vim TAGS: ctags -R -e breezy tags: ctags -R breezy # these are treated as phony so they'll always be rebuilt - it's pretty quick .PHONY: TAGS tags ### Documentation ### # Default to plain documentation for maximum backwards compatibility. # (Post 2.0, the defaults will most likely be Sphinx-style instead.) docs: docs-plain clean-docs: clean-plain html-docs: html-plain ### Man-page Documentation ### MAN_DEPENDENCIES = breezy/builtins.py \ $(call sw,breezy/*.py) \ $(call sw,breezy/*/*.py) \ tools/generate_docs.py \ $(call sw,$(addsuffix /*.txt, breezy/help_topics/en)) MAN_PAGES = man1/brz.1 man1/brz.1: $(MAN_DEPENDENCIES) $(PYTHON) tools/generate_docs.py -o $@ man ### Sphinx-style Documentation ### # Build the documentation. To keep the dependencies down to a minimum # for distro packagers, we only build the html documentation by default. # Sphinx 0.6 or later is preferred for the best rendering, though # Sphinx 0.4 or later should work. See http://sphinx.pocoo.org/index.html # for installation instructions. docs-sphinx: html-sphinx # Clean out generated documentation clean-sphinx: cd doc/en && make clean cd doc/developers && make clean SPHINX_DEPENDENCIES = \ doc/en/release-notes/index.txt \ doc/en/user-reference/index.txt \ doc/developers/Makefile \ doc/developers/make.bat NEWS_FILES = $(call sw,doc/en/release-notes/brz-*.txt) doc/en/user-reference/index.txt: $(MAN_DEPENDENCIES) LANGUAGE=C $(PYTHON) tools/generate_docs.py -o $@ rstx doc/en/release-notes/index.txt: $(NEWS_FILES) tools/generate_release_notes.py $(PYTHON) tools/generate_release_notes.py $@ $(NEWS_FILES) doc/%/Makefile: doc/en/Makefile $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')" doc/%/make.bat: doc/en/make.bat $(PYTHON) -c "import shutil; shutil.copyfile('$<', '$@')" # Build the html docs using Sphinx. html-sphinx: $(SPHINX_DEPENDENCIES) cd doc/en && make html cd doc/developers && make html # Build the PDF docs using Sphinx. This requires numerous LaTeX # packages. See http://sphinx.pocoo.org/builders.html for details. # Note: We don't currently build PDFs for the Russian docs because # they require additional packages to be installed (to handle # Russian hyphenation rules, etc.) pdf-sphinx: $(SPHINX_DEPENDENCIES) cd doc/en && make latex cd doc/developers && make latex cd doc/en/_build/latex && make all-pdf cd doc/developers/_build/latex && make all-pdf # Build the CHM (Windows Help) docs using Sphinx. # Note: HtmlHelp Workshop needs to be used on the generated hhp files # to generate the final chm files. chm-sphinx: $(SPHINX_DEPENDENCIES) cd doc/en && make htmlhelp cd doc/developers && make htmlhelp # Build the texinfo files using Sphinx. texinfo-sphinx: $(SPHINX_DEPENDENCIES) cd doc/en && make texinfo cd doc/developers && make texinfo ### Documentation Website ### # Where to build the website DOC_WEBSITE_BUILD = build_doc_website # Build and package docs into a website, complete with downloads. doc-website: html-sphinx pdf-sphinx $(PYTHON) tools/package_docs.py doc/en $(DOC_WEBSITE_BUILD) $(PYTHON) tools/package_docs.py doc/developers $(DOC_WEBSITE_BUILD) ### Plain Documentation ### # While Sphinx is the preferred tool for building documentation, we still # support our "plain" html documentation so that Sphinx is not a hard # dependency for packagers on older platforms. rst2html = $(PYTHON) tools/rst2html.py --link-stylesheet --footnote-references=superscript --halt=warning # translate txt docs to html derived_txt_files = \ doc/en/release-notes/NEWS.txt txt_all = \ doc/en/tutorials/tutorial.txt \ doc/en/tutorials/using_breezy_with_launchpad.txt \ doc/en/tutorials/centralized_workflow.txt \ $(call sw,doc/*/mini-tutorial/index.txt) \ $(call sw,doc/*/user-guide/index-plain.txt) \ doc/en/admin-guide/index-plain.txt \ $(call sw,doc/es/guia-usario/*.txt) \ $(derived_txt_files) \ doc/en/upgrade-guide/index.txt \ doc/index.txt \ $(call sw,doc/index.*.txt) txt_nohtml = \ doc/en/user-guide/index.txt \ doc/en/admin-guide/index.txt txt_files = $(filter-out $(txt_nohtml), $(txt_all)) htm_files = $(patsubst %.txt, %.html, $(txt_files)) non_txt_files = \ doc/default.css \ $(call sw,doc/*/brz-en-quick-reference.svg) \ $(call sw,doc/*/brz-en-quick-reference.png) \ $(call sw,doc/*/brz-en-quick-reference.pdf) \ $(call sw,doc/*/bzr-es-quick-reference.svg) \ $(call sw,doc/*/bzr-es-quick-reference.png) \ $(call sw,doc/*/bzr-es-quick-reference.pdf) \ $(call sw,doc/*/bzr-ru-quick-reference.svg) \ $(call sw,doc/*/bzr-ru-quick-reference.png) \ $(call sw,doc/*/bzr-ru-quick-reference.pdf) \ $(call sw,doc/*/user-guide/images/*.png) # doc/developers/*.txt files that should *not* be individually # converted to HTML dev_txt_nohtml = \ doc/developers/add.txt \ doc/developers/annotate.txt \ doc/developers/bundle-creation.txt \ doc/developers/commit.txt \ doc/developers/diff.txt \ doc/developers/directory-fingerprints.txt \ doc/developers/gc.txt \ doc/developers/implementation-notes.txt \ doc/developers/incremental-push-pull.txt \ doc/developers/index.txt \ doc/developers/initial-push-pull.txt \ doc/developers/merge-scaling.txt \ doc/developers/miscellaneous-notes.txt \ doc/developers/missing.txt \ doc/developers/performance-roadmap-rationale.txt \ doc/developers/performance-use-case-analysis.txt \ doc/developers/planned-change-integration.txt \ doc/developers/planned-performance-changes.txt \ doc/developers/plans.txt \ doc/developers/process.txt \ doc/developers/revert.txt \ doc/developers/specifications.txt \ doc/developers/status.txt \ doc/developers/uncommit.txt dev_txt_all = $(call sw,$(addsuffix /*.txt, doc/developers)) dev_txt_files = $(filter-out $(dev_txt_nohtml), $(dev_txt_all)) dev_htm_files = $(patsubst %.txt, %.html, $(dev_txt_files)) doc/en/user-guide/index-plain.html: $(call sw,$(addsuffix /*.txt, doc/en/user-guide)) $(rst2html) --stylesheet=../../default.css $(dir $@)index-plain.txt $@ #doc/es/user-guide/index.html: $(call sw,$(addsuffix /*.txt, doc/es/user-guide)) # $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@ # #doc/ru/user-guide/index.html: $(call sw,$(addsuffix /*.txt, doc/ru/user-guide)) # $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@ # doc/en/admin-guide/index-plain.html: $(call sw,$(addsuffix /*.txt, doc/en/admin-guide)) $(rst2html) --stylesheet=../../default.css $(dir $@)index-plain.txt $@ doc/developers/%.html: doc/developers/%.txt $(rst2html) --stylesheet=../default.css $< $@ doc/index.html: doc/index.txt $(rst2html) --stylesheet=default.css $< $@ doc/index.%.html: doc/index.%.txt $(rst2html) --stylesheet=default.css $< $@ %.html: %.txt $(rst2html) --stylesheet=../../default.css $< "$@" doc/en/release-notes/NEWS.txt: $(NEWS_FILES) tools/generate_release_notes.py $(PYTHON) tools/generate_release_notes.py "$@" $(NEWS_FILES) upgrade_guide_dependencies = $(call sw,$(addsuffix /*.txt, doc/en/upgrade-guide)) doc/en/upgrade-guide/index.html: $(upgrade_guide_dependencies) $(rst2html) --stylesheet=../../default.css $(dir $@)index.txt $@ derived_web_docs = $(htm_files) $(dev_htm_files) WEB_DOCS = $(derived_web_docs) $(non_txt_files) ALL_DOCS = $(derived_web_docs) $(MAN_PAGES) # the main target to build all the docs docs-plain: $(ALL_DOCS) # produce a tree containing just the final docs, ready for uploading to the web HTMLDIR = html_docs html-plain: docs-plain $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) $(HTMLDIR) # clean produced docs clean-plain: $(PYTHON) tools/win32/ostools.py remove $(ALL_DOCS) \ $(HTMLDIR) $(derived_txt_files) ### Miscellaneous Documentation Targets ### # build a png of our performance task list # this is no longer built by default; you can build it if you want to look at it doc/developers/performance.png: doc/developers/performance.dot @echo Generating $@ @dot -Tpng $< -o$@ || echo "Dot not installed; skipping generation of $@" ### Windows Support ### # make all the installers completely from scratch, using zc.buildout # to fetch the dependencies # These are files that need to be copied into the build location to boostrap # the build process. # Note that the path is relative to tools/win32 BUILDOUT_FILES = buildout.cfg \ buildout-templates/bin/build-installer.bat.in \ ostools.py bootstrap.py installer-all: @echo Make all the installers from scratch @# Build everything in a separate directory, to avoid cluttering the WT $(PYTHON) tools/win32/ostools.py makedir build-win32 @# cd to tools/win32 so that the relative paths are copied correctly cd tools/win32 && $(PYTHON) ostools.py copytree $(BUILDOUT_FILES) ../../build-win32 @# There seems to be a bug in gf.release.brz, It doesn't correctly update @# existing release directories, so delete them manually before building @# It means things may be rebuilt that don't need to be, but at least @# it will be correct when they do. cd build-win32 && $(PYTHON) ostools.py remove release */release cd build-win32 && $(PYTHON) bootstrap.py cd build-win32 && bin/buildout cd build-win32 && bin/build-installer.bat $(BRZ_TARGET) $(PLUGIN_TARGET) clean-installer-all: $(PYTHON) tools/win32/ostools.py remove build-win32 # make brz.exe for win32 with py2exe exe: @echo *** Make brz.exe $(PYTHON) tools/win32/ostools.py remove breezy/*.pyd $(PYTHON) setup.py build_ext -i -f $(PYTHON_BUILDFLAGS) $(PYTHON) setup.py py2exe > py2exe.log $(PYTHON) tools/win32/ostools.py copytodir tools/win32/start_brz.bat win32_brz.exe $(PYTHON) tools/win32/ostools.py copytodir tools/win32/bazaar.url win32_brz.exe # win32 installer for brz.exe installer: exe copy-docs @echo *** Make Windows installer $(PYTHON) tools/win32/run_script.py cog.py -d -o tools/win32/brz.iss tools/win32/brz.iss.cog iscc /Q tools/win32/brz.iss # win32 Python's distutils-based installer # require to have Python interpreter installed on win32 py-inst-24: docs $(PYTHON24) setup.py bdist_wininst --install-script="brz-win32-bdist-postinstall.py" -d . py-inst-25: docs $(PYTHON25) setup.py bdist_wininst --install-script="brz-win32-bdist-postinstall.py" -d . py-inst-26: docs $(PYTHON26) setup.py bdist_wininst --install-script="brz-win32-bdist-postinstall.py" -d . python-installer: py-inst-24 py-inst-25 py-inst-26 copy-docs: docs $(PYTHON) tools/win32/ostools.py copytodir README win32_brz.exe/doc $(PYTHON) tools/win32/ostools.py copytree $(WEB_DOCS) win32_brz.exe # clean on win32 all installer-related files and directories clean-win32: clean-docs $(PYTHON) tools/win32/ostools.py remove build $(PYTHON) tools/win32/ostools.py remove win32_brz.exe $(PYTHON) tools/win32/ostools.py remove py2exe.log $(PYTHON) tools/win32/ostools.py remove tools/win32/brz.iss $(PYTHON) tools/win32/ostools.py remove brz-setup*.exe $(PYTHON) tools/win32/ostools.py remove brz-*win32.exe $(PYTHON) tools/win32/ostools.py remove dist # i18n targets .PHONY: update-pot po/brz.pot update-pot: po/brz.pot TRANSLATABLE_PYFILES:=$(shell find breezy -name '*.py' \ | grep -v 'breezy/tests/' \ | grep -v 'breezy/doc' \ ) po/brz.pot: $(PYFILES) $(DOCFILES) $(PYTHON) ./brz export-pot --include-duplicates > po/brz.pot echo $(TRANSLATABLE_PYFILES) | xargs \ xgettext --package-name "brz" \ --msgid-bugs-address "" \ --copyright-holder "Canonical" \ --from-code ISO-8859-1 --join --sort-by-file --add-comments=i18n: \ -d bzr -p po -o brz.pot ### Packaging Targets ### .PHONY: dist check-dist-tarball # build a distribution source tarball dist: version=`./brz version --short` && \ echo Building distribution of brz $$version && \ expbasedir=`mktemp -t -d tmp_brz_dist.XXXXXXXXXX` && \ expdir=$$expbasedir/brz-$$version && \ tarball=$$PWD/../brz-$$version.tar.gz && \ $(MAKE) clean && \ $(MAKE) && \ $(PYTHON) setup.py sdist -d $$PWD/.. && \ gpg --detach-sign --armor $$tarball && \ rm -rf $$expbasedir # run all tests in a previously built tarball check-dist-tarball: tmpdir=`mktemp -t -d tmp_brz_check_dist.XXXXXXXXXX` && \ version=`./brz version --short` && \ tarball=$$PWD/../brz-$$version.tar.gz && \ tar Cxz $$tmpdir -f $$tarball && \ $(MAKE) -C $$tmpdir/brz-$$version check && \ rm -rf $$tmpdir breezy-3.0.0~bzr6852/NEWS0000644000000000000000000000021513235603346013103 0ustar 00000000000000The NEWS file has been moved and split into multiple files (one per release series). The NEWS files are now found in doc/en/release-notes/. breezy-3.0.0~bzr6852/README0000644000000000000000000000461613235603346013275 0ustar 00000000000000================= README for Breezy ================= Breezy (``brz``) is a decentralized revision control system, designed to be easy for developers and end users alike. You can install from source by following the instructions in the INSTALL file. At the moment of writing there are no binary packages available. To learn how to use Breezy, see the official documentation in the `doc` directory or refer to the Bazaar documentation at . For additional training materials including screencasts and slides, visit the Bazaar community wiki documentation page at: http://wiki.bazaar.canonical.com/Documentation/ Breezy is Free Software, and is released under the GNU General Public License, version 2 or later. Breezy is a friendly fork of the Bazaar (``bzr``) project, hosted on http://bazaar.canonical.com/. It is backwards compatibility with Bazaar's disk format and protocols. Breezy highlights ================= Breezy directly supports both central version control (like cvs/svn) and distributed version control (like git/hg). Developers can organize their workspace in whichever way they want on a per project basis including: * checkouts (like svn) * feature branches (like hg) * shared working tree (like git). It also directly supports and encourages a large number of development best practices like refactoring and pre-commit regression testing. Users can choose between our command line tool and our cross-platform GUI application. For further details, see our website. Feedback ======== If you encounter any problems with BReezy , need help understanding it, or would like to offer suggestions or feedback, please get in touch with us: * Ask a question through our web support interface, at https://answers.launchpad.net/brz/ * Report bugs at https://bugs.launchpad.net/brz/+filebug * Write to the mailing list at bazaar@lists.canonical.com You can join the list at . You don't need to subscribe to post, but your first post will be held briefly for manual moderation. Please mention that you are using Breezy rather than Bazaar. * Talk to us in irc://irc.ubuntu.com/bzr Please mention that you are using Breezy rather than Bazaar. Our mission is to make a version control tool that developers LOVE to use and that casual contributors feel confident with. Please let us know how we're going. The Breezy Team breezy-3.0.0~bzr6852/README_BDIST_RPM0000644000000000000000000000061513235603346014733 0ustar 00000000000000There is a bug in disttools for distributions who's rpmbuild compresses the man pages. This causes an error building the final packages as it's expecting bzr.1 and not finding it, but finding bzr.1.gz that's unpackaged. This bug is known to affect Fedora, RHEL, and Centos distributions. There is a preliminary patch at http://bugs.python.org/issue644744 that fixes this issue with disttools. breezy-3.0.0~bzr6852/TODO0000644000000000000000000000016313235603346013076 0ustar 00000000000000For things to do in Bazaar development, see https://bugs.launchpad.net/bzr/ https://blueprints.launchpad.net/bzr/ breezy-3.0.0~bzr6852/apport/0000755000000000000000000000000013235603346013713 5ustar 00000000000000breezy-3.0.0~bzr6852/breezy/0000755000000000000000000000000013235603346013706 5ustar 00000000000000breezy-3.0.0~bzr6852/brz0000755000000000000000000000753513235603346013143 0ustar 00000000000000#! /usr/bin/env python # Copyright (C) 2005-2013, 2016, 2017 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA from __future__ import absolute_import """Breezy -- a free distributed version-control tool""" import os import sys import warnings # update this on each release _script_version = (3, 0, 0) NEED_VERS = (2, 7) if sys.version_info < NEED_VERS: sys.stderr.write("brz: error: cannot find a suitable python interpreter\n") sys.stderr.write(" (need %d.%d or later)\n" % NEED_VERS) sys.exit(1) profiling = False if '--profile-imports' in sys.argv: import profile_imports profile_imports.install() profiling = True if os.name == "posix": import locale try: locale.setlocale(locale.LC_ALL, '') except locale.Error as e: sys.stderr.write('brz: warning: %s\n' ' bzr could not set the application locale.\n' ' Although this should be no problem for bzr itself, it might\n' ' cause problems with some plugins. To investigate the issue,\n' ' look at the output of the locale(1p) tool.\n' % e) # Use better default than ascii with posix filesystems that deal in bytes # natively even when the C locale or no locale at all is given. Note that # we need an immortal string for the hack, hence the lack of a hyphen. sys._brz_default_fs_enc = "utf8" # instruct breezy/__init__.py to install lazy_regex sys._brz_lazy_regex = True try: import breezy except ImportError as e: sys.stderr.write("brz: ERROR: " "Couldn't import breezy and dependencies.\n" "Please check the directory containing breezy is on your PYTHONPATH.\n" "\n") raise if breezy.version_info[:3] != _script_version: sys.stderr.write( "brz: WARNING: breezy version doesn't match the brz program.\n" "This may indicate an installation problem.\n" "breezy is version %s from %s\n" "brz is version %s from %s\n" % ( breezy._format_version_tuple(breezy.version_info), breezy.__path__[0], breezy._format_version_tuple(_script_version), __file__)) import breezy.breakin breezy.breakin.hook_debugger_to_signal() import breezy.commands import breezy.trace if __name__ == '__main__': library_state = breezy.initialize() library_state.__enter__() try: exit_val = breezy.commands.main() if profiling: profile_imports.log_stack_info(sys.stderr) finally: library_state.__exit__(None, None, None) # By this point we really have completed everything we want to do, and # there's no point doing any additional cleanup. Abruptly exiting here # stops any background threads getting into trouble as code is unloaded, # and it may also be slightly faster, through avoiding gc of objects that # are just about to be discarded anyhow. This does mean that atexit hooks # won't run but we don't use them. Also file buffers won't be flushed, # but our policy is to always close files from a finally block. -- mbp 20070215 exitfunc = getattr(sys, "exitfunc", None) if exitfunc is not None: exitfunc() os._exit(exit_val) else: raise ImportError("The brz script cannot be imported.") breezy-3.0.0~bzr6852/contrib/0000755000000000000000000000000013235603346014046 5ustar 00000000000000breezy-3.0.0~bzr6852/doc/0000755000000000000000000000000013235603346013153 5ustar 00000000000000breezy-3.0.0~bzr6852/man1/0000755000000000000000000000000013235603346013242 5ustar 00000000000000breezy-3.0.0~bzr6852/po/0000755000000000000000000000000013235603346013024 5ustar 00000000000000breezy-3.0.0~bzr6852/profile_imports.py0000644000000000000000000001446113235603346016203 0ustar 00000000000000# Copyright (C) 2006, 2008, 2009, 2010 by Canonical Ltd # Written by John Arbash Meinel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """A custom importer and regex compiler which logs time spent.""" import sys import time import re _parent_stack = [] _total_stack = {} _info = {} _cur_id = 0 _timer = time.time if sys.platform == 'win32': _timer = time.clock def stack_add(name, frame_name, frame_lineno, scope_name=None): """Start a new record on the stack""" global _cur_id _cur_id += 1 this_stack = (_cur_id, name) if _parent_stack: _total_stack[_parent_stack[-1]].append(this_stack) _total_stack[this_stack] = [] _parent_stack.append(this_stack) _info[this_stack] = [len(_parent_stack)-1, frame_name, frame_lineno, scope_name] return this_stack def stack_finish(this, cost): """Finish a given entry, and record its cost in time""" global _parent_stack assert _parent_stack[-1] == this, \ 'import stack does not end with this %s: %s' % (this, _parent_stack) _parent_stack.pop() _info[this].append(cost) def log_stack_info(out_file, sorted=True, hide_fast=True): # Find all of the roots with import = 0 out_file.write('%5s %5s %-40s @ %s:%s\n' % ('cum', 'inline', 'name', 'file', 'line')) todo = [(value[-1], key) for key,value in _info.iteritems() if value[0] == 0] if sorted: todo.sort() while todo: cum_time, cur = todo.pop() children = _total_stack[cur] c_times = [] info = _info[cur] if hide_fast and info[-1] < 0.0001: continue # Compute the module time by removing the children times mod_time = info[-1] for child in children: c_info = _info[child] mod_time -= c_info[-1] c_times.append((c_info[-1], child)) # indent, cum_time, mod_time, name, # scope_name, frame_name, frame_lineno out_file.write('%5.1f %5.1f %-40s @ %s:%d\n' % (info[-1]*1000., mod_time*1000., ('+'*info[0] + cur[1]), info[1], info[2])) if sorted: c_times.sort() else: c_times.reverse() todo.extend(c_times) _real_import = __import__ def timed_import(name, globals=None, locals=None, fromlist=None, level=-1): """Wrap around standard importer to log import time""" # normally there are 4, but if this is called as __import__ eg by # /usr/lib/python2.6/email/__init__.py then there may be only one # parameter # level is only passed by python2.6 if globals is None: # can't determine the scope name afaics; we could peek up the stack to # see where this is being called from, but it should be a rare case. scope_name = None else: scope_name = globals.get('__name__', None) if scope_name is None: scope_name = globals.get('__file__', None) if scope_name is None: scope_name = globals.keys() else: # Trim out paths before breezy loc = scope_name.find('breezy') if loc != -1: scope_name = scope_name[loc:] # For stdlib, trim out early paths loc = scope_name.find('python2.4') if loc != -1: scope_name = scope_name[loc:] # Figure out the frame that is doing the importing frame = sys._getframe(1) frame_name = frame.f_globals.get('__name__', '') extra = '' if frame_name.endswith('demandload'): # If this was demandloaded, we have 3 frames to ignore extra = '(demandload) ' frame = sys._getframe(4) frame_name = frame.f_globals.get('__name__', '') elif frame_name.endswith('lazy_import'): # If this was lazily imported, we have 3 frames to ignore extra = '[l] ' frame = sys._getframe(4) frame_name = frame.f_globals.get('__name__', '') if fromlist: extra += ' [%s]' % (', '.join(map(str, fromlist)),) frame_lineno = frame.f_lineno this = stack_add(extra + name, frame_name, frame_lineno, scope_name) tstart = _timer() try: # Do the import return _real_import(name, globals, locals, fromlist, level=level) finally: tload = _timer()-tstart stack_finish(this, tload) def _repr_regexp(pattern, max_len=30): """Present regexp pattern for logging, truncating if over max_len.""" if len(pattern) > max_len: return repr(pattern[:max_len-3]) + "..." return repr(pattern) _real_compile = re._compile def timed_compile(*args, **kwargs): """Log how long it takes to compile a regex""" # And who is requesting this? frame = sys._getframe(2) frame_name = frame.f_globals.get('__name__', '') extra = '' if frame_name.endswith('lazy_regex'): # If this was lazily compiled, we have 3 more frames to ignore extra = '[l] ' frame = sys._getframe(5) frame_name = frame.f_globals.get('__name__', '') frame_lineno = frame.f_lineno this = stack_add(extra+_repr_regexp(args[0]), frame_name, frame_lineno) tstart = _timer() try: # Measure the compile time comp = _real_compile(*args, **kwargs) finally: tcompile = _timer() - tstart stack_finish(this, tcompile) return comp def install(): """Install the hooks for measuring import and regex compile time.""" __builtins__['__import__'] = timed_import re._compile = timed_compile def uninstall(): """Remove the import and regex compile timing hooks.""" __builtins__['__import__'] = _real_import re._compile = _real_compile breezy-3.0.0~bzr6852/python3.passing0000644000000000000000000240175013235603346015411 0ustar 00000000000000# This is the list of tests that are known to pass with Python3. # "make check-nodocs3" verifies that these pass. breezy.doc.api.DocFileTest(transport_txt) breezy.iterablefile.IterableFile.close breezy.iterablefile.IterableFile.flush breezy.lockdir breezy.merge3.intersect breezy.option._parse_revision_str breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_brz_version breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_command_case breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_command_cases breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_command_names breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_debug_output breezy.plugins.bash_completion.tests.test_bashcomp.TestBashCodeGen.test_global_options breezy.plugins.bash_completion.tests.test_bashcomp.TestDataCollector.test_global_options breezy.plugins.changelog_merge.tests.test_changelog_merge.TestMergeCoreLogic.test_acceptance_bug_723968 breezy.plugins.changelog_merge.tests.test_changelog_merge.TestMergeCoreLogic.test_default_guess_edits breezy.plugins.changelog_merge.tests.test_changelog_merge.TestMergeCoreLogic.test_more_complex_conflict breezy.plugins.changelog_merge.tests.test_changelog_merge.TestMergeCoreLogic.test_new_in_other_floats_to_top breezy.plugins.changelog_merge.tests.test_changelog_merge.TestMergeCoreLogic.test_too_hard breezy.plugins.commitfromnews.tests.test_msgeditor.TestRegisters.test_registered_at_import breezy.plugins.commitfromnews.tests.test_msgeditor.TestRegisters.test_register_registers_for_commit_message_template breezy.plugins.fastimport.tests.test_branch_mapper.TestBranchMapper.test_git_to_bzr breezy.plugins.fastimport.tests.test_branch_mapper.TestBranchMapper.test_git_to_bzr_for_trunk breezy.plugins.fastimport.tests.test_branch_mapper.TestBranchMapper.test_git_to_bzr_with_slashes breezy.plugins.fastimport.tests.test_commands.TestSourceStream.test_get_source_file breezy.plugins.fastimport.tests.test_commands.TestSourceStream.test_get_source_stream_stdin breezy.plugins.fastimport.tests.test_exporter.CheckRefFormatTests.test_invalid breezy.plugins.fastimport.tests.test_exporter.CheckRefFormatTests.test_valid breezy.plugins.fastimport.tests.test_exporter.CheckRefnameRewriting.test_passthrough_valid breezy.plugins.fastimport.tests.test_exporter.CheckRefnameRewriting.test_rewrite_invalid breezy.plugins.fastimport.tests.test_exporter.TestOutputStream.test_get_output_stream_stdout breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test__delta_to_iter_changes breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_get_file_with_stat_content_in_stream breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_get_symlink_target breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_get_symlink_target_from_delta breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_id2path_no_delta breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_id2path_with_delta breezy.plugins.fastimport.tests.test_revision_store.Test_TreeShim.test_path2id breezy.plugins.grep.test_grep.TestColorGrep.test_color_option breezy.plugins.grep.test_grep.TestColorGrep.test_ver_basic_file breezy.plugins.grep.test_grep.TestColorGrep.test_ver_matching_files breezy.plugins.grep.test_grep.TestColorGrep.test_wtree_basic_file breezy.plugins.grep.test_grep.TestColorGrep.test_wtree_matching_files breezy.plugins.netrc_credential_store.tests.test_netrc.TestNetrcCSNoNetrc.test_home_netrc_does_not_exist breezy.plugins.stats.test_classify.TestClassify.test_classify_art breezy.plugins.stats.test_classify.TestClassify.test_classify_code breezy.plugins.stats.test_classify.TestClassify.test_classify_doc_hardcoded breezy.plugins.stats.test_classify.TestClassify.test_classify_documentation breezy.plugins.stats.test_classify.TestClassify.test_classify_multiple_periods breezy.plugins.stats.test_classify.TestClassify.test_classify_translation breezy.plugins.stats.test_classify.TestClassify.test_classify_unknown breezy.plugins.stats.test_stats.TestCollapseByPerson.test_different_email breezy.plugins.stats.test_stats.TestCollapseByPerson.test_different_name breezy.plugins.stats.test_stats.TestCollapseByPerson.test_different_name_case breezy.plugins.stats.test_stats.TestCollapseByPerson.test_no_conflicts breezy.plugins.weave_fmt.test_bzrdir.SFTPBranchTest.test_lock_file breezy.plugins.weave_fmt.test_bzrdir.TestBranchFormat4.test_no_metadir_support breezy.plugins.weave_fmt.test_repository.TestInterWeaveRepo.test_is_compatible_and_registered breezy.plugins.weave_fmt.test_repository.TestSerializer.test_registry breezy.plugins.weave_fmt.test_store.TestCompressedTextStore.test_multiple_add breezy.plugins.weave_fmt.test_store.TestCompressedTextStore.test_total_size breezy.plugins.weave_fmt.test_store.TestInstrumentedTransportStore.test__add_records breezy.plugins.weave_fmt.test_store.TestMemoryStore.test_adding_fails_when_present breezy.plugins.weave_fmt.test_store.TestMemoryStore.test_missing_is_absent breezy.plugins.weave_fmt.test_store.TestMemoryStore.test_total_size breezy.plugins.weave_fmt.test_store.TestMixedTextStore.test_multiple_add breezy.plugins.weave_fmt.test_store.TestMockTransport.test_has breezy.plugins.weave_fmt.test_store.TestMockTransport.test_isinstance breezy.plugins.weave_fmt.test_store.TestMockTransport.test_mkdir breezy.plugins.weave_fmt.test_store.TestTextStore.test_multiple_add breezy.plugins.weave_fmt.test_store.TestTextStore.test_total_size breezy.plugins.weave_fmt.test_store.TestTransportStore.test_add_simple breezy.plugins.weave_fmt.test_store.TestTransportStore.test___iter__no_suffix breezy.plugins.weave_fmt.test_store.TestTransportStore.test___len__ breezy.plugins.weave_fmt.test_store.TestTransportStore.test_register_invalid_suffixes breezy.plugins.weave_fmt.test_store.TestTransportStore.test_relpath_escaped breezy.plugins.weave_fmt.test_store.TestTransportStore.test__relpath_invalid breezy.plugins.weave_fmt.test_store.TestTransportStore.test__relpath_simple breezy.plugins.weave_fmt.test_store.TestTransportStore.test__relpath_simple_suffixed breezy.plugins.weave_fmt.test_store.TestTransportStore.test__relpath_unregister_suffixes breezy.pyutils.get_named_object breezy.symbol_versioning.deprecated_in breezy.tests.commands.test_branch.TestBranch.test_branch_local_remote breezy.tests.commands.test_branch.TestBranch.test_branch_remote_local breezy.tests.commands.test_branch.TestBranch.test_branch_remote_remote breezy.tests.commands.test_cat.TestCat.test_cat breezy.tests.commands.test_checkout.TestCheckout.test_checkout breezy.tests.commands.test_checkout.TestCheckout.test_checkout_lightweight breezy.tests.commands.test_commit.TestCommitWithBoundBranch.test_commit_both_modified breezy.tests.commands.test_commit.TestCommitWithBoundBranch.test_commit_local breezy.tests.commands.test_commit.TestCommitWithBoundBranch.test_commit_mine_modified breezy.tests.commands.test_init_repository.TestInitRepository.test_init_repository breezy.tests.commands.test_init.TestInit.test_init breezy.tests.commands.test_merge.TestMerge.test_merge breezy.tests.commands.test_missing.TestMissing.test_missing breezy.tests.commands.test_pull.TestPull.test_pull breezy.tests.commands.test_pull.TestPull.test_pull_with_bound_branch breezy.tests.commands.test_push.TestPush.test_push breezy.tests.commands.test_push.TestPush.test_push_onto_stacked breezy.tests.commands.test_update.TestUpdate.test_update breezy.tests.multiply_tests breezy.tests.per_branch.test_branch.TestBound.test_bind_clears_cached_master_branch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_bind_clears_cached_master_branch(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBound.test_bind_diverged(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_bind_unbind(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_bind_unbind(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBound.test_old_bound_location(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_old_bound_location(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBound.test_set_bound_location_clears_cached_master_branch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_set_bound_location_clears_cached_master_branch(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBound.test_unbind_clears_cached_master_branch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBound.test_unbind_clears_cached_master_branch(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranchControlComponent.test_urls(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchControlComponent.test_urls(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranchFormat.test_branch_format_network_name(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchFormat.test_get_config_calls(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchFormat.test_get_config_calls(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_get_push_location_exact(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_get_push_location_exact(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_get_push_location_unset(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_get_push_location_unset(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_set_push_location(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranchPushLocations.test_set_push_location(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_bad_revision(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_bad_revision(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BzrBranchFormat4) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BzrBranchFormat5) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BzrBranchFormat6) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(BzrBranchFormat8) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(RemoteBranchFormat-default) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_nickname(RemoteBranchFormat-v2) breezy.tests.per_branch.test_branch.TestBranch.test_clone_branch_parent(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_clone_partial(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_commit_nicks(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_anonymous_heavyweight_checkout(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_anonymous_lightweight_checkout(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_append_revisions_only(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_append_revisions_only(BzrBranchFormat5) breezy.tests.per_branch.test_branch.TestBranch.test_create_append_revisions_only(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_create_checkout(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_colocated(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_colocated(BzrBranchFormat5) breezy.tests.per_branch.test_branch.TestBranch.test_create_colocated(BzrBranchFormat6) breezy.tests.per_branch.test_branch.TestBranch.test_create_colocated(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_create_colocated(BzrBranchFormat8) breezy.tests.per_branch.test_branch.TestBranch.test_create_open_branch_uses_repository(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_create_open_branch_uses_repository(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_create_tree_with_merge(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_fetch_revisions(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_format_description(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_format_description(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_generate_revision_history(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_generate_revision_history_NULL_REVISION(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_get_commit_builder(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_get_commit_builder(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_get_set_append_revisions_only(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_get_set_append_revisions_only(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_heads_to_fetch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_heads_to_fetch_not_null_revision(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_heads_to_fetch_not_null_revision(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_nicks(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_nicks(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_nicks_bzr(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_nicks_bzr(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_public_branch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_public_branch(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestBranch.test_record_initial_ghost(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_record_two_ghosts(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_revision_ids_are_utf8(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_submit_branch(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestBranch.test_submit_branch(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestChildSubmitFormats.test_get_child_submit_format(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestChildSubmitFormats.test_get_child_submit_format(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestChildSubmitFormats.test_get_child_submit_format_default(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestChildSubmitFormats.test_get_child_submit_format_default(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestFormat.test_format_initialize_find_open(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestFormat.test_get_reference(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestFormat.test_get_reference(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestFormat.test_set_reference(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestFormat.test_set_reference(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestIgnoreFallbacksParameter.test_fallbacks_are_opened(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestIgnoreFallbacksParameter.test_fallbacks_not_opened(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestIgnoreFallbacksParameter.test_fallbacks_not_opened(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_branch_relative_reference_location(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_branch_relative_reference_location(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_clone_copies_reference_location(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_clone_copies_reference_location(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_copied_locations_are_rebased(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_copied_locations_are_rebased(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_get_reference_info(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_get_reference_info(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_merge_updates_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_merge_updates_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_pull_updates_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_pull_updates_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_push_updates_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_push_updates_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_reference_parent_accepts_possible_transports(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_reference_parent(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_reference_parent_from_reference_info_(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_reference_parent_from_reference_info_(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_get_reference_info(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_get_reference_info(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_reference_info(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_reference_info(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_reference_info_when_null(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_reference_info_when_null(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_requires_two_nones(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_null_requires_two_nones(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_reference_info(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_set_reference_info(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_sprout_copies_reference_location(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_sprout_copies_reference_location(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_retains_known_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_retains_known_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_retains_old_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_retains_old_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_skips_known_references(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestReferenceLocation.test_update_references_skips_known_references(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestStrict.test_strict_history(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BzrBranchFormat4) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BzrBranchFormat5) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BzrBranchFormat6) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(BzrBranchFormat8) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(RemoteBranchFormat-default) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_branch_format_matches_bzrdir_branch_format(RemoteBranchFormat-v2) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_make_branch_gets_expected_format(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestTestCaseWithBranch.test_make_branch_gets_expected_format(BzrBranchFormat7) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_get_unshelver_bound(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_get_unshelver(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_store_uncommitted_already_stored(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_store_uncommitted_bound(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_store_uncommitted(BranchReferenceFormat) breezy.tests.per_branch.test_branch.TestUncommittedChanges.test_store_uncommitted_none(BranchReferenceFormat) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_locked(BranchReferenceFormat) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_locked(BzrBranchFormat7) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocked(BranchReferenceFormat) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocked(BzrBranchFormat7) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocked_repo_locked(BranchReferenceFormat) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocked_repo_locked(BzrBranchFormat7) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocks_master_branch(BranchReferenceFormat) breezy.tests.per_branch.test_break_lock.TestBreakLock.test_unlocks_master_branch(BzrBranchFormat7) breezy.tests.per_branch.test_check.TestBranchCheck.test_check_branch_report_results(BranchReferenceFormat) breezy.tests.per_branch.test_check.TestBranchCheck.test_check_branch_report_results(BzrBranchFormat7) breezy.tests.per_branch.test_check.TestBranchCheck.test_check_detects_invalid_revhistory(BranchReferenceFormat) breezy.tests.per_branch.test_check.TestBranchCheck.test__get_check_refs(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_post_commit_bound(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_post_commit_not_to_origin(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_post_commit_to_origin(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_pre_commit_delta(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_pre_commit_fails(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommitHook.test_pre_commit_passes(BranchReferenceFormat) breezy.tests.per_branch.test_commit.TestCommit.test_commit_nicks(BranchReferenceFormat) breezy.tests.per_branch.test_config.TestGetConfig.test_set_submit_branch(BranchReferenceFormat) breezy.tests.per_branch.test_config.TestGetConfig.test_set_submit_branch(BzrBranchFormat7) breezy.tests.per_branch.test_config.TestGetConfig.test_set_user_option_with_dict(BranchReferenceFormat) breezy.tests.per_branch.test_config.TestGetConfig.test_set_user_option_with_dict(BzrBranchFormat7) breezy.tests.per_branch.test_create_checkout.TestCreateCheckout.test_checkout_format_heavyweight(BranchReferenceFormat) breezy.tests.per_branch.test_create_checkout.TestCreateCheckout.test_checkout_format_lightweight(BranchReferenceFormat) breezy.tests.per_branch.test_create_checkout.TestCreateCheckout.test_create_checkout_exists(BranchReferenceFormat) breezy.tests.per_branch.test_create_checkout.TestCreateCheckout.test_create_lightweight_checkout(BranchReferenceFormat) breezy.tests.per_branch.test_create_checkout.TestCreateCheckout.test_create_revision_checkout(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_of_multiple_roots(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_missing_parent_dir(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_missing_parent_dir_create(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_no_revision_id(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_revision_id(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_stacked_hooks_get_stacked_branch(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_use_existing_dir_false(BranchReferenceFormat) breezy.tests.per_branch.test_create_clone.TestCreateClone.test_create_clone_on_transport_use_existing_dir_true(BranchReferenceFormat) breezy.tests.per_branch.test_dotted_revno_to_revision_id.TestDottedRevnoToRevisionId.test_lookup_revision_id_by_dotted(BranchReferenceFormat) breezy.tests.per_branch.test_get_revision_id_to_revno_map.TestCaching.test_locked(BranchReferenceFormat) breezy.tests.per_branch.test_get_revision_id_to_revno_map.TestCaching.test_set_last_revision_info_when_locked(BranchReferenceFormat) breezy.tests.per_branch.test_get_revision_id_to_revno_map.TestCaching.test_unlocked(BranchReferenceFormat) breezy.tests.per_branch.test_get_revision_id_to_revno_map.TestRevisionIdToDottedRevno.test_simple_revno(BranchReferenceFormat) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BranchReferenceFormat) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BzrBranchFormat4) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BzrBranchFormat5) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BzrBranchFormat6) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BzrBranchFormat7) breezy.tests.per_branch.test_hooks.TestOpen.test_create(BzrBranchFormat8) breezy.tests.per_branch.test_http.InaccessibleParentTests.test_clone_invalid_parent(BranchReferenceFormat) breezy.tests.per_branch.test_http.InaccessibleParentTests.test_get_parent_invalid(BranchReferenceFormat) breezy.tests.per_branch.test_http.InaccessibleParentTests.test_sprout_invalid_parent(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsBushyGraph.test_merge_sorted_exclude_ancestry(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsBushyGraph.test_merge_sorted_starting_at_embedded_merge(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsBushyGraph.test_merge_sorted_with_different_depths_merge(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_start_only(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_start_only_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_exclude(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_exclude_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_include(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_include_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_with_merges(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_with_merges_can_show_non_parents(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_with_merges_forward(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_range_stop_with_merges_ignore_non_parents(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_single_stop_exclude(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_single_stop_include(BranchReferenceFormat) breezy.tests.per_branch.test_iter_merge_sorted_revisions.TestIterMergeSortedRevisionsSimpleGraph.test_merge_sorted_single_stop_with_merges(BranchReferenceFormat) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BranchReferenceFormat) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BzrBranchFormat4) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BzrBranchFormat5) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BzrBranchFormat6) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BzrBranchFormat7) breezy.tests.per_branch.test_last_revision_info.TestLastRevisionInfo.test_empty_branch(BzrBranchFormat8) breezy.tests.per_branch.test_locking.TestBranchLocking.test_01_lock_read(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_01_lock_read(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_02_lock_write(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_02_lock_write(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_03_lock_fail_unlock_repo(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_03_lock_fail_unlock_repo(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_04_lock_fail_unlock_control(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_04_lock_fail_unlock_control(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_05_lock_read_fail_repo(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_05_lock_read_fail_repo(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_06_lock_write_fail_repo(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_06_lock_write_fail_repo(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_07_lock_read_fail_control(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_07_lock_read_fail_control(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_08_lock_write_fail_control(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_08_lock_write_fail_control(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_dont_leave_lock_in_place(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_dont_leave_lock_in_place(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_leave_lock_in_place(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_leave_lock_in_place(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_and_unlock_leaves_repo_unlocked(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_and_unlock_leaves_repo_unlocked(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_context_manager(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_context_manager(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_returns_unlockable(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_returns_unlockable(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_then_unlock(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_read_then_unlock(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_locks_repo_too(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_locks_repo_too(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_raises_in_lock_read(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_raises_in_lock_read(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_reenter_with_token(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_reenter_with_token(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_returns_None_refuses_token(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_returns_None_refuses_token(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_returns_unlockable(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_returns_unlockable(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_matching_token(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_matching_token(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_nonmatching_token(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_nonmatching_token(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_token_fails_when_unlocked(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_lock_write_with_token_fails_when_unlocked(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_reentering_lock_write_raises_on_token_mismatch(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_reentering_lock_write_raises_on_token_mismatch(BzrBranchFormat7) breezy.tests.per_branch.test_locking.TestBranchLocking.test_unlock_after_lock_write_with_token(BranchReferenceFormat) breezy.tests.per_branch.test_locking.TestBranchLocking.test_unlock_after_lock_write_with_token(BzrBranchFormat7) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BranchReferenceFormat) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BzrBranchFormat4) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BzrBranchFormat5) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BzrBranchFormat6) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BzrBranchFormat7) breezy.tests.per_branch.test_parent.TestParent.test_get_invalid_parent(BzrBranchFormat8) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BranchReferenceFormat) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BzrBranchFormat4) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BzrBranchFormat5) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BzrBranchFormat6) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BzrBranchFormat7) breezy.tests.per_branch.test_parent.TestParent.test_no_default_parent(BzrBranchFormat8) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BranchReferenceFormat) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BzrBranchFormat4) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BzrBranchFormat5) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BzrBranchFormat6) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BzrBranchFormat7) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(BzrBranchFormat8) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(RemoteBranchFormat-default) breezy.tests.per_branch.test_parent.TestParent.test_win32_set_parent_on_another_drive(RemoteBranchFormat-v2) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BranchReferenceFormat) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BzrBranchFormat4) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BzrBranchFormat5) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BzrBranchFormat6) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BzrBranchFormat7) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(BzrBranchFormat8) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(RemoteBranchFormat-default) breezy.tests.per_branch.test_permissions.TestPermissions.test_mode_0(RemoteBranchFormat-v2) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BranchReferenceFormat) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BzrBranchFormat4) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BzrBranchFormat5) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BzrBranchFormat6) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BzrBranchFormat7) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(BzrBranchFormat8) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BranchReferenceFormat) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BzrBranchFormat4) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BzrBranchFormat5) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BzrBranchFormat6) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BzrBranchFormat7) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(BzrBranchFormat8) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(RemoteBranchFormat-default) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch_group_sticky_bit(RemoteBranchFormat-v2) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(RemoteBranchFormat-default) breezy.tests.per_branch.test_permissions.TestPermissions.test_new_branch(RemoteBranchFormat-v2) breezy.tests.per_branch.test_pull.TestPullHook.test_post_pull_bound_branch(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPullHook.test_post_pull_empty_history(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPullHook.test_post_pull_nonempty_history(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_convergence_simple(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_local_raises_LocalRequiresBoundBranch_on_unbound(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_local_updates_checkout_only(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_merged_indirect(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_merges_and_fetches_tags(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_overwrite(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_returns_result(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_stop_revision_merges_and_fetches_tags(BranchReferenceFormat) breezy.tests.per_branch.test_pull.TestPull.test_pull_updates_checkout_and_master(BranchReferenceFormat) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_api(BzrBranchFormat4) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_api(RemoteBranchFormat-default) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_api(RemoteBranchFormat-v2) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_command(BzrBranchFormat4) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_command(RemoteBranchFormat-default) breezy.tests.per_branch.test_push.EmptyPushSmartEffortTests.test_empty_branch_command(RemoteBranchFormat-v2) breezy.tests.per_branch.test_push.TestLossyPush.test_lossy_push_raises_same_vcs(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestLossyPush.test_lossy_push_raises_same_vcs(BzrBranchFormat7) breezy.tests.per_branch.test_push.TestPushHook.test_post_push_bound_branch(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPushHook.test_post_push_empty_history(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPushHook.test_post_push_nonempty_history(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_convergence_simple(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_merged_indirect(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_new_tag_to_bound_branch(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_overwrite_of_non_tip_with_stop_revision(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_overwrite_with_older_mainline_rev(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_raises_specific_error_on_master_connection_error(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_repository_no_branch_doesnt_fetch_all_revs(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_to_checkout_updates_master(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_uses_read_lock(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_with_default_stacking_does_not_create_broken_branch(BranchReferenceFormat) breezy.tests.per_branch.test_push.TestPush.test_push_with_default_stacking_does_not_create_broken_branch(BzrBranchFormat4) breezy.tests.per_branch.test_push.TestPush.test_push_within_repository(BranchReferenceFormat) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BranchReferenceFormat) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BzrBranchFormat4) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BzrBranchFormat5) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BzrBranchFormat6) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BzrBranchFormat7) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(BzrBranchFormat8) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(RemoteBranchFormat-default) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_fixes_invalid_revhistory(RemoteBranchFormat-v2) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_handles_ghosts_in_revhistory(BranchReferenceFormat) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_returns_reconciler(BranchReferenceFormat) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_returns_reconciler(BzrBranchFormat7) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_supports_thorough(BranchReferenceFormat) breezy.tests.per_branch.test_reconcile.TestBranchReconcile.test_reconcile_supports_thorough(BzrBranchFormat7) breezy.tests.per_branch.test_revision_id_to_dotted_revno.TestRevisionIdToDottedRevno.test_lookup_dotted_revno(BranchReferenceFormat) breezy.tests.per_branch.test_revision_id_to_revno.TestRevisionIdToRevno.test_empty(BranchReferenceFormat) breezy.tests.per_branch.test_revision_id_to_revno.TestRevisionIdToRevno.test_mainline_ghost(BranchReferenceFormat) breezy.tests.per_branch.test_revision_id_to_revno.TestRevisionIdToRevno.test_simple_revno(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BzrBranchFormat4) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BzrBranchFormat5) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BzrBranchFormat6) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BzrBranchFormat7) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(BzrBranchFormat8) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(RemoteBranchFormat-default) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_nickname(RemoteBranchFormat-v2) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_branch_parent(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_from_any_repo_revision(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_partial(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_partial_not_in_revision_history(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_preserves_tags(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_stacked_hooks_get_stacked_branch(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_uses_bzrdir_branch_format(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_with_ghost_in_mainline(BranchReferenceFormat) breezy.tests.per_branch.test_sprout.TestSprout.test_sprout_with_unicode_symlink(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BzrBranchFormat5) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BzrBranchFormat6) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BzrBranchFormat7) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(BzrBranchFormat8) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BzrBranchFormat5) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BzrBranchFormat6) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BzrBranchFormat7) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(BzrBranchFormat8) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(RemoteBranchFormat-default) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked_relative(RemoteBranchFormat-v2) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(RemoteBranchFormat-default) breezy.tests.per_branch.test_stacking.TestStackingConnections.test_open_stacked(RemoteBranchFormat-v2) breezy.tests.per_branch.test_stacking.TestStacking.test_autopack_when_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_clone_from_branch_stacked_on_relative_url_preserve_stacking(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_clone_from_stacked_branch_no_preserve_stacking(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_clone_from_stacked_branch_preserve_stacking(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_clone_stacking_policy_handling(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_clone_stacking_policy_handling(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStacking.test_fetch_copies_from_stacked_on_and_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_fetch_copies_from_stacked_on(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_fetch_revisions_with_file_changes(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_get_graph_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_get_set_stacked_on_relative(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_get_set_stacked_on_url(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_no_op_preserve_stacking(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_pull_delta_when_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_pull_delta_when_stacked(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStacking.test_pull_delta_when_stacked(BzrBranchFormat5) breezy.tests.per_branch.test_stacking.TestStacking.test_pull_delta_when_stacked(BzrBranchFormat6) breezy.tests.per_branch.test_stacking.TestStacking.test_revision_history_of_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_set_stacked_on_same_branch_after_being_stacked_raises(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_set_stacked_on_same_branch_raises(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_set_stacked_on_same_branch_raises(BzrBranchFormat7) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_stacked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_stacked_from_smart_server(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_stacking_policy_handling(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_stacking_policy_handling(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_to_smart_server_stacking_policy_handling(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_to_smart_server_stacking_policy_handling(BzrBranchFormat4) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_to_smart_server_stacking_policy_handling(RemoteBranchFormat-default) breezy.tests.per_branch.test_stacking.TestStacking.test_sprout_to_smart_server_stacking_policy_handling(RemoteBranchFormat-v2) breezy.tests.per_branch.test_stacking.TestStacking.test_stack_on_repository_branch(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_transform_fallback_location_hook(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_unstack_already_locked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_unstack_already_multiple_locked(BranchReferenceFormat) breezy.tests.per_branch.test_stacking.TestStacking.test_unstack_fetches(BranchReferenceFormat) breezy.tests.per_branch.test_tags.AutomaticTagNameTests.test_ignores_none(BranchReferenceFormat) breezy.tests.per_branch.test_tags.AutomaticTagNameTests.test_no_functions(BranchReferenceFormat) breezy.tests.per_branch.test_tags.AutomaticTagNameTests.test_returns_tag_name(BranchReferenceFormat) breezy.tests.per_branch.test_tags.AutomaticTagNameTests.test_uses_first_return(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_cached_tag_dict_not_accidentally_mutable(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_delete_tag(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_delete_tag_invalides_cache(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_ghost_tag(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_make_and_lookup_tag(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_merge_empty_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_merge_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_merge_to_invalides_cache(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_no_such_tag(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_read_lock_caches_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_rename_revisions_invalides_cache(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_reverse_tag_dict(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_set_tag_invalides_cache(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_tags_initially_empty(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_unicode_tag(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestBranchTags.test_unlocked_does_not_cache_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_ignore_master_disables_tag_propagation(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_conflict_in_child_only(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_conflict_in_master_only(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_different_conflict_in_master_and_child(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_overwrite_conflict_in_child_and_master(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_overwrite_conflict_in_master(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_propagates_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestTagsMergeToInCheckouts.test_merge_to_same_conflict_in_master_and_child(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestUnsupportedTags.test_merge_empty_tags(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestUnsupportedTags.test_merge_empty_tags(BzrBranchFormat7) breezy.tests.per_branch.test_tags.TestUnsupportedTags.test_tag_methods_raise(BranchReferenceFormat) breezy.tests.per_branch.test_tags.TestUnsupportedTags.test_tag_methods_raise(BzrBranchFormat7) breezy.tests.per_branch.test_uncommit.TestUncommitHook.test_post_uncommit_bound(BranchReferenceFormat) breezy.tests.per_branch.test_uncommit.TestUncommitHook.test_post_uncommit_not_to_origin(BranchReferenceFormat) breezy.tests.per_branch.test_uncommit.TestUncommitHook.test_post_uncommit_to_origin(BranchReferenceFormat) breezy.tests.per_branch.test_update.TestUpdate.test_update_in_checkout_of_readonly(BranchReferenceFormat) breezy.tests.per_branch.test_update.TestUpdate.test_update_local_commits_returns_old_tip(BranchReferenceFormat) breezy.tests.per_branch.test_update.TestUpdate.test_update_prefix_returns_none(BranchReferenceFormat) breezy.tests.per_branch.test_update.TestUpdate.test_update_unbound_works(BranchReferenceFormat) breezy.tests.per_branch.test_update.TestUpdate.test_update_unbound_works(BzrBranchFormat7) breezy.tests.per_interbranch.test_copy_content_into.TestCopyContentInto.test_inter_is_used(GenericInterBranch,BzrBranchFormat7,BzrBranchFormat7) breezy.tests.per_interbranch.test_get.TestInterBranchGet.test_gets_right_inter(GenericInterBranch,BzrBranchFormat7,BzrBranchFormat7) breezy.tests.per_interrepository.test_fetch.TestFetchDependentData.test_reference(InterDifferingSerializer,RepositoryFormat2a,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestFetchDependentData.test_reference(InterDifferingSerializer,RepositoryFormatKnitPack6RichRoot,RepositoryFormat2a) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_across_stacking_boundary_ignores_ghost(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_smart_old(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_from_stacked_to_stacked_copies_parent_inventories(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_parent_inventories_at_stacking_boundary_smart_old(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterDifferingSerializer,RepositoryFormat2a,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterDifferingSerializer,RepositoryFormatKnitPack6RichRoot,RepositoryFormat2a) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_fetch.TestInterRepository.test_fetch_same_location_trivial_works(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterDifferingSerializer+get_known_graph_ancestry,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterDifferingSerializer,RepositoryFormat2a,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterDifferingSerializer,RepositoryFormatKnitPack1,RepositoryFormatKnitPack6RichRoot) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterDifferingSerializer,RepositoryFormatKnitPack6RichRoot,RepositoryFormat2a) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnit1,RepositoryFormatKnitPack1) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnit3,RepositoryFormatKnitPack3) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnitPack1,RepositoryFormatKnit1) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterKnitRepo,RepositoryFormatKnitPack3,RepositoryFormatKnitPack4) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterRepository,RepositoryFormat5,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterRepository,RepositoryFormatKnit1,RepositoryFormatKnit3) breezy.tests.per_interrepository.test_interrepository.TestInterRepository.test_interrepository_get_returns_correct_optimiser(InterSameDataRepository,RepositoryFormatKnit3,RepositoryFormatKnit3) breezy.tests.per_intertree.test_compare.TestCompare.test_dangling(InterDirStateTree(C)) breezy.tests.per_intertree.test_compare.TestCompare.test_unversioned_paths_in_tree(InterDirStateTree(C)) breezy.tests.per_intertree.test_compare.TestIterChanges.test_compare_subtrees(InterTree(CHKInventory)) breezy.tests.per_intertree.test_compare.TestIterChanges.test_unversioned_paths_in_tree(InterDirStateTree(C)) breezy.tests.per_intertree.test_compare.TestIterChanges.test_unversioned_paths_in_tree_specific_files(InterDirStateTree(C)) breezy.tests.per_intertree.test_compare.TestIterChanges.test_unversioned_subtree_only_emits_root(InterDirStateTree(C)) breezy.tests.per_lock.test_lock.TestLock.test_multiple_read_locks(fcntl) breezy.tests.per_lock.test_lock.TestLock.test_multiple_write_locks_exclude(fcntl) breezy.tests.per_lock.test_lock.TestLock.test_readonly_file(fcntl) breezy.tests.per_lock.test_lock.TestLock.test_read_unlock_write(fcntl) breezy.tests.per_lock.test_temporary_write_lock.TestTemporaryWriteLock.test_fails_when_locked(fcntl) breezy.tests.per_lock.test_temporary_write_lock.TestTemporaryWriteLock.test_is_write_locked(fcntl) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_empty(diff3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_empty(lca) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_empty(merge3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_empty(weave) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_non_empty(diff3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_non_empty(lca) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_non_empty(merge3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_existing_limbo_non_empty(weave) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_empty(diff3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_empty(lca) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_empty(merge3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_empty(weave) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_non_empty(diff3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_non_empty(lca) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_non_empty(merge3) breezy.tests.per_merger.TestMergeImplementation.test_merge_with_pending_deletion_non_empty(weave) breezy.tests.permute_tests_for_extension..FailWithoutFeature.test_fail breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_adding_pack_does_not_record_pack_names_from_other_repositories(pack-0.92) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_adding_pack_does_not_record_pack_names_from_other_repositories(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_autopack_only_considers_main_repo_packs(pack-0.92) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_autopack_only_considers_main_repo_packs(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(1.6) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(1.9) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(2a) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(pack-0.92) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_rich_root_compatibility(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(1.6) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(1.9) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(2a) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(pack-0.92) breezy.tests.per_pack_repository.TestPackRepositoryStacking.test_stack_checks_serializers_compatibility(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(2a) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_order(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(2a) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_attribute__fetch_uses_deltas(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(2a) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_break_lock_breaks_physical_lock(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(2a) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_broken_physical_locks_error_on__unlock_names_lock(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_lock_write_does_not_physically_lock(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_lock_write_does_not_physically_lock(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_lock_write_does_not_physically_lock(2a) breezy.tests.per_pack_repository.TestPackRepository.test_missing_inventories_compression_parent_prevents_commit(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_missing_inventories_compression_parent_prevents_commit(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_missing_inventories_compression_parent_prevents_commit(2a) breezy.tests.per_pack_repository.TestPackRepository.test_missing_revisions_compression_parent_prevents_commit(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_missing_revisions_compression_parent_prevents_commit(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_missing_revisions_compression_parent_prevents_commit(2a) breezy.tests.per_pack_repository.TestPackRepository.test_missing_signatures_compression_parent_prevents_commit(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_missing_signatures_compression_parent_prevents_commit(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_missing_signatures_compression_parent_prevents_commit(2a) breezy.tests.per_pack_repository.TestPackRepository.test_missing_text_compression_parent_prevents_commit(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_missing_text_compression_parent_prevents_commit(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_missing_text_compression_parent_prevents_commit(2a) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(2a) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_pack_collection_sets_sibling_indices(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_pack_repositories_support_multiple_write_locks(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_pack_repositories_support_multiple_write_locks(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_pack_repositories_support_multiple_write_locks(2a) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_resume_chk_bytes(pack-0.92-subtree) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(1.6) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(1.6.1-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(1.9) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(1.9-rich-root) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(2a) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(pack-0.92) breezy.tests.per_pack_repository.TestPackRepository.test_supports_external_lookups(pack-0.92-subtree) breezy.tests.per_repository_chk.test_supported.TestCHKSupport.test_chk_bytes_attribute_is_VersionedFiles(RepositoryFormat2a) breezy.tests.per_repository_chk.test_supported.TestCHKSupport.test_chk_bytes_attribute_is_VersionedFiles(RepositoryFormat2aSubtree) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormat4) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack1) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack3) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack4) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack5) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack6) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_chk.test_unsupported.TestNoCHKSupport.test_chk_bytes_attribute_is_None(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghost_in_ancestry(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_commit_with_ghosts_fails(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_commit(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_merge_from_master(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_multi_stack(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_commit_with_stacking.TestCommitWithStacking.test_simple_commit(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormat2a) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormat2aSubtree) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_graph.TestGraph.test_doesnt_call_get_parent_map_on_all_fallback_revs(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_doesnt_leave_fallback_locked(RepositoryFormat2a) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_doesnt_leave_fallback_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_doesnt_leave_fallback_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_doesnt_leave_fallback_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_doesnt_leave_fallback_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormat2a) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormat2aSubtree) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatKnitPack5) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.TestIncompatibleStacking.test_add_fallback_repository_rejects_incompatible(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_reference.test_unlock.TestUnlock.test_unlock_unlocks_fallback(RepositoryFormat2a) breezy.tests.per_repository_reference.test_unlock.TestUnlock.test_unlock_unlocks_fallback(RepositoryFormat2aSubtree) breezy.tests.per_repository_reference.test_unlock.TestUnlock.test_unlock_unlocks_fallback(RepositoryFormatKnitPack6) breezy.tests.per_repository_reference.test_unlock.TestUnlock.test_unlock_unlocks_fallback(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_reference.test_unlock.TestUnlock.test_unlock_unlocks_fallback(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_add_fallback_repository.TestAddFallbackRepository.test_add_fallback_repository(RepositoryFormat4) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormat2a) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormat4) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormat2a) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormat4) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_break_lock.TestBreakLock.test_unlocked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_check.TestCleanRepository.test_new_repo(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_abort_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormat2a) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_builder_commit_with_invalid_message(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_lossy(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_message(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_committer_no_username(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_unchanged_root_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormat2a) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_without_root_errors(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_commit_with_revision_id_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_finish_inventory_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormat2a) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormat2a) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_get_commit_builder_with_invalid_revprops(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_dir_file(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_dir_link(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_file_dir(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_file_link(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_link_dir(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_link_file(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_rev_after_content_link_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_rev_after_content_unicode_link_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_dir_contents_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_dir_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_file_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_link_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_reference_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_commit_root_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_content_file_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_converged_merge_dir_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_converged_merge_file_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_converged_merge_link_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_dir_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_file_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_link_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_new_dir_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_new_file_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_merge_new_link_unchanged(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_rename_dir_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_rename_file_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_rename_link_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_rename_ref_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_reparent_dir_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_reparent_file_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_last_modified_revision_after_reparent_link_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_non_ascii_str_committer_rejected(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_record_delete_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_revision_tree_record_iter_changes(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_root_entry_has_revision(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormat2a) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormat4) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_stacked_repositories_reject_commit_builder(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_commit_builder.TestCommitBuilder.test_updates_branch(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_all_from_self(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_all_same_revisions_twice(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_copies_signatures(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormat2a) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_fails_in_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_from_self(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_missing_from_self(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_revision_already_exists(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_knit3(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormat5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormat6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormat7) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_ghost_parent(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_gone(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_gone(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_gone(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_gone(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_moved(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_moved(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_moved(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent_different_id_moved(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_1_parent(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_head_parents(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_head_parents(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_head_parents(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_head_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_1_different_id_gone(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_1_different_id_gone(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_1_different_id_gone(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_1_different_id_gone(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_2_different_id_moved(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_2_different_id_moved(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_2_different_id_moved(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parent_2_different_id_moved(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parents_1_head(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parents_1_head(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parents_1_head(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_2_parents_1_head(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_no_parents(RepositoryFormat4) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_no_parents(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_no_parents(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_to_rich_root_set_parent_no_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_fetch.TestFetchSameRepository.test_fetch_with_ghost(RepositoryFormat4) breezy.tests.per_repository.test_file_graph.TestPerFileGraph.test_file_graph(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormat2a) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_missing_revision(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_multiple_parents(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_none(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_no_parents(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormat2a) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormat4) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_get_parent_map.TestGetParentMap.test_null_revision(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormat2a) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormat4) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_empty_list(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormat2a) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormat4) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_NULL(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_revisions.TestHasRevisions.test_superset(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_format_not_equal(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormat2a) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_different_repos_not_equal(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormat2a) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_bzrdir_different_control_files_not_equal(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormat2a) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_instance(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormat2a) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormat4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_has_same_location.TestHasSameLocation.test_same_repo_location(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsLocked.test_not_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsLocked.test_read_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsLocked.test_write_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_not_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_read_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormat2a) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormat4) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_locking.TestIsWriteLocked.test_write_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_pack.TestPack.test_pack_accepts_opaque_hint(RepositoryFormat4) breezy.tests.per_repository.test_pack.TestPack.test_pack_empty_does_not_error(RepositoryFormat4) breezy.tests.per_repository.test_pack.TestPack.test_pack_empty_does_not_error(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_pack.TestPack.test_pack_empty_does_not_error(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_pack.TestPack.test_pack_empty_does_not_error(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_reconcile.TestRepeatedReconcile.test_trivial_two_reconciles_no_error(RepositoryFormat4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormat2a) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormat4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_in_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormat2a) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormat4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_read_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormat2a) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormat4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_unlocked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormat2a) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormat4) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_refresh_data.TestRefreshData.test_refresh_data_write_locked(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestDeltaRevisionFiltered.test_directory(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestDeltaRevisionFiltered.test_file_in_directory(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestDeltaRevisionFiltered.test_file_in_unchanged_directory(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestDeltaRevisionFiltered.test_multiple_files(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestDeltaRevisionFiltered.test_unrelated(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestEscaping.test_on_vfat(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_repository.TestEscaping.test_on_vfat(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryControlComponent.test_urls(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_dont_leave_lock_in_place(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_leave_lock_in_place(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_returns_unlockable(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_read_then_unlock(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryLocking.test_lock_write_returns_unlockable(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepositoryMakeBranchAndTree.test_repository_format(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_add_signature_text(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_fast_deltas(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute__fetch_reconcile(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_experimental(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_pack_compresses(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_revision_graph_can_have_wrong_parents(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_full_versioned_files(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_funky_characters(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_leaving_lock(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_supports_setting_revision_ids(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_format_versioned_directories(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_nesting_repositories(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_attribute_supports_unreferenced_revisions(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_check_repository(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormat7) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnit1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnit3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnit4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_bzrdir_repository_revision(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormat7) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnit1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnit3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnit4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_repository_basis_revision(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_shared_no_tree(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormat7) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnit1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnit3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnit4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_clone_specific_format(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_clone_stacking_policy_upgrades(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_stacking_policy_upgrades(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_clone_to_default_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_to_hpss(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_clone_to_hpss(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_clone_to_hpss(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_commit_unicode_message(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_create_repository_shared(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_empty_standalone_repo(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_find_branches_using_standalone(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_attributes(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_description(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_initialize_find_open(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_deprecated(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_is_supported(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormat7) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnit1) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnit3) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnit4) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_matchingcontroldir(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_network_name(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_format_supports_external_lookups(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_get_graph(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_get_known_graph_ancestry(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_get_revision_delta(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_get_revisions(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_graph_ghost_handling(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_implements_revision_graph_can_have_wrong_parents(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_iter_files_bytes(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_iter_revisions(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test__make_parents_provider(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_parent_map_type(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_pointless_commit(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_revision_tree(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_root_entry_has_revision(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_false(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormat2a) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_repository.TestRepository.test_set_get_make_working_trees_true(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_repo_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_repo_format(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_repo_format(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_shared_repo_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_shared_repo_format(RepositoryFormat5) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_branch_from_hpss_preserves_shared_repo_format(RepositoryFormat6) breezy.tests.per_repository.test_repository.TestRepository.test_sprout_from_hpss_preserves_format(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_supports_rich_root(RepositoryFormat4) breezy.tests.per_repository.test_repository.TestRepository.test_upgrade_preserves_signatures(RepositoryFormat4) breezy.tests.per_repository.test_revision.TestRevisionAttributes.test_revision_accessors(RepositoryFormat4) breezy.tests.per_repository.test_revision.TestRevisionAttributes.test_zero_timezone(RepositoryFormat4) breezy.tests.per_repository.test_revision.TestRevProps.test_invalid_revprops(RepositoryFormat4) breezy.tests.per_repository.test_revision.TestRevProps.test_simple_revprops(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_clone_preserves_signatures(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_sign_existing_revision(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_store_signature(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_verify_revision_signature_not_signed(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_verify_revision_signature(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestSignatures.test_verify_revision_signatures(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RemoteRepositoryFormat-default) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RemoteRepositoryFormat-v2) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat2a) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat4) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat5) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat6) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormat7) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnit1) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnit3) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnit4) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_signatures.TestUnsupportedSignatures.test_sign_revision(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormat2a) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormat4) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats_empty_repo(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_statistics.TestGatherStats.test_gather_stats(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_does_not_raise_when_suppressed(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_abort_write_group_gets_None(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_commit_write_group_does_not_error(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_is_in_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_read_locked_needs_write_lock(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_twice_errors(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack1) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack3) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack5) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_unlocked_needs_write_lock(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_start_write_group_write_locked_gets_None(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormat2a) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormat4) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository.test_write_group.TestWriteGroup.test_unlock_in_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormat2a) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormat4) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_basis_missing_errors(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormat2a) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormat4) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_not_in_write_group_errors(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_add_inventory_by_delta.TestAddInventoryByDelta.test_same_validator(RepositoryFormat4) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,ClaimedFileParentDidNotModifyFileScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,FileParentHasInaccessibleInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,FileParentIsNotInRevisionAncestryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,FileParentsNotReferencedByAnyInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,IncorrectlyOrderedParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,TooManyParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,UndamagedRepositoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_check_behaviour(RepositoryFormat4,UnreferencedFileParentsFromNoOpMergeScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,ClaimedFileParentDidNotModifyFileScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,FileParentHasInaccessibleInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,FileParentIsNotInRevisionAncestryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,FileParentsNotReferencedByAnyInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,IncorrectlyOrderedParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,TooManyParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,UndamagedRepositoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_find_text_key_references(RepositoryFormat4,UnreferencedFileParentsFromNoOpMergeScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,ClaimedFileParentDidNotModifyFileScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,FileParentHasInaccessibleInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,FileParentIsNotInRevisionAncestryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,FileParentsNotReferencedByAnyInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,IncorrectlyOrderedParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,TooManyParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,UndamagedRepositoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test__generate_text_key_index(RepositoryFormat4,UnreferencedFileParentsFromNoOpMergeScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,ClaimedFileParentDidNotModifyFileScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,FileParentHasInaccessibleInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,FileParentIsNotInRevisionAncestryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,FileParentsNotReferencedByAnyInventoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,IncorrectlyOrderedParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,TooManyParentsScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,UndamagedRepositoryScenario) breezy.tests.per_repository_vf.test_check_reconcile.TestFileParentReconciliation.test_reconcile_behaviour(RepositoryFormat4,UnreferencedFileParentsFromNoOpMergeScenario) breezy.tests.per_repository_vf.test_check.TestCallbacks.test_callback_tree_and_branch(RepositoryFormat4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormat2a) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormat4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents_on_clean_repo(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RemoteRepositoryFormat-default) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RemoteRepositoryFormat-v2) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat2a) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormat7) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__check_for_inconsistent_revision_parents(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RemoteRepositoryFormat-default) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RemoteRepositoryFormat-v2) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat2a) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormat7) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test_check_reports_bad_ancestor(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RemoteRepositoryFormat-default) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RemoteRepositoryFormat-v2) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat2a) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormat7) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_check.TestFindInconsistentRevisionParents.test__find_inconsistent_revision_parents(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_check.TestNoSpuriousInconsistentAncestors.test_two_files_different_versions_no_inconsistencies_bug_165071(RepositoryFormat4) breezy.tests.per_repository_vf.test_fetch.TestSource.test_no_absent_records_in_stream_with_ghosts(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.FileIdInvolvedWGhosts.test_file_ids_include_ghosts(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.FileIdInvolvedWGhosts.test_file_ids_uses_fallbacks(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.TestFileIdInvolvedNonAscii.test_utf8_file_ids_and_revision_ids(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.TestFileIdInvolvedSuperset.test_fileid_involved_full_compare2(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.TestFileIdInvolved.test_fileids_altered_between_two_revs(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.TestFileIdInvolved.test_fileids_altered_by_revision_ids(RepositoryFormat4) breezy.tests.per_repository_vf.test_fileid_involved.TestFileIdInvolved.test_fileids_involved_full_compare(RepositoryFormat4) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormat2a) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormat4) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_find_text_key_references.TestFindTextKeyReferences.test_empty(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test__generate_text_key_index.TestGenerateTextKeyIndex.test_empty(RepositoryFormat4) breezy.tests.per_repository_vf.test_merge_directive.TestMergeDirective.test_create_and_install_directive(RepositoryFormat4) breezy.tests.per_repository_vf.test_merge_directive.TestMergeDirective.test_create_merge_directive(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RemoteRepositoryFormat-default) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RemoteRepositoryFormat-v2) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat2a) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat5) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat6) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormat7) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_aborts_if_bad_parents_in_index(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormat2a) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_reconcile.TestBadRevisionParents.test_does_not_abort_on_clean_repo(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_reconcile.TestReconcileWithIncorrectRevisionCache.test_reconcile_wrong_order(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestReconcileWithIncorrectRevisionCache.test_reconcile_wrong_order_secondary_inventory(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_convenience_reconcile_inventory_without_revision_reconcile(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reconcile_empty(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reconcile_empty_thorough(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_repo_has_reconcile_does_inventory_gc_attribute(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reweave_inventory_fixes_ancestryfor_a_present_ghost(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reweave_inventory_preserves_a_revision_with_ghosts(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reweave_inventory_without_revision_and_ghost(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reweave_inventory_without_revision_reconciler(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_reweave_inventory_without_revision(RepositoryFormat4) breezy.tests.per_repository_vf.test_reconcile.TestsNeedingReweave.test_text_from_ghost_revision(RepositoryFormat4) breezy.tests.per_repository_vf.test_refresh_data.TestRefreshData.test_refresh_data_after_fetch_new_data_visible_in_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_refresh_data.TestRefreshData.test_refresh_data_after_fetch_new_data_visible(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithComplexRepository.test_all_revision_ids(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithComplexRepository.test_get_deltas_for_revisions(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithComplexRepository.test_reserved_id(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithComplexRepository.test_revision_trees(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithCorruptRepository.test_corrupt_revision_access_asserts_if_reported_wrong(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestCaseWithCorruptRepository.test_corrupt_revision_get_revision_reconcile(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_add_revision_inventory_sha1(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_order(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute__fetch_uses_deltas(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_basics(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_inventories_store(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store_basics(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_revision_store(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_signature_store(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store_basics(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_attribute_text_store(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_exposed_versioned_files_are_marked_dirty(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test_get_serializer_format(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormat2a) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_repository.TestRepository.test__get_sink(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_repository.TestRepository.test_install_revisions(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_item_keys_introduced_by(RepositoryFormat4) breezy.tests.per_repository_vf.test_repository.TestRepository.test_iter_inventories_is_ordered(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormat2a) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_empty_get_missing_parent_inventories(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_get_missing_parent_inventories_check(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_get_missing_parent_inventories(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_get_missing_parent_inventories(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_get_missing_parent_inventories(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_get_missing_parent_inventories(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_ghost_revision(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_ghost_revision(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_ghost_revision(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_ghost_revision(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_passes_resume_info(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_passes_resume_info(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_passes_resume_info(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_passes_resume_info(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormat2a) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack1) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack3) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack5) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack5RichRoot) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_lock(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormat2a) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking_fails_without_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_write_group.TestGetMissingParentInventories.test_insert_stream_without_locking(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_add_missing_parent_after_resume(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_cannot_resume_aborted_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_commit_resumed_write_group_adding_missing_parents(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_commit_resumed_write_group_no_new_data(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_commit_resumed_write_group_plus_new_data(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_commit_resumed_write_group_with_missing_parents(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_multiple_resume_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_no_op_suspend_resume(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_read_after_resume_abort_fails(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_read_after_second_suspend_fails(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_read_after_suspend_fails(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormat2a) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_empty_initial_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_resume_write_group_then_abort(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormat2a) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormat2aSubtree) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormat4) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormatKnitPack6) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormatKnitPack6RichRoot) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_empty_initial_write_group(RepositoryFormatPackDevelopment2Subtree) breezy.tests.per_repository_vf.test_write_group.TestResumeableWriteGroup.test_suspend_write_group(RepositoryFormat4) breezy.tests.per_transport.TransportTests.test_abspath_at_root(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_abspath_at_root(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_abspath(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_abspath(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_abspath(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_abspath(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_abspath(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_abspath(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_abspath(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_abspath(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_abspath(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_abspath(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_abspath(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_abspath(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_abspath_url_unquote_unreserved(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_append_bytes(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_append_bytes_mode(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_append_bytes_mode(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_append_bytes(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_append_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_append_file(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_append_file(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_append_file_mode(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_append_file_mode(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_append_file_mode(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_append_file_mode(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_append_file(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_append_multi(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_append_multi(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_append_multi(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_append_multi(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_base_url(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_base_url(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_base_url(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_base_url(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_base_url(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_base_url(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_base_url(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_base_url(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_base_url(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_base_url(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_base_url(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_base_url(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_base_url(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_base_url(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_clone_from_root(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_clone(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_clone_preserve_info(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_clone_to_root(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_clone_url_unquote_unreserved(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_connection_error(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_connection_error(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_connection_error(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_connection_error(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_connection_error(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_connection_error(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_connection_error(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_connection_error(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_connection_error(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_connection_error(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_connection_error(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_connection_error(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_connection_sharing(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_connect_twice_is_same_content(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_connect_twice_is_same_content(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_connect_twice_is_same_content(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_connect_twice_is_same_content(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_copy(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_copy(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_copy(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_copy(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_copy_to(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_copy_to(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_copy_tree(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_copy_tree(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_copy_tree(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_copy_tree(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_copy_tree(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_copy_tree(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_copy_tree(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_copy_tree(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_copy_tree(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_copy_tree(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_copy_tree(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_copy_tree_to_transport(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_copy_tree(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_copy_tree(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_copy_tree(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_create_prefix(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_create_prefix(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_create_prefix(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_create_prefix(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_create_prefix(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_create_prefix(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_create_prefix(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_create_prefix(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_create_prefix(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_create_prefix(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_create_prefix(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_create_prefix(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_delete(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_delete(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_delete(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_delete(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_delete_tree(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_delete_tree(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_delete_tree(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_delete_tree(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_delete_tree(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_delete_tree(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_delete_tree(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_delete_tree(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_delete_tree(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_delete_tree(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_delete_tree(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_delete_tree(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_ensure_base_exists(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing_parent(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_ensure_base_missing(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_external_url(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_external_url(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_external_url(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_external_url(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_external_url(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_external_url(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_external_url(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_external_url(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_external_url(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_external_url(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_external_url(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_external_url(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_external_url(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_external_url(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_get_bytes(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_get_bytes_unknown_file(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_get_bytes_with_open_write_stream_sees_all_content(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_bytes_with_open_write_stream_sees_all_content(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_get_bytes_with_open_write_stream_sees_all_content(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_get_bytes_with_open_write_stream_sees_all_content(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_get_directory_read_gives_ReadError(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_get(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_get_smart_medium(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_get_smart_medium(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_get_smart_medium(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_get_unknown_file(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_get_with_open_write_stream_sees_all_content(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_get_with_open_write_stream_sees_all_content(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_get_with_open_write_stream_sees_all_content(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_get_with_open_write_stream_sees_all_content(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_hardlink(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_hardlink(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_hardlink(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_hardlink(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_hardlink(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_hardlink(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_hardlink(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_hardlink(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_hardlink(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_hardlink(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_hardlink(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_hardlink(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_hardlink(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_hardlink(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_has(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_has(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_has(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_has(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_has(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_has(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_has(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_has(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_has(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_has_root_works(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_has_root_works(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_has_root_works(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_has_root_works(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_has_root_works(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_has_root_works(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_has_root_works(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_has_root_works(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_has_root_works(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_has_root_works(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_has_root_works(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_has_root_works(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_has(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_has(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_has(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_multi(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_hook_post_connection_one(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_iter_files_recursive(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_list_dir(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_list_dir(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_list_dir(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_list_dir(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_list_dir(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_list_dir(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_list_dir(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_list_dir(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_list_dir(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_list_dir(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_list_dir(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_list_dir_result_is_url_escaped(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_list_dir(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_list_dir(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_list_dir(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_local_abspath(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_local_abspath(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_local_abspath(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_local_abspath(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_local_abspath(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_local_abspath(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_local_abspath(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_local_abspath(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_local_abspath(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_local_abspath(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_local_abspath(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_local_abspath(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_lock_read(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_lock_write(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_lock_write(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_lock_write(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_lock_write(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_mkdir(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_mkdir(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_mkdir(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_mkdir_permissions(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_mkdir(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_move(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_move(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_move(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_move(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_no_segment_parameters(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_can_set_mode(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_creates_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_creates_file(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_creates_file(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_opening_a_file_stream_creates_file(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_bytes(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_put_bytes_non_atomic_permissions(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_put_bytes_permissions(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_bytes(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_put_bytes_unicode(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_put_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_file(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic_permissions(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_put_file_non_atomic(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_permissions(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_put_file_permissions(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_put_file_permissions(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_put_file(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_readv(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_readv_out_of_order(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_readv_short_read(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_readv_with_adjust_for_latency(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_readv_with_adjust_for_latency_with_big_file(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_recommended_page_size(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_recommended_page_size(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_recommended_page_size(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_relpath_at_root(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_relpath(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_relpath(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_relpath(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_relpath(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_relpath(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_relpath(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_relpath(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_relpath(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_relpath(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_relpath(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_relpath(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_relpath(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_relpath(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_relpath(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_rename_across_subdirs(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rename_across_subdirs(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_across_subdirs(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_across_subdirs(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_rename_dir_nonempty(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_rename_dir_succeeds(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_reuse_connection_for_various_paths(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test__reuse_for(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test__reuse_for(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test__reuse_for(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test__reuse_for(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test__reuse_for(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test__reuse_for(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test__reuse_for(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test__reuse_for(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test__reuse_for(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test__reuse_for(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test__reuse_for(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test__reuse_for(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test__reuse_for(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test__reuse_for(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_rmdir(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_rmdir_empty_but_similar_prefix(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rmdir_empty_but_similar_prefix(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir_empty_but_similar_prefix(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir_empty_but_similar_prefix(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rmdir(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_rmdir(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_rmdir(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rmdir(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_rmdir(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_rmdir(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_rmdir_not_empty(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_rmdir(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_rmdir(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_rmdir(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_rmdir(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_rmdir(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_segment_parameters(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_segment_parameters(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_segment_parameters(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_set_segment_parameters(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_stat(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_stat(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_stat(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_stat(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_stat(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_stat(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_stat(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_stat(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_stat(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_stat(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_stat(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_stat_symlink(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_stat_symlink(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_stat_symlink(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_stat(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_stat(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_stat(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_symlink(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_symlink(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_symlink(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_symlink(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_symlink(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_symlink(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_symlink(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_symlink(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_symlink(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_symlink(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_symlink(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_symlink(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_symlink(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_symlink(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_transport.TransportTests.test_unicode_paths(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(ChrootTransport,TestingChrootServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(FakeNFSTransportDecorator,FakeNFSServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(FakeVFATTransportDecorator,FakeVFATServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(FtpTransport,UnavailableFTPTestServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(HTTPS_urllib_transport,HTTPSServer_urllib) breezy.tests.per_transport.TransportTests.test_win32_abspath(HttpTransport_urllib,HttpServer_urllib) breezy.tests.per_transport.TransportTests.test_win32_abspath(LocalTransport,LocalURLServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(MemoryTransport,MemoryServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(NoSmartTransportDecorator,NoSmartTransportServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(PathFilteringTransport,TestingPathFilteringServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(ReadonlyTransportDecorator,ReadonlyServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(TransportLogDecorator,LogDecoratorServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(TransportTraceDecorator,TraceServer) breezy.tests.per_transport.TransportTests.test_win32_abspath(UnlistableTransportDecorator,UnlistableServer) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_get_file_mtime(WorkingTreeFormat4) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_get_file_mtime(WorkingTreeFormat5) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_get_file_mtime(WorkingTreeFormat6) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_nonexistant(PreviewTree) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_nonexistant(PreviewTreePost) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_nonexistant(WorkingTreeFormat4) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_nonexistant(WorkingTreeFormat5) breezy.tests.per_tree.test_get_file_mtime.TestGetFileMTime.test_nonexistant(WorkingTreeFormat6) breezy.tests.per_tree.test_get_root_id.TestGetRootID.test_get_root_id_default(PreviewTree) breezy.tests.per_tree.test_get_root_id.TestGetRootID.test_get_root_id_default(PreviewTreePost) breezy.tests.per_tree.test_get_root_id.TestGetRootID.test_get_root_id_default(WorkingTreeFormat4) breezy.tests.per_tree.test_get_root_id.TestGetRootID.test_get_root_id_default(WorkingTreeFormat5) breezy.tests.per_tree.test_get_root_id.TestGetRootID.test_get_root_id_default(WorkingTreeFormat6) breezy.tests.per_tree.test_get_symlink_target.TestGetSymlinkTarget.test_get_symlink_target(WorkingTreeFormat4) breezy.tests.per_tree.test_get_symlink_target.TestGetSymlinkTarget.test_get_symlink_target(WorkingTreeFormat5) breezy.tests.per_tree.test_get_symlink_target.TestGetSymlinkTarget.test_get_symlink_target(WorkingTreeFormat6) breezy.tests.per_tree.test_inv.TestInventory.test_canonical_tree_name_mismatch(PreviewTreePost) breezy.tests.per_tree.test_inv.TestInventory.test_paths2ids_recursive(WorkingTreeFormat4) breezy.tests.per_tree.test_inv.TestInventory.test_paths2ids_recursive(WorkingTreeFormat5) breezy.tests.per_tree.test_inv.TestInventory.test_paths2ids_recursive(WorkingTreeFormat6) breezy.tests.per_tree.test_iter_search_rules.TestIterSearchRules.test_iter_search_rules_no_tree(PreviewTree) breezy.tests.per_tree.test_iter_search_rules.TestIterSearchRules.test_iter_search_rules_no_tree(PreviewTreePost) breezy.tests.per_tree.test_iter_search_rules.TestIterSearchRules.test_iter_search_rules_no_tree(WorkingTreeFormat4) breezy.tests.per_tree.test_iter_search_rules.TestIterSearchRules.test_iter_search_rules_no_tree(WorkingTreeFormat5) breezy.tests.per_tree.test_iter_search_rules.TestIterSearchRules.test_iter_search_rules_no_tree(WorkingTreeFormat6) breezy.tests.per_tree.test_locking.TestLocking.test_lock_read(PreviewTree) breezy.tests.per_tree.test_locking.TestLocking.test_lock_read(PreviewTreePost) breezy.tests.per_tree.test_locking.TestLocking.test_lock_read(WorkingTreeFormat4) breezy.tests.per_tree.test_locking.TestLocking.test_lock_read(WorkingTreeFormat5) breezy.tests.per_tree.test_locking.TestLocking.test_lock_read(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_dir_content_summary(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_dir_content_summary(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_dir_content_summary(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_non_exec(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_non_exec(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_non_exec(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_not_versioned(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_not_versioned(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_file_content_summary_not_versioned(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_missing_content_summary(PreviewTreePost) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_missing_content_summary(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_missing_content_summary(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_missing_content_summary(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_symlink_content_summary(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_symlink_content_summary(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_symlink_content_summary(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_tree_content_summary(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_tree_content_summary(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_tree_content_summary(WorkingTreeFormat6) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_unicode_symlink_target_summary(WorkingTreeFormat4) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_unicode_symlink_target_summary(WorkingTreeFormat5) breezy.tests.per_tree.test_path_content_summary.TestPathContentSummary.test_unicode_symlink_target_summary(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestConflicts.test_conflicts(PreviewTree) breezy.tests.per_tree.test_tree.TestConflicts.test_conflicts(PreviewTreePost) breezy.tests.per_tree.test_tree.TestConflicts.test_conflicts(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestConflicts.test_conflicts(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestConflicts.test_conflicts(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestFileIds.test_all_file_ids(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestFileIds.test_all_file_ids(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestFileIds.test_all_file_ids(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestFileIds.test_id2path(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestFileIds.test_id2path(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestFileIds.test_id2path(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestHasId.test_has_id(PreviewTree) breezy.tests.per_tree.test_tree.TestHasId.test_has_id(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestHasId.test_has_id(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestHasId.test_has_id(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestHasVersionedDirectories.test_has_versioned_directories(PreviewTree) breezy.tests.per_tree.test_tree.TestHasVersionedDirectories.test_has_versioned_directories(PreviewTreePost) breezy.tests.per_tree.test_tree.TestHasVersionedDirectories.test_has_versioned_directories(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestHasVersionedDirectories.test_has_versioned_directories(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestHasVersionedDirectories.test_has_versioned_directories(WorkingTreeFormat6) breezy.tests.per_tree.test_tree.TestIterChildEntries.test_does_not_exist(PreviewTree) breezy.tests.per_tree.test_tree.TestIterChildEntries.test_does_not_exist(PreviewTreePost) breezy.tests.per_tree.test_tree.TestIterChildEntries.test_does_not_exist(WorkingTreeFormat4) breezy.tests.per_tree.test_tree.TestIterChildEntries.test_does_not_exist(WorkingTreeFormat5) breezy.tests.per_tree.test_tree.TestIterChildEntries.test_does_not_exist(WorkingTreeFormat6) breezy.tests.per_tree.test_walkdirs.TestWalkdirs.test_walkdir_versioned_kind(PreviewTreePost) breezy.tests.per_uifactory.TestCannedInputUIFactory.test_be_quiet breezy.tests.per_uifactory.TestCannedInputUIFactory.test_confirm_action breezy.tests.per_uifactory.TestCannedInputUIFactory.test_make_output_stream breezy.tests.per_uifactory.TestCannedInputUIFactory.test_note breezy.tests.per_uifactory.TestCannedInputUIFactory.test_no_transport_activity breezy.tests.per_uifactory.TestCannedInputUIFactory.test_show_error breezy.tests.per_uifactory.TestCannedInputUIFactory.test_show_message breezy.tests.per_uifactory.TestCannedInputUIFactory.test_show_warning breezy.tests.per_uifactory.TestCannedInputUIFactory.test_transport_activity breezy.tests.per_uifactory.TestSilentUIFactory.test_be_quiet breezy.tests.per_uifactory.TestSilentUIFactory.test_confirm_action breezy.tests.per_uifactory.TestSilentUIFactory.test_make_output_stream breezy.tests.per_uifactory.TestSilentUIFactory.test_note breezy.tests.per_uifactory.TestSilentUIFactory.test_no_transport_activity breezy.tests.per_uifactory.TestSilentUIFactory.test_show_error breezy.tests.per_uifactory.TestSilentUIFactory.test_show_message breezy.tests.per_uifactory.TestSilentUIFactory.test_show_warning breezy.tests.per_uifactory.TestSilentUIFactory.test_transport_activity breezy.tests.per_uifactory.TestTextUIFactory.test_be_quiet breezy.tests.per_uifactory.TestTextUIFactory.test_confirm_action breezy.tests.per_uifactory.TestTextUIFactory.test_make_output_stream breezy.tests.per_uifactory.TestTextUIFactory.test_note breezy.tests.per_uifactory.TestTextUIFactory.test_no_transport_activity breezy.tests.per_uifactory.TestTextUIFactory.test_show_error breezy.tests.per_uifactory.TestTextUIFactory.test_show_message breezy.tests.per_uifactory.TestTextUIFactory.test_show_warning breezy.tests.per_uifactory.TestTextUIFactory.test_transport_activity breezy.tests.per_uifactory.TestTTYTextUIFactory.test_be_quiet breezy.tests.per_uifactory.TestTTYTextUIFactory.test_confirm_action breezy.tests.per_uifactory.TestTTYTextUIFactory.test_make_output_stream breezy.tests.per_uifactory.TestTTYTextUIFactory.test_note breezy.tests.per_uifactory.TestTTYTextUIFactory.test_no_transport_activity breezy.tests.per_uifactory.TestTTYTextUIFactory.test_show_error breezy.tests.per_uifactory.TestTTYTextUIFactory.test_show_message breezy.tests.per_uifactory.TestTTYTextUIFactory.test_show_warning breezy.tests.per_uifactory.TestTTYTextUIFactory.test_transport_activity breezy.tests.per_versionedfile.TestContentFactoryAdaption.test_select_adaptor breezy.tests.per_versionedfile.TestKeyMapper.test_identity_mapper breezy.tests.per_versionedfile.TestKeyMapper.test_prefix_mapper breezy.tests.per_versionedfile.TestVersionedFiles.test_add_fallback_implies_without_fallbacks(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_add_fallback_implies_without_fallbacks(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_no_parameters(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_check_progressbar_parameter(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_clear_cache(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_construct(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_known_graph_ancestry(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_known_graph_ancestry(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_get_record_stream_empty(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_delta_missing_basis_can_be_added_later(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(annotated-knit-escape) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(named-knit) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_empty(weave-prefix) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_long_parent_chain_out_of_order(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_long_parent_chain_out_of_order(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(groupcompress) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(named-graph-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(named-graph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_insert_record_stream_missing_keys(plain-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_known_graph_with_fallbacks(groupcompress-nograph) breezy.tests.per_versionedfile.TestVersionedFiles.test_known_graph_with_fallbacks(named-nograph-nodelta-knit-pack) breezy.tests.per_versionedfile.TestVersionedFiles.test_known_graph_with_fallbacks(weave-named) breezy.tests.per_versionedfile.TestVersionedFiles.test_known_graph_with_fallbacks(weave-prefix) breezy.tests.per_versionedfile.TestWeaveMerge.testDeleteAndModify breezy.tests.per_versionedfile.TestWeave.test_no_implicit_create breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_add_lines breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_add_mpdiffs breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_check_noerrors breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_get_parent_map breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_get_record_stream_absent breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_get_sha1s_nonexistent breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_insert_record_stream breezy.tests.per_versionedfile.VirtualVersionedFilesTests.test_iter_lines_added_or_present_in_keys breezy.tests.per_workingtree.test_add.TestAdd.test_add_invalid(WorkingTreeFormat4) breezy.tests.per_workingtree.test_add.TestAdd.test_add_invalid(WorkingTreeFormat5) breezy.tests.per_workingtree.test_add.TestAdd.test_add_invalid(WorkingTreeFormat6) breezy.tests.per_workingtree.test_add.TestAdd.test_add_previously_added(WorkingTreeFormat4) breezy.tests.per_workingtree.test_add.TestAdd.test_add_previously_added(WorkingTreeFormat5) breezy.tests.per_workingtree.test_add.TestAdd.test_add_previously_added(WorkingTreeFormat6) breezy.tests.per_workingtree.test_add.TestAdd.test_add_root(WorkingTreeFormat4) breezy.tests.per_workingtree.test_add.TestAdd.test_add_root(WorkingTreeFormat5) breezy.tests.per_workingtree.test_add.TestAdd.test_add_root(WorkingTreeFormat6) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_create(WorkingTreeFormat4) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_create(WorkingTreeFormat5) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_create(WorkingTreeFormat6) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_create(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_wrong_format(WorkingTreeFormat4) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_wrong_format(WorkingTreeFormat5) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_wrong_format(WorkingTreeFormat6) breezy.tests.per_workingtree.test_basis_inventory.TestBasisInventory.test_wrong_format(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_basis_tree.TestBasisTree.test_emtpy_tree(WorkingTreeFormat4) breezy.tests.per_workingtree.test_basis_tree.TestBasisTree.test_emtpy_tree(WorkingTreeFormat5) breezy.tests.per_workingtree.test_basis_tree.TestBasisTree.test_emtpy_tree(WorkingTreeFormat6) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_locked(WorkingTreeFormat4) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_locked(WorkingTreeFormat5) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_locked(WorkingTreeFormat6) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked_repo_locked(WorkingTreeFormat4) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked_repo_locked(WorkingTreeFormat5) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked_repo_locked(WorkingTreeFormat6) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked(WorkingTreeFormat4) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked(WorkingTreeFormat5) breezy.tests.per_workingtree.test_break_lock.TestBreakLock.test_unlocked(WorkingTreeFormat6) breezy.tests.per_workingtree.test_check_state.TestCheckState.test_check_state(WorkingTreeFormat4) breezy.tests.per_workingtree.test_check_state.TestCheckState.test_check_state(WorkingTreeFormat5) breezy.tests.per_workingtree.test_check_state.TestCheckState.test_check_state(WorkingTreeFormat6) breezy.tests.per_workingtree.test_commit.TestCommit.test_commit_local_unbound(WorkingTreeFormat4) breezy.tests.per_workingtree.test_commit.TestCommit.test_commit_local_unbound(WorkingTreeFormat5) breezy.tests.per_workingtree.test_commit.TestCommit.test_commit_local_unbound(WorkingTreeFormat6) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_crlf_with_crlf_in_repo_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_exact_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_lf_with_crlf_in_repo_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_native_with_crlf_in_repo_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_binary(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_binary(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_binary(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_crlf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_crlf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_crlf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_lf(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_lf(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_clean_lf(WorkingTreeFormat4) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_dirty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_dirty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_eol_conversion.TestEolConversion.test_eol_no_rules_dirty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_fresh_tree(WorkingTreeFormat4) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_fresh_tree(WorkingTreeFormat5) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_fresh_tree(WorkingTreeFormat6) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_no_lock_fails(WorkingTreeFormat4) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_no_lock_fails(WorkingTreeFormat5) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_no_lock_fails(WorkingTreeFormat6) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_read_lock_fails(WorkingTreeFormat4) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_read_lock_fails(WorkingTreeFormat5) breezy.tests.per_workingtree.test_flush.TestFlush.test_flush_with_read_lock_fails(WorkingTreeFormat6) breezy.tests.per_workingtree.test_inv.TestTreeReference.test_tree_reference_matches_inv(WorkingTreeFormat4) breezy.tests.per_workingtree.test_inv.TestTreeReference.test_tree_reference_matches_inv(WorkingTreeFormat5) breezy.tests.per_workingtree.test_inv.TestTreeReference.test_tree_reference_matches_inv(WorkingTreeFormat6) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_cwd(WorkingTreeFormat4) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_cwd(WorkingTreeFormat5) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_cwd(WorkingTreeFormat6) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_subdir(WorkingTreeFormat4) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_subdir(WorkingTreeFormat5) breezy.tests.per_workingtree.test_is_control_filename.TestIsControlFilename.test_dotbzr_is_control_in_subdir(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_branch_does_not_lock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_branch_does_not_lock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_branch_does_not_lock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_tree_write_branch_does_not_lock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_tree_write_branch_does_not_lock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_tree_write_branch_does_not_lock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_write_branch_does_not_lock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_write_branch_does_not_lock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_failing_to_lock_write_branch_does_not_lock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_read_returns_unlocker(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_read_returns_unlocker(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_read_returns_unlocker(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_tree_write_returns_unlocker(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_tree_write_returns_unlocker(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_tree_write_returns_unlocker(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_write_returns_unlocker(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_write_returns_unlocker(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_lock_write_returns_unlocker(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_read_unlock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_read_unlock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_read_unlock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_branch_read_locked(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_branch_read_locked(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_branch_read_locked(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_unlock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_unlock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_tree_write_unlock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_write_unlock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_write_unlock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_trivial_lock_write_unlock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_unlock_branch_failures(WorkingTreeFormat4) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_unlock_branch_failures(WorkingTreeFormat5) breezy.tests.per_workingtree.test_locking.TestWorkingTreeLocking.test_unlock_branch_failures(WorkingTreeFormat6) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_id_ghost_rejects(WorkingTreeFormat4) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_id_ghost_rejects(WorkingTreeFormat5) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_id_ghost_rejects(WorkingTreeFormat6) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_tree_ghost_rejects(WorkingTreeFormat4) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_tree_ghost_rejects(WorkingTreeFormat5) breezy.tests.per_workingtree.test_parents.TestAddParent.test_add_first_parent_tree_ghost_rejects(WorkingTreeFormat6) breezy.tests.per_workingtree.test_parents.TestGetParents.test_get_parents(WorkingTreeFormat4) breezy.tests.per_workingtree.test_parents.TestGetParents.test_get_parents(WorkingTreeFormat5) breezy.tests.per_workingtree.test_parents.TestGetParents.test_get_parents(WorkingTreeFormat6) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_ids_rejects(WorkingTreeFormat4) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_ids_rejects(WorkingTreeFormat5) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_ids_rejects(WorkingTreeFormat6) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_rejects(WorkingTreeFormat4) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_rejects(WorkingTreeFormat5) breezy.tests.per_workingtree.test_parents.TestSetParents.test_set_one_ghost_parent_rejects(WorkingTreeFormat6) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_find_single_root(WorkingTreeFormat4) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_find_single_root(WorkingTreeFormat5) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_find_single_root(WorkingTreeFormat6) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_paths_none_result_none(WorkingTreeFormat4) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_paths_none_result_none(WorkingTreeFormat5) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_paths_none_result_none(WorkingTreeFormat6) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_unversioned_one_tree(WorkingTreeFormat4) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_unversioned_one_tree(WorkingTreeFormat5) breezy.tests.per_workingtree.test_paths2ids.TestPaths2Ids.test_unversioned_one_tree(WorkingTreeFormat6) breezy.tests.per_workingtree.test_pull.TestPullWithOrphans.test_pull_orphans(WorkingTreeFormat2) breezy.tests.per_workingtree.test_read_working_inventory.TestReadWorkingInventory.test_trivial_read(WorkingTreeFormat4) breezy.tests.per_workingtree.test_read_working_inventory.TestReadWorkingInventory.test_trivial_read(WorkingTreeFormat5) breezy.tests.per_workingtree.test_read_working_inventory.TestReadWorkingInventory.test_trivial_read(WorkingTreeFormat6) breezy.tests.per_workingtree.test_revision_tree.TestRevisionTree.test_get_zeroth_basis_tree_via_revision_tree(WorkingTreeFormat4) breezy.tests.per_workingtree.test_revision_tree.TestRevisionTree.test_get_zeroth_basis_tree_via_revision_tree(WorkingTreeFormat5) breezy.tests.per_workingtree.test_revision_tree.TestRevisionTree.test_get_zeroth_basis_tree_via_revision_tree(WorkingTreeFormat6) breezy.tests.per_workingtree.test_set_root_id.TestSetRootId.test_set_and_read_unicode(WorkingTreeFormat4) breezy.tests.per_workingtree.test_set_root_id.TestSetRootId.test_set_and_read_unicode(WorkingTreeFormat5) breezy.tests.per_workingtree.test_set_root_id.TestSetRootId.test_set_and_read_unicode(WorkingTreeFormat6) breezy.tests.per_workingtree.test_shelf_manager.TestShelfManager.test_shelf_manager(WorkingTreeFormat4) breezy.tests.per_workingtree.test_shelf_manager.TestShelfManager.test_shelf_manager(WorkingTreeFormat5) breezy.tests.per_workingtree.test_shelf_manager.TestShelfManager.test_shelf_manager(WorkingTreeFormat6) breezy.tests.per_workingtree.test_smart_add.TestSmartAddTree.test_add_non_existant(WorkingTreeFormat4) breezy.tests.per_workingtree.test_smart_add.TestSmartAddTree.test_add_non_existant(WorkingTreeFormat5) breezy.tests.per_workingtree.test_smart_add.TestSmartAddTree.test_add_non_existant(WorkingTreeFormat6) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_missing_file(WorkingTreeFormat4) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_missing_file(WorkingTreeFormat5) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_missing_file(WorkingTreeFormat6) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_requires_write_lock(WorkingTreeFormat4) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_requires_write_lock(WorkingTreeFormat5) breezy.tests.per_workingtree.test_unversion.TestUnversion.test_unversion_requires_write_lock(WorkingTreeFormat6) breezy.tests.per_workingtree.test_views.TestTreeViews.test_check_path_in_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_check_path_in_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_check_path_in_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_check_path_in_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_delete_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_delete_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_delete_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_delete_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_lookup_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_lookup_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_lookup_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_lookup_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_no_such_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_no_such_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_no_such_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_no_such_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_and_get_view_info(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_and_get_view_info(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_and_get_view_info(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_and_get_view_info(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_set_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_unicode_view(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_unicode_view(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_unicode_view(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_unicode_view(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestTreeViews.test_views_initially_empty(WorkingTreeFormat2) breezy.tests.per_workingtree.test_views.TestTreeViews.test_views_initially_empty(WorkingTreeFormat3) breezy.tests.per_workingtree.test_views.TestTreeViews.test_views_initially_empty(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestTreeViews.test_views_initially_empty(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestUnsupportedViews.test_view_methods_raise(WorkingTreeFormat4) breezy.tests.per_workingtree.test_views.TestUnsupportedViews.test_view_methods_raise(WorkingTreeFormat5) breezy.tests.per_workingtree.test_views.TestUnsupportedViews.test_view_methods_raise(WorkingTreeFormat6) breezy.tests.per_workingtree.test_views.TestUnsupportedViews.test_view_methods_raise(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_walkdirs.TestWalkdirs.test_walkdir_from_unknown_dir(WorkingTreeFormat4) breezy.tests.per_workingtree.test_walkdirs.TestWalkdirs.test_walkdir_from_unknown_dir(WorkingTreeFormat5) breezy.tests.per_workingtree.test_walkdirs.TestWalkdirs.test_walkdir_from_unknown_dir(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestControlComponent.test_urls(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestControlComponent.test_urls(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestControlComponent.test_urls(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat2) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat3) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_setting_file_ids(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat2) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat3) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_supports_store_uncommitted(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat2) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat3) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestFormatAttributes.test_versioned_directories(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_in_unversioned(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_in_unversioned(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_in_unversioned(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_missing(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_missing(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_add_missing(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_all_file_ids_with_missing(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_all_file_ids_with_missing(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_all_file_ids_with_missing(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_basic_relpath(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_basic_relpath(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_basic_relpath(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_attribute_is_not_settable(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_attribute_is_not_settable(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_attribute_is_not_settable(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_builder(WorkingTreeFormat3) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_builder(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_builder(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_branch_builder(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat2) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat3) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_clone_tree_revision(WorkingTreeFormat6,remote) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_filter_unversioned_files(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_filter_unversioned_files(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_filter_unversioned_files(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_format_description(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_format_description(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_format_description(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_get_config_stack(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_get_config_stack(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_get_config_stack(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_initialize(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_initialize(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_initialize(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_lock_locks_branch(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_lock_locks_branch(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_lock_locks_branch(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_open_containing(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_open_containing(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_open_containing(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_supports_executable(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_supports_executable(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorkingTree.test_supports_executable(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_invalid(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_invalid(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_invalid(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_not_set(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_not_set(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_not_set(WorkingTreeFormat6) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_set_in_branch(WorkingTreeFormat4) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_set_in_branch(WorkingTreeFormat5) breezy.tests.per_workingtree.test_workingtree.TestWorthSavingLimit.test_set_in_branch(WorkingTreeFormat6) breezy.tests.per_workingtree.TestWtScenarios.test_protect_wt_scenarios breezy.tests.test_annotate.TestReannotate.test_reannotate breezy.tests.test_annotate.TestReannotate.test_reannotate_left_matching_blocks breezy.tests.test_annotate.TestReannotate.test_reannotate_no_parents breezy.tests.test__bencode.TestBencodeDecode.test_decoder_type_error(C) breezy.tests.test__bencode.TestBencodeDecode.test_decoder_type_error(python) breezy.tests.test__bencode.TestBencodeDecode.test_dict(C) breezy.tests.test__bencode.TestBencodeDecode.test_dict_deepnested(C) breezy.tests.test__bencode.TestBencodeDecode.test_dict_deepnested(python) breezy.tests.test__bencode.TestBencodeDecode.test_dict(python) breezy.tests.test__bencode.TestBencodeDecode.test_empty_string(C) breezy.tests.test__bencode.TestBencodeDecode.test_empty_string(python) breezy.tests.test__bencode.TestBencodeDecode.test_int(C) breezy.tests.test__bencode.TestBencodeDecode.test_int(python) breezy.tests.test__bencode.TestBencodeDecode.test_junk(C) breezy.tests.test__bencode.TestBencodeDecode.test_junk(python) breezy.tests.test__bencode.TestBencodeDecode.test_large_string(C) breezy.tests.test__bencode.TestBencodeDecode.test_large_string(python) breezy.tests.test__bencode.TestBencodeDecode.test_list(C) breezy.tests.test__bencode.TestBencodeDecode.test_list_deepnested(C) breezy.tests.test__bencode.TestBencodeDecode.test_list_deepnested(python) breezy.tests.test__bencode.TestBencodeDecode.test_list(python) breezy.tests.test__bencode.TestBencodeDecode.test_long(C) breezy.tests.test__bencode.TestBencodeDecode.test_long(python) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_dict(C) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_dict(python) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_int(C) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_int(python) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_list(C) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_list(python) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_string(C) breezy.tests.test__bencode.TestBencodeDecode.test_malformed_string(python) breezy.tests.test__bencode.TestBencodeDecode.test_string(C) breezy.tests.test__bencode.TestBencodeDecode.test_string(python) breezy.tests.test__bencode.TestBencodeDecode.test_unknown_object(C) breezy.tests.test__bencode.TestBencodeDecode.test_unknown_object(python) breezy.tests.test__bencode.TestBencodeDecode.test_unsupported_type(C) breezy.tests.test__bencode.TestBencodeDecode.test_unsupported_type(python) breezy.tests.test__bencode.TestBencodeEncode.test_bencached(C) breezy.tests.test__bencode.TestBencodeEncode.test_bencached(python) breezy.tests.test__bencode.TestBencodeEncode.test_bool(C) breezy.tests.test__bencode.TestBencodeEncode.test_bool(python) breezy.tests.test__bencode.TestBencodeEncode.test_dict(C) breezy.tests.test__bencode.TestBencodeEncode.test_dict_deep_nested(C) breezy.tests.test__bencode.TestBencodeEncode.test_dict_deep_nested(python) breezy.tests.test__bencode.TestBencodeEncode.test_dict(python) breezy.tests.test__bencode.TestBencodeEncode.test_int(C) breezy.tests.test__bencode.TestBencodeEncode.test_int(python) breezy.tests.test__bencode.TestBencodeEncode.test_invalid_dict(C) breezy.tests.test__bencode.TestBencodeEncode.test_invalid_dict(python) breezy.tests.test__bencode.TestBencodeEncode.test_list_as_tuple(C) breezy.tests.test__bencode.TestBencodeEncode.test_list_as_tuple(python) breezy.tests.test__bencode.TestBencodeEncode.test_list(C) breezy.tests.test__bencode.TestBencodeEncode.test_list_deep_nested(C) breezy.tests.test__bencode.TestBencodeEncode.test_list_deep_nested(python) breezy.tests.test__bencode.TestBencodeEncode.test_list(python) breezy.tests.test__bencode.TestBencodeEncode.test_long(C) breezy.tests.test__bencode.TestBencodeEncode.test_long(python) breezy.tests.test__bencode.TestBencodeEncode.test_string(C) breezy.tests.test__bencode.TestBencodeEncode.test_string(python) breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_change_direction_in_single_key_search breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_found_keys_returned_other_searches_continue breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_lookup_missing_key_after_all_others breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_lookup_missing_key_before_all_others breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_lookup_missing_key_no_content breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_lookup_no_keys_no_calls breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_lookup_when_a_key_is_missing_continues breezy.tests.test_bisect_multi.TestBisectMultiBytes.test_searches_different_keys_in_different_directions breezy.tests.test_branch.TestBranch7.test_layout breezy.tests.test_branch.TestBranchFormatRegistry.test_default breezy.tests.test_branch.TestBranchFormatRegistry.test_get_all breezy.tests.test_branch.TestBranchFormatRegistry.test_register_extra breezy.tests.test_branch.TestBranchFormatRegistry.test_register_extra_lazy breezy.tests.test_branch.TestBranchFormatRegistry.test_register_unregister_format breezy.tests.test_branch.TestBranchOptions.test_invalid_append_revisions_only breezy.tests.test_branch.TestBranchOptions.test_set_delays_write_when_branch_is_locked breezy.tests.test_branch.TestBranchOptions.test_set_from_config_stack_get_from_config breezy.tests.test_branch.TestBranchOptions.test_use_fresh_values breezy.tests.test_branch.TestBranchOptions.test_valid_append_revisions_only breezy.tests.test_branch.TestBzrBranchFormat.test_find_format_not_branch breezy.tests.test_branch.TestBzrBranchFormat.test_find_format_with_features breezy.tests.test_branch.TestBzrBranchFormat.test_from_string breezy.tests.test_branch.TestDefaultFormat.test_default_format breezy.tests.test_branch.TestDefaultFormat.test_default_format_is_same_as_bzrdir_default breezy.tests.test_branch.TestErrors.test_unstackable_branch_format breezy.tests.test_branch.TestHooks.test_constructor breezy.tests.test_branch.TestHooks.test_installed_hooks_are_BranchHooks breezy.tests.test_branch.TestHooks.test_post_branch_init_hook breezy.tests.test_branch.TestHooks.test_post_branch_init_hook_repr breezy.tests.test_btree_index.TestBTreeBuilder.test_2_leaves_1_0 breezy.tests.test_btree_index.TestBTreeBuilder.test_2_leaves_2_2 breezy.tests.test_btree_index.TestBTreeBuilder.test_clear_cache breezy.tests.test_btree_index.TestBTreeBuilder.test_empty_1_0 breezy.tests.test_btree_index.TestBTreeBuilder.test_empty_2_1 breezy.tests.test_btree_index.TestBTreeBuilder.test_last_page_not_rounded_2_layer breezy.tests.test_btree_index.TestBTreeBuilder.test_last_page_rounded_1_layer breezy.tests.test_btree_index.TestBTreeBuilder.test_root_leaf_1_0 breezy.tests.test_btree_index.TestBTreeBuilder.test_root_leaf_2_2 breezy.tests.test_btree_index.TestBTreeBuilder.test_set_optimize breezy.tests.test_btree_index.TestBTreeBuilder.test_spill_index_duplicate_key_caught_on_finish breezy.tests.test_btree_index.TestBTreeBuilder.test_spill_index_stress_1_1 breezy.tests.test_btree_index.TestBTreeBuilder.test_spill_index_stress_1_1_no_combine breezy.tests.test_btree_index.TestBTreeBuilder.test_spill_index_stress_2_2 breezy.tests.test_btree_index.TestBTreeBuilder.test_three_level_tree_details breezy.tests.test_btree_index.TestBTreeIndex.test_2_levels_key_count_2_2 breezy.tests.test_btree_index.TestBTreeIndex.test_clear_cache breezy.tests.test_btree_index.TestBTreeIndex.test_empty_key_count breezy.tests.test_btree_index.TestBTreeIndex.test_empty_key_count_no_size breezy.tests.test_btree_index.TestBTreeIndex.test_eq_ne breezy.tests.test_btree_index.TestBTreeIndex.test_external_references_missing_ref breezy.tests.test_btree_index.TestBTreeIndex.test_external_references_multiple_ref_lists breezy.tests.test_btree_index.TestBTreeIndex.test_external_references_no_refs breezy.tests.test_btree_index.TestBTreeIndex.test_external_references_no_results breezy.tests.test_btree_index.TestBTreeIndex.test_external_references_two_records breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_dont_search_known breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_empty_index breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_multiple_pages breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_one_page breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_one_page_w_missing breezy.tests.test_btree_index.TestBTreeIndex.test__find_ancestors_one_parent_missing breezy.tests.test_btree_index.TestBTreeIndex.test_iter_all_entries_reads breezy.tests.test_btree_index.TestBTreeIndex.test_iter_all_only_root_no_size breezy.tests.test_btree_index.TestBTreeIndex.test_iter_entries_references_2_refs_resolved breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_1_element_key_None breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_1_key_element_no_refs breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_1_key_element_refs breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_2_key_element_no_refs breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_2_key_element_refs breezy.tests.test_btree_index.TestBTreeIndex.test_iter_key_prefix_wrong_length breezy.tests.test_btree_index.TestBTreeIndex.test_key_too_big breezy.tests.test_btree_index.TestBTreeIndex.test_non_empty_key_count_2_2 breezy.tests.test_btree_index.TestBTreeIndex.test__read_nodes_no_size_multiple_pages breezy.tests.test_btree_index.TestBTreeIndex.test__read_nodes_no_size_one_page_reads_once breezy.tests.test_btree_index.TestBTreeIndex.test_supports_unlimited_cache breezy.tests.test_btree_index.TestBTreeIndex.test_trivial_constructor breezy.tests.test_btree_index.TestBTreeIndex.test_validate_one_page breezy.tests.test_btree_index.TestBTreeIndex.test_validate_two_pages breezy.tests.test_btree_index.TestBTreeIndex.test_with_large_offset breezy.tests.test_btree_index.TestBTreeIndex.test_with_offset_no_size breezy.tests.test_btree_index.TestBTreeIndex.test_with_size_constructor breezy.tests.test_btree_index.TestBTreeIndex.test_with_small_offset breezy.tests.test_btree_index.TestBTreeNodes.test__flatten_node(python) breezy.tests.test_btree_index.TestBTreeNodes.test_InternalNode_1(python) breezy.tests.test_btree_index.TestBTreeNodes.test_LeafNode_1_0(python) breezy.tests.test_btree_index.TestBTreeNodes.test_LeafNode_2_2(python) breezy.tests.test_btree_index.TestCompiledBtree.test_exists breezy.tests.test_btree_index.TestExpandOffsets.test_cannot_fully_expand breezy.tests.test_btree_index.TestExpandOffsets.test__compute_total_pages_in_index breezy.tests.test_btree_index.TestExpandOffsets.test_default_recommended_pages breezy.tests.test_btree_index.TestExpandOffsets.test__find_layer_start_and_stop breezy.tests.test_btree_index.TestExpandOffsets.test_include_neighbors breezy.tests.test_btree_index.TestExpandOffsets.test_more_than_recommended breezy.tests.test_btree_index.TestExpandOffsets.test_no_root_node breezy.tests.test_btree_index.TestExpandOffsets.test_overlap breezy.tests.test_btree_index.TestExpandOffsets.test_read_all_from_root breezy.tests.test_btree_index.TestExpandOffsets.test_read_all_when_cached breezy.tests.test_btree_index.TestExpandOffsets.test_small_requests_unexpanded breezy.tests.test_btree_index.TestExpandOffsets.test_stay_within_layer breezy.tests.test_btree_index.TestExpandOffsets.test_stop_at_cached breezy.tests.test_btree_index.TestExpandOffsets.test_unknown_size breezy.tests.test_btree_index.TestMultiBisectRight.test_after breezy.tests.test_btree_index.TestMultiBisectRight.test_before breezy.tests.test_btree_index.TestMultiBisectRight.test_exact breezy.tests.test_btree_index.TestMultiBisectRight.test_inbetween breezy.tests.test_btree_index.TestMultiBisectRight.test_mixed breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_all_common_prefix breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_common_shift breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_empty_leaf breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_large_offsets breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_many_entries breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_many_key_leaf breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_multi_key_same_offset breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_non_str breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_not_leaf breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test_one_key_leaf breezy.tests.test__btree_serializer.TestGCCKHSHA1LeafNode.test__sizeof__ breezy.tests.test__btree_serializer.TestHexAndUnhex.test_from_hex breezy.tests.test__btree_serializer.TestHexAndUnhex.test_from_invalid_hex breezy.tests.test__btree_serializer.TestHexAndUnhex.test_to_hex breezy.tests.test__btree_serializer.Test_KeyToSha1.test_invalid_empty breezy.tests.test__btree_serializer.Test_KeyToSha1.test_invalid_not_hex breezy.tests.test__btree_serializer.Test_KeyToSha1.test_invalid_not_sha1 breezy.tests.test__btree_serializer.Test_KeyToSha1.test_invalid_not_string breezy.tests.test__btree_serializer.Test_KeyToSha1.test_invalid_not_tuple breezy.tests.test__btree_serializer.Test_KeyToSha1.test_simple breezy.tests.test__btree_serializer.Test_Sha1ToKey.test_simple breezy.tests.test_bugtracker.ErrorsTest.test_incorrect_url breezy.tests.test_bugtracker.ErrorsTest.test_malformed_bug_identifier breezy.tests.test_bugtracker.ErrorsTest.test_unknown_bug_tracker_abbreviation breezy.tests.test_bugtracker.TestBuiltinTrackers.test_bugzilla_registered breezy.tests.test_bugtracker.TestBuiltinTrackers.test_debian_registered breezy.tests.test_bugtracker.TestBuiltinTrackers.test_generic_incorrect_url breezy.tests.test_bugtracker.TestBuiltinTrackers.test_generic_registered breezy.tests.test_bugtracker.TestBuiltinTrackers.test_generic_registered_non_integer breezy.tests.test_bugtracker.TestBuiltinTrackers.test_gnome_registered breezy.tests.test_bugtracker.TestBuiltinTrackers.test_launchpad_registered breezy.tests.test_bugtracker.TestBuiltinTrackers.test_trac_registered breezy.tests.test_bugtracker.TestGetBugURL.test_get_bug_url_for_transient_tracker breezy.tests.test_bugtracker.TestGetBugURL.test_unrecognized_abbreviation_raises_error breezy.tests.test_bugtracker.TestPropertyEncoding.test_encoding_one breezy.tests.test_bugtracker.TestPropertyEncoding.test_encoding_two breezy.tests.test_bugtracker.TestPropertyEncoding.test_encoding_zero breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_appends_id_to_base_url breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_check_bug_id_doesnt_accept_non_integers breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_check_bug_id_only_accepts_integers breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_doesnt_consult_branch breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_returns_none_if_abbreviation_doesnt_match breezy.tests.test_bugtracker.TestUniqueIntegerBugTracker.test_returns_tracker_if_abbreviation_matches breezy.tests.test_bugtracker.TestURLParametrizedBugTracker.test_get_bug_url_for_integer_id breezy.tests.test_bugtracker.TestURLParametrizedBugTracker.test_get_bug_url_for_non_integer_id breezy.tests.test_bugtracker.TestURLParametrizedBugTracker.test_get_with_supported_tag breezy.tests.test_bugtracker.TestURLParametrizedBugTracker.test_get_with_unsupported_tag breezy.tests.test_bugtracker.TestURLParametrizedIntegerBugTracker.test_get_bug_url_for_bad_bug breezy.tests.test_bundle.BTreeTester.test_moves breezy.tests.test_bundle.BTreeTester.test_renames breezy.tests.test_bundle.TestBundleWriterReader.test_decode_name breezy.tests.test_bundle.TestBundleWriterReader.test_encode_name breezy.tests.test_bundle.TestReadMergeableFromUrl.test_infinite_redirects_are_not_a_bundle breezy.tests.test_bzrdir.ChrootedTests.test_find_branches breezy.tests.test_bzrdir.ChrootedTests.test_find_controldirs breezy.tests.test_bzrdir.ChrootedTests.test_find_controldirs_evaluate breezy.tests.test_bzrdir.ChrootedTests.test_find_controldirs_list_current breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_all breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_branch_subdir breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_no_tree breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_repo breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_repo_subdir breezy.tests.test_bzrdir.ChrootedTests.test_open_containing_tree_branch_or_repository_shared_repo breezy.tests.test_bzrdir.ChrootedTests.test_open_from_transport breezy.tests.test_bzrdir.ChrootedTests.test_open_from_transport_bzrdir_in_parent breezy.tests.test_bzrdir.ChrootedTests.test_open_from_transport_no_bzrdir breezy.tests.test_bzrdir.NonLocalTests.test_create_branch_convenience_force_tree_not_local_fails breezy.tests.test_bzrdir.TestBzrDirFormat.test_find_format breezy.tests.test_bzrdir.TestBzrDirFormat.test_find_format_nothing_there breezy.tests.test_bzrdir.TestBzrDirHooks.test_post_repo_init breezy.tests.test_bzrdir.TestBzrDirHooks.test_post_repo_init_hook_repr breezy.tests.test_bzrdir.TestBzrDirHooks.test_pre_open_actual_exceptions_raised breezy.tests.test_bzrdir.TestBzrFormat.test_check_support_status_optional breezy.tests.test_bzrdir.TestBzrFormat.test_check_support_status_required breezy.tests.test_bzrdir.TestBzrFormat.test_check_support_status_unknown breezy.tests.test_bzrdir.TestBzrFormat.test_eq breezy.tests.test_bzrdir.TestBzrFormat.test_feature_already_registered breezy.tests.test_bzrdir.TestBzrFormat.test_feature_with_space breezy.tests.test_bzrdir.TestBzrFormat.test_from_string_format_string_mismatch breezy.tests.test_bzrdir.TestBzrFormat.test_from_string_missing_space breezy.tests.test_bzrdir.TestBzrFormat.test_from_string_no_features breezy.tests.test_bzrdir.TestBzrFormat.test_from_string_with_feature breezy.tests.test_bzrdir.TestBzrFormat.test_from_string_with_spaces breezy.tests.test_bzrdir.TestFormatRegistry.test_aliases breezy.tests.test_bzrdir.TestFormatRegistry.test_format_registry breezy.tests.test_bzrdir.TestFormatRegistry.test_get_help breezy.tests.test_bzrdir.TestFormatRegistry.test_help_topic breezy.tests.test_bzrdir.TestFormatRegistry.test_set_default_repository breezy.tests.test_bzrdir.TestMeta1DirColoFormat.test_downgrade_to_2a breezy.tests.test_bzrdir.TestMeta1DirColoFormat.test_supports_colo breezy.tests.test_bzrdir.TestMeta1DirColoFormat.test_upgrade_from_2a breezy.tests.test_bzrdir.TestMeta1DirFormat.test_comparison breezy.tests.test_bzrdir.TestMeta1DirFormat.test_meta1dir_uses_lockdir breezy.tests.test_bzrdir.TestMeta1DirFormat.test_right_base_dirs breezy.tests.test_bzrdir.TestMeta1DirFormat.test_with_features breezy.tests.test_bzrdir.TestRepositoryAcquisitionPolicy.test_acquire_repository_standalone breezy.tests.test_bzrdir.TestRepositoryAcquisitionPolicy.test_add_fallback_repo_handles_absolute_urls breezy.tests.test_bzrdir.TestRepositoryAcquisitionPolicy.test_add_fallback_repo_handles_relative_urls breezy.tests.test_bzrdir.TestRepositoryAcquisitionPolicy.test_determine_stacking_policy breezy.tests.test_bzrdir.TestRepositoryAcquisitionPolicy.test_determine_stacking_policy_relative breezy.tests.test_cache_utf8.TestEncodeCache.test_ascii breezy.tests.test_cache_utf8.TestEncodeCache.test_cached_unicode breezy.tests.test_cache_utf8.TestEncodeCache.test_cached_utf8 breezy.tests.test_cache_utf8.TestEncodeCache.test_unicode breezy.tests.test_cethread.TestCatchingExceptionThread.test_exception_is_re_raised breezy.tests.test_cethread.TestCatchingExceptionThread.test_exception_while_switch_and_set breezy.tests.test_cethread.TestCatchingExceptionThread.test_join_around_exception breezy.tests.test_cethread.TestCatchingExceptionThread.test_start_and_join_smoke_test breezy.tests.test_cethread.TestCatchingExceptionThread.test_switch_and_set breezy.tests.test_cethread.TestCatchingExceptionThread.test_sync_event breezy.tests.test__chk_map.Test_BytesToTextKey.test_dir(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_file(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_invalid_no_kind(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_invalid_no_space(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_invalid_too_short_file_id(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_invalid_too_short_name(python) breezy.tests.test__chk_map.Test_BytesToTextKey.test_invalid_too_short_parent_id(python) breezy.tests.test__chk_map.TestDeserialiseInternalNode.test_deserialise_one(python) breezy.tests.test__chk_map.TestDeserialiseInternalNode.test_deserialise_pref_with_null(python) breezy.tests.test__chk_map.TestDeserialiseInternalNode.test_deserialise_with_null_pref(python) breezy.tests.test__chk_map.TestDeserialiseInternalNode.test_deserialise_with_prefix(python) breezy.tests.test__chk_map.TestDeserialiseInternalNode.test_raises_on_non_internal(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_deserialise_empty(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_deserialise_items(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_deserialise_item_with_common_prefix(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_deserialise_item_with_null_width_1(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_deserialise_multi_line(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_iteritems_selected_one_of_two_items(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_key_after_map(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_key_after_unmap(python) breezy.tests.test__chk_map.TestDeserialiseLeafNode.test_raises_on_non_leaf(python) breezy.tests.test_chk_map.TestInternalNode.test_iteritems_empty_new breezy.tests.test_chk_map.TestInternalNode.test_iteritems_partial_empty breezy.tests.test_chk_map.TestLeafNode.test_current_size_empty breezy.tests.test_chk_map.TestLeafNode.test_current_size_size_changed breezy.tests.test_chk_map.TestLeafNode.test_current_size_width_changed breezy.tests.test_chk_map.TestLeafNode.test_key_new breezy.tests.test_chk_map.TestLeafNode.test_unique_serialised_prefix_empty_new breezy.tests.test_chk_map.TestMapSearchKeys.test_search_key_is_passed_to_root_node breezy.tests.test_chk_map.TestMapSearchKeys.test_search_key_passed_via__ensure_root breezy.tests.test_chk_map.TestMap.test_init_and_save_new breezy.tests.test_chk_map.TestMap.test_init_root_is_LeafNode_new breezy.tests.test_chk_map.TestMap.test_iter_changes_empty_empty_is_empty breezy.tests.test_chk_map.TestMap.test_iteritems_empty breezy.tests.test_chk_map.TestMap.test___len__empty breezy.tests.test_chk_map.TestNode.test_common_prefix breezy.tests.test_chk_map.TestNode.test_empty breezy.tests.test_chk_map.TestNode.test_equal breezy.tests.test_chk_map.TestNode.test_no_common_prefix breezy.tests.test_chk_map.TestNode.test_not_a_prefix breezy.tests.test__chunks_to_lines.TestChunksToLines.test_fulltext_chunk_to_lines(python) breezy.tests.test__chunks_to_lines.TestChunksToLines.test_lines_to_lines(python) breezy.tests.test__chunks_to_lines.TestChunksToLines.test_mixed(python) breezy.tests.test__chunks_to_lines.TestChunksToLines.test_newlines(python) breezy.tests.test__chunks_to_lines.TestChunksToLines.test_no_final_newline(python) breezy.tests.test__chunks_to_lines.TestChunksToLines.test_not_lines(python) breezy.tests.test_chunk_writer.TestWriter.test_chunk_writer_empty breezy.tests.test_chunk_writer.TestWriter.test_optimize_for_size breezy.tests.test_chunk_writer.TestWriter.test_optimize_for_speed breezy.tests.test_chunk_writer.TestWriter.test_some_data breezy.tests.test_chunk_writer.TestWriter.test_too_much_data_does_not_exceed_size breezy.tests.test_chunk_writer.TestWriter.test_too_much_data_preserves_reserve_space breezy.tests.test_cleanup.TestDoWithCleanups.test_cleanup_error_debug_flag breezy.tests.test_cleanup.TestDoWithCleanups.test_func_and_cleanup_errors_debug_flag breezy.tests.test_cleanup.TestDoWithCleanups.test_func_error_propagates breezy.tests.test_cleanup.TestDoWithCleanups.test_func_error_trumps_cleanup_error breezy.tests.test_cleanup.TestDoWithCleanups.test_func_may_mutate_cleanups breezy.tests.test_cleanup.TestDoWithCleanups.test_func_passes_and_error_from_cleanup breezy.tests.test_cleanup.TestDoWithCleanups.test_multiple_cleanup_failures breezy.tests.test_cleanup.TestDoWithCleanups.test_multiple_cleanup_failures_debug_flag breezy.tests.test_cleanup.TestDoWithCleanups.test_runs_cleanups breezy.tests.test_cleanup.TestDoWithCleanups.test_runs_func breezy.tests.test_cleanup.TestObjectWithCleanups.test_object_with_cleanups breezy.tests.test_cleanup.TestOperationWithCleanups.test_cleanup_ordering breezy.tests.test_cleanup.TestRunCleanup.test_cleanup_error breezy.tests.test_cleanup.TestRunCleanup.test_cleanup_error_debug_flag breezy.tests.test_cleanup.TestRunCleanup.test_cleanup_with_args_kwargs breezy.tests.test_cleanup.TestRunCleanup.test_no_errors breezy.tests.test_cleanup.TestRunCleanup.test_prior_error_cleanup_fails breezy.tests.test_cleanup.TestRunCleanup.test_prior_error_cleanup_succeeds breezy.tests.test_cmdline.TestSplitter.test_double_escape breezy.tests.test_cmdline.TestSplitter.test_empty_result breezy.tests.test_cmdline.TestSplitter.test_escape_chars breezy.tests.test_cmdline.TestSplitter.test_ignore_leading_space breezy.tests.test_cmdline.TestSplitter.test_ignore_multiple_spaces breezy.tests.test_cmdline.TestSplitter.test_ignore_trailing_space breezy.tests.test_cmdline.TestSplitter.test_multiple_quoted_args breezy.tests.test_cmdline.TestSplitter.test_n_backslashes_handling breezy.tests.test_cmdline.TestSplitter.test_newline_in_quoted_section breezy.tests.test_cmdline.TestSplitter.test_posix_quotations breezy.tests.test_cmdline.TestSplitter.test_quoted_empty breezy.tests.test_cmdline.TestSplitter.test_simple breezy.tests.test_cmdline.TestSplitter.test_unicode_chars breezy.tests.test_commands.GuessCommandTests.test_guess breezy.tests.test_commands.GuessCommandTests.test_guess_override breezy.tests.test_commands.GuessCommandTests.test_none breezy.tests.test_commands.TestCommandNotFound.test_not_found_no_suggestion breezy.tests.test_commands.TestCommandNotFound.test_not_found_with_suggestion breezy.tests.test_commands.TestCommands.test_all_commands_have_help breezy.tests.test_commands.TestCommands.test_display_command breezy.tests.test_commands.TestCommands.test_help_hidden breezy.tests.test_commands.TestCommands.test_help_not_hidden breezy.tests.test_commands.TestCommands.test_unicode_command breezy.tests.test_commands.TestCommands.test_unicode_option breezy.tests.test_commands.TestExtendCommandHook.test_fires_on_get_cmd_object breezy.tests.test_commands.TestGetAlias.test_double_quotes breezy.tests.test_commands.TestGetAlias.test_simple breezy.tests.test_commands.TestGetAlias.test_single_quotes breezy.tests.test_commands.TestGetAlias.test_unicode breezy.tests.test_commands.TestGetCommandHook.test_fires_on_get_cmd_object breezy.tests.test_commands.TestGetMissingCommandHook.test_fires_on_get_cmd_object breezy.tests.test_commands.TestGetMissingCommandHook.test_skipped_on_HelpCommandIndex_get_topics breezy.tests.test_commands.TestInsideCommand.test_command_see_config_overrides breezy.tests.test_commands.TestInvokedAs.test_invoked_as breezy.tests.test_commands.TestListCommandHook.test_fires_on_all_command_names breezy.tests.test_commands.TestPreAndPostCommandHooks.test_post_hook_provided_exception breezy.tests.test_commands.TestPreAndPostCommandHooks.test_pre_and_post_hooks breezy.tests.test_commands.TestPreAndPostCommandHooks.test_pre_command_error breezy.tests.test_commands.TestRegisterLazy.test_aliases breezy.tests.test_commands.TestRegisterLazy.test_get_unrelated_does_not_import breezy.tests.test_commands.TestRegisterLazy.test_register_lazy breezy.tests.test_commands.TestSeeAlso.test_additional_terms breezy.tests.test_commands.TestSeeAlso.test_deduplication breezy.tests.test_commands.TestSeeAlso.test_default_subclass_no_see_also breezy.tests.test_commands.TestSeeAlso.test__see_also breezy.tests.test_commands.TestSeeAlso.test_sorted breezy.tests.test_commit.FilterExcludedTests.test_add_file_excluded breezy.tests.test_commit.FilterExcludedTests.test_add_file_not_excluded breezy.tests.test_commit.FilterExcludedTests.test_delete_file_excluded breezy.tests.test_commit.FilterExcludedTests.test_move_from_or_to_excluded breezy.tests.test_commit.TestCommit.test_author_with_newline_rejected breezy.tests.test_commit.TestCommit.test_commit_unversioned_specified breezy.tests.test_config.TestAuthenticationConfigFile.test_auth_section_header_not_closed breezy.tests.test_config.TestAuthenticationConfigFile.test_auth_value_not_boolean breezy.tests.test_config.TestAuthenticationConfigFile.test_auth_value_not_int breezy.tests.test_config.TestAuthenticationConfigFile.test_credentials_for_host_port breezy.tests.test_config.TestAuthenticationConfigFile.test_credentials_for_path breezy.tests.test_config.TestAuthenticationConfigFile.test_credentials_for_scheme_host breezy.tests.test_config.TestAuthenticationConfigFile.test_credentials_for_user breezy.tests.test_config.TestAuthenticationConfigFile.test_credentials_for_user_without_password breezy.tests.test_config.TestAuthenticationConfigFile.test_empty_config breezy.tests.test_config.TestAuthenticationConfigFile.test_for_matching_host breezy.tests.test_config.TestAuthenticationConfigFile.test_for_matching_host_None breezy.tests.test_config.TestAuthenticationConfigFile.test_missing_auth_section_header breezy.tests.test_config.TestAuthenticationConfigFile.test_non_utf8_config breezy.tests.test_config.TestAuthenticationConfigFile.test_unknown_password_encoding breezy.tests.test_config.TestAuthenticationConfigFile.test_verify_certificates breezy.tests.test_config.TestAuthenticationConfig.test_password_default_prompts breezy.tests.test_config.TestAuthenticationConfig.test_ssh_password_emits_warning breezy.tests.test_config.TestAuthenticationConfig.test_ssh_without_password_doesnt_emit_warning breezy.tests.test_config.TestAuthenticationConfig.test_username_default_no_prompt breezy.tests.test_config.TestAuthenticationConfig.test_username_defaults_prompts breezy.tests.test_config.TestAuthenticationConfig.test_uses_fallback_stores breezy.tests.test_config.TestAuthenticationStorage.test_reset_credentials_different_name breezy.tests.test_config.TestAuthenticationStorage.test_set_credentials breezy.tests.test_config.TestAutoUserId.test_auto_user_id breezy.tests.test_config.TestBaseStackGet.test_get_for_broken_callable breezy.tests.test_config.TestBaseStackGet.test_get_for_empty_section_callable breezy.tests.test_config.TestBaseStackGet.test_get_without_default_value_for_not_registered breezy.tests.test_config.TestBaseStackGet.test_get_without_registered_default_value breezy.tests.test_config.TestBaseStackGet.test_get_with_registered_default_value breezy.tests.test_config.TestBranchConfigItems.test_BRZ_EMAIL_OVERRIDES breezy.tests.test_config.TestBranchConfigItems.test_get_user_option_global breezy.tests.test_config.TestBranchConfigItems.test_user_id breezy.tests.test_config.TestBranchConfig.test_autonick_urlencoded breezy.tests.test_config.TestBranchConfig.test_config_url breezy.tests.test_config.TestBranchConfig.test_constructs_error breezy.tests.test_config.TestBranchConfig.test_constructs_valid breezy.tests.test_config.TestBranchConfig.test_get_config breezy.tests.test_config.TestBranchConfig.test_get_location_config breezy.tests.test_config.TestBranchConfig.test_has_explicit_nickname breezy.tests.test_config.TestBranchConfig.test_warn_if_masked breezy.tests.test_config.TestCommandLineStore.test_list_override breezy.tests.test_config.TestCommandLineStore.test_multiple_overrides breezy.tests.test_config.TestCommandLineStore.test_no_override breezy.tests.test_config.TestCommandLineStore.test_simple_override breezy.tests.test_config.TestCommandLineStore.test_wrong_syntax breezy.tests.test_config.TestConcreteStacks.test_build_stack(branch) breezy.tests.test_config.TestConcreteStacks.test_build_stack(breezy) breezy.tests.test_config.TestConcreteStacks.test_build_stack(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_last_speaker_wins(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_last_speaker_wins(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_last_speaker_wins(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_listen_to_the_last_speaker(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_listen_to_the_last_speaker(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_listen_to_the_last_speaker(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_read_while_writing(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_read_while_writing(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_read_while_writing(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_read_access(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_read_access(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_read_access(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_write_access(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_write_access(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_simple_write_access(location) breezy.tests.test_config.TestConcurrentStoreUpdates.test_writes_are_serialized(branch) breezy.tests.test_config.TestConcurrentStoreUpdates.test_writes_are_serialized(breezy) breezy.tests.test_config.TestConcurrentStoreUpdates.test_writes_are_serialized(location) breezy.tests.test_config.TestConfigGetOptions.test_no_variable breezy.tests.test_config.TestConfigGetOptions.test_option_in_branch breezy.tests.test_config.TestConfigGetOptions.test_option_in_branch_and_locations breezy.tests.test_config.TestConfigGetOptions.test_option_in_breezy breezy.tests.test_config.TestConfigGetOptions.test_option_in_breezy_and_branch breezy.tests.test_config.TestConfigGetOptions.test_option_in_breezy_locations_and_branch breezy.tests.test_config.TestConfigGetOptions.test_option_in_locations breezy.tests.test_config.TestConfigGetSections.test_branch_data_default_section breezy.tests.test_config.TestConfigGetSections.test_branch_default_sections breezy.tests.test_config.TestConfigGetSections.test_breezy_default_section breezy.tests.test_config.TestConfigGetSections.test_breezy_named_section breezy.tests.test_config.TestConfigGetSections.test_locations_default_section breezy.tests.test_config.TestConfigGetSections.test_locations_matching_sections breezy.tests.test_config.TestConfigGetSections.test_locations_named_section breezy.tests.test_config.TestConfigObj.test_triple_quotes breezy.tests.test_config.TestConfigPathFallback.test_authentication_config_filename breezy.tests.test_config.TestConfigPathFallback.test_config_dir breezy.tests.test_config.TestConfigPathFallback.test_config_filename breezy.tests.test_config.TestConfigPathFallback.test_locations_config_filename breezy.tests.test_config.TestConfigPathFallback.test_xdg_cache_dir breezy.tests.test_config.TestConfigPath.test_authentication_config_filename breezy.tests.test_config.TestConfigPath.test_config_dir breezy.tests.test_config.TestConfigPath.test_config_filename breezy.tests.test_config.TestConfigPath.test_locations_config_filename breezy.tests.test_config.TestConfigPath.test_xdg_cache_dir breezy.tests.test_config.TestConfigRemoveOption.test_remove_in_branch breezy.tests.test_config.TestConfigRemoveOption.test_remove_in_breezy breezy.tests.test_config.TestConfigRemoveOption.test_remove_in_locations breezy.tests.test_config.TestConfig.test_constructs breezy.tests.test_config.TestConfig.test_get_change_editor breezy.tests.test_config.TestConfig.test_get_user_option_default breezy.tests.test_config.TestConfig.test_user_email breezy.tests.test_config.TestConfig.test_username breezy.tests.test_config.TestConfig.test_validate_signatures_in_log_default breezy.tests.test_config.TestCredentialStoreRegistry.test_default_credential_store breezy.tests.test_config.TestCredentialStoreRegistry.test_fallback_credentials breezy.tests.test_config.TestCredentialStoreRegistry.test_fallback_first_wins breezy.tests.test_config.TestCredentialStoreRegistry.test_fallback_none_registered breezy.tests.test_config.TestCredentialStoreRegistry.test_is_fallback breezy.tests.test_config.TestCredentialStoreRegistry.test_no_fallback breezy.tests.test_config.TestCredentialStoreRegistry.test_register breezy.tests.test_config.TestCredentialStoreRegistry.test_register_lazy breezy.tests.test_config.TestCredentialStoreRegistry.test_unknown_credential_store breezy.tests.test_config.TestGetConfig.test_calls_read_filenames breezy.tests.test_config.TestGetConfig.test_constructs breezy.tests.test_config.TestGetUserOptionAs.test_get_user_option_as_bool breezy.tests.test_config.TestGetUserOptionAs.test_get_user_option_as_list breezy.tests.test_config.TestGlobalConfigItems.test_absent_user_id breezy.tests.test_config.TestGlobalConfigItems.test_configured_validate_signatures_in_log breezy.tests.test_config.TestGlobalConfigItems.test_find_merge_tool breezy.tests.test_config.TestGlobalConfigItems.test_find_merge_tool_known breezy.tests.test_config.TestGlobalConfigItems.test_find_merge_tool_not_found breezy.tests.test_config.TestGlobalConfigItems.test_find_merge_tool_override_known breezy.tests.test_config.TestGlobalConfigItems.test_get_alias breezy.tests.test_config.TestGlobalConfigItems.test_get_aliases breezy.tests.test_config.TestGlobalConfigItems.test_get_change_editor breezy.tests.test_config.TestGlobalConfigItems.test_get_long_alias breezy.tests.test_config.TestGlobalConfigItems.test_get_merge_tools breezy.tests.test_config.TestGlobalConfigItems.test_get_merge_tools_empty breezy.tests.test_config.TestGlobalConfigItems.test_get_no_alias breezy.tests.test_config.TestGlobalConfigItems.test_get_no_change_editor breezy.tests.test_config.TestGlobalConfigItems.test_get_user_option_default breezy.tests.test_config.TestGlobalConfigItems.test_get_user_option_global breezy.tests.test_config.TestGlobalConfigItems.test_user_id breezy.tests.test_config.TestGlobalConfigSavingOptions.test_empty breezy.tests.test_config.TestGlobalConfigSavingOptions.test_remove_alias breezy.tests.test_config.TestGlobalConfigSavingOptions.test_set_alias breezy.tests.test_config.TestIniBaseConfigOnDisk.test_cannot_reload_without_name breezy.tests.test_config.TestIniBaseConfigOnDisk.test_reload_see_new_value breezy.tests.test_config.TestIniConfigBuilding.test_cached breezy.tests.test_config.TestIniConfigBuilding.test_contructs breezy.tests.test_config.TestIniConfigBuilding.test_from_fp breezy.tests.test_config.TestIniConfigBuilding.test_ini_config_ownership breezy.tests.test_config.TestIniConfigContent.test_load_utf8 breezy.tests.test_config.TestIniConfigOptionExpansion.test_cascading_list breezy.tests.test_config.TestIniConfigOptionExpansion.test_embedded_ref breezy.tests.test_config.TestIniConfigOptionExpansion.test_env_adding_options breezy.tests.test_config.TestIniConfigOptionExpansion.test_env_overriding_options breezy.tests.test_config.TestIniConfigOptionExpansion.test_indirect_loop breezy.tests.test_config.TestIniConfigOptionExpansion.test_indirect_ref breezy.tests.test_config.TestIniConfigOptionExpansion.test_list breezy.tests.test_config.TestIniConfigOptionExpansion.test_no_expansion breezy.tests.test_config.TestIniConfigOptionExpansion.test_pathological_hidden_list breezy.tests.test_config.TestIniConfigOptionExpansion.test_simple_loop breezy.tests.test_config.TestIniConfigOptionExpansion.test_simple_ref breezy.tests.test_config.TestIniConfigOptionExpansion.test_unknown_ref breezy.tests.test_config.TestIniConfigSaving.test_cant_save_without_a_file_name breezy.tests.test_config.TestIniFileStoreContent.test_load_permission_denied breezy.tests.test_config.TestIniFileStoreContent.test_load_utf8 breezy.tests.test_config.TestIterOptionRefs.test_broken_ref breezy.tests.test_config.TestIterOptionRefs.test_embedded_ref breezy.tests.test_config.TestIterOptionRefs.test_empty breezy.tests.test_config.TestIterOptionRefs.test_newline_in_refs_are_not_matched breezy.tests.test_config.TestIterOptionRefs.test_no_refs breezy.tests.test_config.TestIterOptionRefs.test_single_ref breezy.tests.test_config.TestIterOptionRefs.test_two_refs breezy.tests.test_config.TestListOption.test_convert_invalid breezy.tests.test_config.TestListOption.test_convert_valid breezy.tests.test_config.TestLocationConfigOptionExpansion.test_cross_related_sections breezy.tests.test_config.TestLocationConfigOptionExpansion.test_dont_cross_unrelated_section breezy.tests.test_config.TestLocationConfig.test_branch_calls_read_filenames breezy.tests.test_config.TestLocationConfig.test_constructs_error breezy.tests.test_config.TestLocationConfig.test_constructs_valid breezy.tests.test_config.TestLocationConfig.test_get_bzr_remote_path breezy.tests.test_config.TestLocationConfig.test_get_global_config breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_exact breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_explicit_over_glob breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_ignoreparent breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_ignoreparent_subdir breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_no_match breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_subdir_child breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_subdir_child_child breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_subdir_recursive breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_subdir_trailing_slash breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_suffix_does_not breezy.tests.test_config.TestLocationConfig.test__get_matching_sections_trailing_slash_with_children breezy.tests.test_config.TestLocationConfig.test__get_option_policy_norecurse breezy.tests.test_config.TestLocationConfig.test__get_option_policy_normal breezy.tests.test_config.TestLocationConfig.test__get_options_with_policy breezy.tests.test_config.TestLocationConfig.test_get_user_option_appendpath breezy.tests.test_config.TestLocationConfig.test_get_user_option_global breezy.tests.test_config.TestLocationConfig.test_get_user_option_local breezy.tests.test_config.TestLocationConfig.test_get_user_option_norecurse breezy.tests.test_config.TestLocationConfig.test_location_not_listed breezy.tests.test_config.TestLocationConfig.test_location_without_username breezy.tests.test_config.TestLocationConfig.test_overriding_location breezy.tests.test_config.TestLocationConfig.test_set_user_option_appendpath breezy.tests.test_config.TestLocationConfig.test_set_user_option_change_policy breezy.tests.test_config.TestLocationConfig.test_set_user_option_norecurse breezy.tests.test_config.TestLocationMatcher.test_file_urls_are_normalized breezy.tests.test_config.TestLocationSection.test_invalid_policy breezy.tests.test_config.TestLocationSection.test_option_with_extra_path breezy.tests.test_config.TestLocationSection.test_simple_option breezy.tests.test_config.TestLockableConfig.test_last_speaker_wins(global) breezy.tests.test_config.TestLockableConfig.test_last_speaker_wins(locations) breezy.tests.test_config.TestLockableConfig.test_listen_to_the_last_speaker(global) breezy.tests.test_config.TestLockableConfig.test_listen_to_the_last_speaker(locations) breezy.tests.test_config.TestLockableConfig.test_read_while_writing(global) breezy.tests.test_config.TestLockableConfig.test_read_while_writing(locations) breezy.tests.test_config.TestLockableConfig.test_simple_read_access(global) breezy.tests.test_config.TestLockableConfig.test_simple_read_access(locations) breezy.tests.test_config.TestLockableConfig.test_simple_write_access(global) breezy.tests.test_config.TestLockableConfig.test_simple_write_access(locations) breezy.tests.test_config.TestLockableConfig.test_writes_are_serialized(global) breezy.tests.test_config.TestLockableConfig.test_writes_are_serialized(locations) breezy.tests.test_config.TestLockableIniFileStore.test_create_store_in_created_dir breezy.tests.test_config.TestMailAddressExtraction.test_extract_email_address breezy.tests.test_config.TestMailAddressExtraction.test_parse_username breezy.tests.test_config.TestMutableSection.test_remove(mutable) breezy.tests.test_config.TestMutableSection.test_remove_new_option(mutable) breezy.tests.test_config.TestMutableSection.test_set(mutable) breezy.tests.test_config.TestMutableSection.test_set_preserve_original_once(mutable) breezy.tests.test_config.TestMutableStore.test_load_hook(branch) breezy.tests.test_config.TestMutableStore.test_load_hook(breezy) breezy.tests.test_config.TestMutableStore.test_load_hook(configobj) breezy.tests.test_config.TestMutableStore.test_load_hook(control) breezy.tests.test_config.TestMutableStore.test_load_hook(location) breezy.tests.test_config.TestMutableStore.test_load_hook(remote_branch) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(branch) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(breezy) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(configobj) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(control) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(location) breezy.tests.test_config.TestMutableStore.test_save_empty_creates_no_file(remote_branch) breezy.tests.test_config.TestMutableStore.test_save_hook(branch) breezy.tests.test_config.TestMutableStore.test_save_hook(breezy) breezy.tests.test_config.TestMutableStore.test_save_hook(configobj) breezy.tests.test_config.TestMutableStore.test_save_hook(control) breezy.tests.test_config.TestMutableStore.test_save_hook(location) breezy.tests.test_config.TestMutableStore.test_save_hook(remote_branch) breezy.tests.test_config.TestMutableStore.test_save_with_content_succeeds(branch) breezy.tests.test_config.TestMutableStore.test_save_with_content_succeeds(remote_branch) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(branch) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(breezy) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(configobj) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(control) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(location) breezy.tests.test_config.TestMutableStore.test_set_option_in_empty_store(remote_branch) breezy.tests.test_config.TestOldConfigHooks.test_get_hook_branch breezy.tests.test_config.TestOldConfigHooks.test_get_hook_breezy breezy.tests.test_config.TestOldConfigHooks.test_get_hook_locations breezy.tests.test_config.TestOldConfigHooks.test_load_hook_branch breezy.tests.test_config.TestOldConfigHooks.test_load_hook_breezy breezy.tests.test_config.TestOldConfigHooks.test_load_hook_locations breezy.tests.test_config.TestOldConfigHooks.test_remove_hook_branch breezy.tests.test_config.TestOldConfigHooks.test_remove_hook_breezy breezy.tests.test_config.TestOldConfigHooks.test_remove_hook_locations breezy.tests.test_config.TestOldConfigHooks.test_save_hook_branch breezy.tests.test_config.TestOldConfigHooks.test_save_hook_breezy breezy.tests.test_config.TestOldConfigHooks.test_save_hook_locations breezy.tests.test_config.TestOldConfigHooks.test_set_hook_branch breezy.tests.test_config.TestOldConfigHooks.test_set_hook_breezy breezy.tests.test_config.TestOldConfigHooks.test_set_hook_locations breezy.tests.test_config.TestOptionNames.test_invalid_names breezy.tests.test_config.TestOptionNames.test_valid_names breezy.tests.test_config.TestOptionNames.test_valid_references breezy.tests.test_config.TestOptionRegistry.test_dont_lazy_register_illegal_name breezy.tests.test_config.TestOptionRegistry.test_dont_register_illegal_name breezy.tests.test_config.TestOptionRegistry.test_register breezy.tests.test_config.TestOptionRegistry.test_registered_help breezy.tests.test_config.TestOptionRegistry.test_registered_lazy_help breezy.tests.test_config.TestOptionRegistry.test_register_lazy breezy.tests.test_config.TestOption.test_callable_default_value breezy.tests.test_config.TestOption.test_default_value breezy.tests.test_config.TestOption.test_default_value_from_env breezy.tests.test_config.TestOption.test_first_default_value_from_env_wins breezy.tests.test_config.TestOption.test_get_help_topic breezy.tests.test_config.TestOption.test_not_supported_list_default_value breezy.tests.test_config.TestOption.test_not_supported_object_default_value breezy.tests.test_config.TestOptionWithBooleanConverter.test_convert_invalid breezy.tests.test_config.TestOptionWithBooleanConverter.test_convert_valid breezy.tests.test_config.TestOptionWithIntegerConverter.test_convert_invalid breezy.tests.test_config.TestOptionWithIntegerConverter.test_convert_valid breezy.tests.test_config.TestOptionWithSIUnitConverter.test_convert_invalid breezy.tests.test_config.TestOptionWithSIUnitConverter.test_convert_valid breezy.tests.test_config.TestPlainTextCredentialStore.test_decode_password breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(acceptable_keys) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(add.maximum_file_size) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(append_revisions_only) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(bound) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(bound_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(branch.fetch_tags) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(bugtracker) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(bzr.transform.orphan_policy) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(bzr.workingtree.worth_saving_limit) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(check_signatures) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(child_submit_format) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(child_submit_to) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(commit.template_from_files) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(create_signatures) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(debug_flags) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(default_format) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(dirstate.fdatasync) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(dpush_strict) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(editor) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(email) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(gpg_signing_key) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(language) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(launchpad.packaging_verbosity) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(launchpad_username) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(locks.steal_dead) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(log_format) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(mail_client) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(output_encoding) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(parent_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(po_merge.command) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(po_merge.po_dirs) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(po_merge.po_glob) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(po_merge.pot_glob) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_body) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_difflimit) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_diffoptions) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_log_format) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_mailer) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_push_pull) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_sender) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_subject) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(post_commit_to) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(progress_bar) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(public_branch) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(push_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(push_strict) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(repository.fdatasync) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(revision_mail_headers) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(selftest.timeout) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(send_strict) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(serve.client_timeout) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(smtp_password) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(smtp_server) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(smtp_username) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(ssl.ca_certs) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(ssl.cert_reqs) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(stacked_on_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(submit_branch) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(submit_to) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(suppress_warnings) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(upload_auto) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(upload_auto_quiet) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(upload_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(upload_revid_location) breezy.tests.test_config.TestRegisteredOptions.test_help_is_set(validate_signatures_in_log) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(acceptable_keys) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(add.maximum_file_size) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(append_revisions_only) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(bound) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(bound_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(branch.fetch_tags) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(bugtracker) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(bzr.transform.orphan_policy) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(bzr.workingtree.worth_saving_limit) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(check_signatures) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(child_submit_format) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(child_submit_to) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(commit.template_from_files) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(create_signatures) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(debug_flags) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(default_format) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(dirstate.fdatasync) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(dpush_strict) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(editor) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(email) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(gpg_signing_key) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(language) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(launchpad.packaging_verbosity) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(launchpad_username) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(locks.steal_dead) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(log_format) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(mail_client) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(output_encoding) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(parent_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(po_merge.command) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(po_merge.po_dirs) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(po_merge.po_glob) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(po_merge.pot_glob) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_body) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_difflimit) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_diffoptions) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_log_format) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_mailer) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_push_pull) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_sender) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_subject) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(post_commit_to) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(progress_bar) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(public_branch) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(push_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(push_strict) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(repository.fdatasync) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(revision_mail_headers) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(selftest.timeout) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(send_strict) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(serve.client_timeout) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(smtp_password) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(smtp_server) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(smtp_username) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(ssl.ca_certs) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(ssl.cert_reqs) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(stacked_on_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(submit_branch) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(submit_to) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(suppress_warnings) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(upload_auto) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(upload_auto_quiet) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(upload_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(upload_revid_location) breezy.tests.test_config.TestRegisteredOptions.test_proper_name(validate_signatures_in_log) breezy.tests.test_config.TestRegistryOption.test_convert_invalid breezy.tests.test_config.TestRegistryOption.test_convert_valid breezy.tests.test_config.TestRegistryOption.test_get_help_text breezy.tests.test_config.TestRegistryOption.test_help breezy.tests.test_config.TestSectionMatcher.test_build_doesnt_load_store(id) breezy.tests.test_config.TestSectionMatcher.test_build_doesnt_load_store(location) breezy.tests.test_config.TestSection.test_get_a_value breezy.tests.test_config.TestSection.test_get_unknown_option breezy.tests.test_config.TestSection.test_options_is_shared breezy.tests.test_config.TestSharedStores.test_breezy_conf_shared breezy.tests.test_config.TestStackExpandOptions.test_env_adding_options breezy.tests.test_config.TestStackExpandOptions.test_illegal_def_is_ignored breezy.tests.test_config.TestStackExpandOptions.test_no_expansion breezy.tests.test_config.TestStackExpandOptions.test_unknown_ref breezy.tests.test_config.TestStackGet.test_get_for_empty_stack(branch) breezy.tests.test_config.TestStackGet.test_get_for_empty_stack(breezy) breezy.tests.test_config.TestStackGet.test_get_for_empty_stack(location) breezy.tests.test_config.TestStackGet.test_get_hook(branch) breezy.tests.test_config.TestStackGet.test_get_hook(breezy) breezy.tests.test_config.TestStackGet.test_get_hook(location) breezy.tests.test_config.TestStackIterSections.test_empty_stack breezy.tests.test_config.TestStackRemove.test_remove_existing(branch) breezy.tests.test_config.TestStackRemove.test_remove_existing(breezy) breezy.tests.test_config.TestStackRemove.test_remove_existing(location) breezy.tests.test_config.TestStackRemove.test_remove_hook(branch) breezy.tests.test_config.TestStackRemove.test_remove_hook(breezy) breezy.tests.test_config.TestStackRemove.test_remove_hook(location) breezy.tests.test_config.TestStackRemove.test_remove_unknown(branch) breezy.tests.test_config.TestStackRemove.test_remove_unknown(breezy) breezy.tests.test_config.TestStackRemove.test_remove_unknown(location) breezy.tests.test_config.TestStackSet.test_set_creates_a_new_section(branch) breezy.tests.test_config.TestStackSet.test_set_creates_a_new_section(breezy) breezy.tests.test_config.TestStackSet.test_set_creates_a_new_section(location) breezy.tests.test_config.TestStackSet.test_set_hook(branch) breezy.tests.test_config.TestStackSet.test_set_hook(breezy) breezy.tests.test_config.TestStackSet.test_set_hook(location) breezy.tests.test_config.TestStackSet.test_simple_set(branch) breezy.tests.test_config.TestStackSet.test_simple_set(breezy) breezy.tests.test_config.TestStackSet.test_simple_set(location) breezy.tests.test_config.TestStoreMinimalAPI.test_id(branch) breezy.tests.test_config.TestStoreMinimalAPI.test_id(breezy) breezy.tests.test_config.TestStoreMinimalAPI.test_id(cmdline) breezy.tests.test_config.TestStoreMinimalAPI.test_id(configobj) breezy.tests.test_config.TestStoreMinimalAPI.test_id(control) breezy.tests.test_config.TestStoreMinimalAPI.test_id(location) breezy.tests.test_config.TestStoreSaveChanges.test_concurrent_update_modified breezy.tests.test_config.TestStoreSaveChanges.test_no_changes_no_save breezy.tests.test_config.TestStoreSaveChanges.test_unrelated_concurrent_update breezy.tests.test_config.TestSupressWarning.test_suppress_warning_known breezy.tests.test_config.TestSupressWarning.test_suppress_warning_unknown breezy.tests.test_config.TestTransportConfig.test_get_value breezy.tests.test_config.TestTransportConfig.test_load_utf8 breezy.tests.test_config.TestTransportConfig.test_set_unset_default_stack_on breezy.tests.test_config.TestTransportIniFileStore.test_loading_unknown_file_fails breezy.tests.test_config.TestTreeConfig.test_get_value breezy.tests.test_config.TestXDGConfigDir.test_xdg_config_dir_exists breezy.tests.test_config.TestXDGConfigDir.test_xdg_config_home breezy.tests.test_conflicts.TestConflicts.test_select_conflicts breezy.tests.test_conflicts.TestPerConflict.test_stanzification(TextConflict) breezy.tests.test_conflicts.TestResolveActionOption.test_done breezy.tests.test_conflicts.TestResolveActionOption.test_take_other breezy.tests.test_conflicts.TestResolveActionOption.test_take_this breezy.tests.test_conflicts.TestResolveActionOption.test_unknown_action breezy.tests.test_controldir.DefaultControlComponentFormatTests.test_check_support_status_supported breezy.tests.test_controldir.DefaultControlComponentFormatTests.test_check_support_status_unsupported breezy.tests.test_controldir.DefaultControlComponentFormatTests.test_recommend_upgrade_current_format breezy.tests.test_controldir.DefaultControlComponentFormatTests.test_recommend_upgrade_old_format breezy.tests.test_controldir.IsControlFilenameTest.test_is_bzrdir breezy.tests.test_controldir.IsControlFilenameTest.test_is_not_bzrdir breezy.tests.test_controldir.TestErrors.test_must_have_working_tree breezy.tests.test_controldir.TestMetaComponentFormatRegistry.test_get_all breezy.tests.test_controldir.TestMetaComponentFormatRegistry.test_get_all_modules breezy.tests.test_controldir.TestMetaComponentFormatRegistry.test_register_extra breezy.tests.test_controldir.TestMetaComponentFormatRegistry.test_register_extra_lazy breezy.tests.test_controldir.TestMetaComponentFormatRegistry.test_register_unregister_format breezy.tests.test_controldir.TestNotBzrDir.test_create_and_find_format breezy.tests.test_controldir.TestProber.test_known_formats(CVSProber) breezy.tests.test_controldir.TestProber.test_known_formats(DarcsProber) breezy.tests.test_controldir.TestProber.test_known_formats(MonotoneProber) breezy.tests.test_controldir.TestProber.test_probe_transport_empty(BzrProber) breezy.tests.test_controldir.TestProber.test_probe_transport_empty(CVSProber) breezy.tests.test_controldir.TestProber.test_probe_transport_empty(DarcsProber) breezy.tests.test_controldir.TestProber.test_probe_transport_empty(MonotoneProber) breezy.tests.test_counted_lock.TestCountedLock.test_break_lock breezy.tests.test_counted_lock.TestCountedLock.test_read_lock breezy.tests.test_counted_lock.TestCountedLock.test_read_lock_while_write_locked breezy.tests.test_counted_lock.TestCountedLock.test_reenter_with_token breezy.tests.test_counted_lock.TestCountedLock.test_unlock_not_locked breezy.tests.test_counted_lock.TestCountedLock.test_write_lock_reentrant breezy.tests.test_counted_lock.TestCountedLock.test_write_lock_while_read_locked breezy.tests.test_counted_lock.TestDummyLock.test_basic_locking breezy.tests.test_counted_lock.TestDummyLock.test_break_lock breezy.tests.test_counted_lock.TestDummyLock.test_detect_underlock breezy.tests.test_counted_lock.TestDummyLock.test_lock_initially_not_held breezy.tests.test_counted_lock.TestDummyLock.test_lock_not_reentrant breezy.tests.test_crash.TestApportReporting.test_apport_report breezy.tests.test_crash.TestNonApportReporting.test_report_bug_legacy breezy.tests.test_debug.TestDebugFlags.test_set_multiple_debug_flags_from_config breezy.tests.test_debug.TestDebugFlags.test_set_no_debug_flags_from_config breezy.tests.test_debug.TestDebugFlags.test_set_single_debug_flags_from_config breezy.tests.test_decorators.TestOnlyRaisesDecorator.test_quietly_logs_unapproved_errors breezy.tests.test_decorators.TestOnlyRaisesDecorator.test_raises_approved_error breezy.tests.test_delta.TestReportChanges.test_kind breezy.tests.test_delta.TestReportChanges.test_missing breezy.tests.test_delta.TestReportChanges.test_modification breezy.tests.test_delta.TestReportChanges.test_new breezy.tests.test_delta.TestReportChanges.test_removal breezy.tests.test_delta.TestReportChanges.test_rename breezy.tests.test_delta.TestReportChanges.test_report_changes breezy.tests.test_delta.TestReportChanges.test_report_unversioned breezy.tests.test_delta.TestReportChanges.test_unversioned breezy.tests.test_delta.TestReportChanges.test_view_filtering breezy.tests.test_diff.TestDiffFromToolEncodedFilename.test_encodable_filename breezy.tests.test_diff.TestDiffFromToolEncodedFilename.test_unencodable_filename breezy.tests.test_diff.TestDiffFromTool.test_execute_missing breezy.tests.test_diff.TestDiffFromTool.test_from_string breezy.tests.test_diff.TestDiffFromTool.test_from_string_path_with_backslashes breezy.tests.test_diff.TestDiffFromTool.test_from_string_u5 breezy.tests.test_diff.TestDiffFromTool.test_prepare_files_creates_paths_readable_by_windows_tool breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--brief) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-c) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-C) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--context) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-D) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-e) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--ed) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-f) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--forward-ed) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--ifdef) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-n) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--normal) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-q) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--rcs) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--side-by-side) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-u) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-U) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(--unified) breezy.tests.test_diff.TestDiffOptionsScenarios.test_unified_not_added(-y) breezy.tests.test_diff.TestDiffOptions.test_unified_added breezy.tests.test_diff.TestPatienceDiffLib_c.test_diff_unicode_string breezy.tests.test_diff.TestPatienceDiffLib_c.test_grouped_opcodes breezy.tests.test_diff.TestPatienceDiffLib_c.test_matching_blocks breezy.tests.test_diff.TestPatienceDiffLib_c.test_matching_blocks_tuples breezy.tests.test_diff.TestPatienceDiffLib_c.test_multiple_ranges breezy.tests.test_diff.TestPatienceDiffLib_c.test_opcodes breezy.tests.test_diff.TestPatienceDiffLib_c.test_patience_unified_diff breezy.tests.test_diff.TestPatienceDiffLib_c.test_patience_unified_diff_with_dates breezy.tests.test_diff.TestPatienceDiffLib_c.test_recurse_matches breezy.tests.test_diff.TestPatienceDiffLib_c.test_unhashable breezy.tests.test_diff.TestPatienceDiffLib_c.test_unique_lcs breezy.tests.test_diff.TestPatienceDiffLibFiles_c.test_patience_unified_diff_files breezy.tests.test_diff.TestPatienceDiffLib.test_grouped_opcodes breezy.tests.test_diff.TestPatienceDiffLib.test_matching_blocks breezy.tests.test_diff.TestPatienceDiffLib.test_matching_blocks_tuples breezy.tests.test_diff.TestPatienceDiffLib.test_multiple_ranges breezy.tests.test_diff.TestPatienceDiffLib.test_opcodes breezy.tests.test_diff.TestPatienceDiffLib.test_patience_unified_diff breezy.tests.test_diff.TestPatienceDiffLib.test_patience_unified_diff_with_dates breezy.tests.test_diff.TestPatienceDiffLib.test_recurse_matches breezy.tests.test_diff.TestPatienceDiffLib.test_unique_lcs breezy.tests.test_diff.TestUsingCompiledIfAvailable.test_PatienceSequenceMatcher breezy.tests.test_diff.TestUsingCompiledIfAvailable.test_recurse_matches breezy.tests.test_diff.TestUsingCompiledIfAvailable.test_unique_lcs breezy.tests.test_directory_service.TestAliasDirectory.test_extra_path breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_badname breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_badvalue breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_bound breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_public breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_push breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_submit breezy.tests.test_directory_service.TestAliasDirectory.test_lookup_this breezy.tests.test_directory_service.TestAliasDirectory.test_register_location_alias breezy.tests.test_directory_service.TestColocatedDirectory.test_no_such_branch breezy.tests.test_directory_service.TestDirectoryLookup.test_dereference breezy.tests.test_directory_service.TestDirectoryLookup.test_get_directory_service breezy.tests.test_directory_service.TestDirectoryLookup.test_get_transport breezy.tests.test__dirstate_helpers.TestCompiledBisectDirblock.test_involved breezy.tests.test__dirstate_helpers.TestCompiledBisectDirblock.test_involved_cached breezy.tests.test__dirstate_helpers.TestCompiledBisectDirblock.test_simple breezy.tests.test__dirstate_helpers.TestCompiledBisectPathLeft.test_involved breezy.tests.test__dirstate_helpers.TestCompiledBisectPathLeft.test_simple breezy.tests.test__dirstate_helpers.TestCompiledBisectPathRight.test_involved breezy.tests.test__dirstate_helpers.TestCompiledBisectPathRight.test_simple breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_cmp_empty breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_cmp_non_ascii breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_cmp_same_str breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_cmp_unicode_not_allowed breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_simple_paths breezy.tests.test__dirstate_helpers.TestCompiledLtByDirs.test_tricky_paths breezy.tests.test__dirstate_helpers.TestCompiledLtPathByDirblock.test_cmp_simple_paths breezy.tests.test__dirstate_helpers.TestCompiledLtPathByDirblock.test_nonascii breezy.tests.test__dirstate_helpers.TestCompiledLtPathByDirblock.test_tricky_paths breezy.tests.test__dirstate_helpers.TestCompiledLtPathByDirblock.test_unicode_not_allowed breezy.tests.test__dirstate_helpers.TestCompiledReadDirblocks.test_smoketest(unicode) breezy.tests.test__dirstate_helpers.TestCompiledReadDirblocks.test_trailing_garbage(unicode) breezy.tests.test__dirstate_helpers.TestLtByDirs.test_cmp_unicode_not_allowed breezy.tests.test__dirstate_helpers.TestLtPathByDirblock.test_unicode_not_allowed breezy.tests.test__dirstate_helpers.TestMemRChr.test_missing breezy.tests.test__dirstate_helpers.TestMemRChr.test_multiple breezy.tests.test__dirstate_helpers.TestMemRChr.test_single_entry breezy.tests.test__dirstate_helpers.TestMemRChr.test_with_nulls breezy.tests.test__dirstate_helpers.TestPackStat.test_ancient_ctime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_ancient_mtime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_distant_ctime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_distant_mtime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_fractional_ctime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_fractional_mtime(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_giant_inode(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_giant_size(dirstate_Python) breezy.tests.test__dirstate_helpers.TestPackStat.test_negative_dev(dirstate_Python) breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test_bisect_dirblock breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test__bisect_path_left breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test__bisect_path_right breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test_lt_by_dirs breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test_process_entry breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test__read_dirblocks breezy.tests.test__dirstate_helpers.TestUsingCompiledIfAvailable.test_update_entry breezy.tests.test_dirstate.TestDirStateManipulations.test_add_forbidden_names(unicode) breezy.tests.test_dirstate.TestDirStateOnFile.test_can_save_clean_on_file(unicode) breezy.tests.test_dirstate.TestDiscardMergeParents.test_discard_no_parents(unicode) breezy.tests.test_dirstate.TestErrors.test_dirstate_corrupt breezy.tests.test_dirstate.TestGetLines.test_iter_entries(unicode) breezy.tests.test_dirstate.TestSHA1Provider.test_sha1provider_is_an_interface breezy.tests.test_email_message.TestEmailMessage.test_empty_message breezy.tests.test_email_message.TestEmailMessage.test_multiple_destinations breezy.tests.test_email_message.TestEmailMessage.test_retrieving_headers breezy.tests.test_email_message.TestEmailMessage.test_setting_headers breezy.tests.test_eol_filters.TestEolFilters.test_to_crlf breezy.tests.test_eol_filters.TestEolFilters.test_to_lf breezy.tests.test_eol_filters.TestEolRulesSpecifications.test_eol_missing_altogether_is_ok breezy.tests.test_eol_filters.TestEolRulesSpecifications.test_exact_value breezy.tests.test_eol_filters.TestEolRulesSpecifications.test_other_known_values breezy.tests.test_eol_filters.TestEolRulesSpecifications.test_unknown_value breezy.tests.test_errors.TestErrorFormatting.test_cannot_bind_address breezy.tests.test_errors.TestErrorFormatting.test_mismatched_format_args breezy.tests.test_errors.TestErrorFormatting.test_missing_format_string breezy.tests.test_errors.TestErrorFormatting.test_transform_rename_failed breezy.tests.test_errors.TestErrors.test_bad_filename_encoding breezy.tests.test_errors.TestErrors.test_bzrerror_from_literal_string breezy.tests.test_errors.TestErrors.test_check_error breezy.tests.test_errors.TestErrors.test_container_has_excess_data breezy.tests.test_errors.TestErrors.test_duplicate_file_id breezy.tests.test_errors.TestErrors.test_duplicate_help_prefix breezy.tests.test_errors.TestErrors.test_duplicate_record_name_error breezy.tests.test_errors.TestErrors.test_error_from_smart_server breezy.tests.test_errors.TestErrors.test_ghost_revisions_have_no_revno breezy.tests.test_errors.TestErrors.test_immortal_pending_deletion_message breezy.tests.test_errors.TestErrors.test_incompatibleVersion breezy.tests.test_errors.TestErrors.test_inconsistent_delta breezy.tests.test_errors.TestErrors.test_inconsistent_delta_delta breezy.tests.test_errors.TestErrors.test_in_process_transport breezy.tests.test_errors.TestErrors.test_invalid_http_range breezy.tests.test_errors.TestErrors.test_invalid_range breezy.tests.test_errors.TestErrors.test_invalid_record breezy.tests.test_errors.TestErrors.test_invalid_url_join breezy.tests.test_errors.TestErrors.test_inventory_modified breezy.tests.test_errors.TestErrors.test_jail_break breezy.tests.test_errors.TestErrors.test_lock_active breezy.tests.test_errors.TestErrors.test_lock_corrupt breezy.tests.test_errors.TestErrors.test_lock_failed breezy.tests.test_errors.TestErrors.test_medium_not_connected breezy.tests.test_errors.TestErrors.test_no_smart_medium breezy.tests.test_errors.TestErrors.test_no_such_id breezy.tests.test_errors.TestErrors.test_no_such_revision_in_tree breezy.tests.test_errors.TestErrors.test_not_branch_bzrdir_with_recursive_not_branch_error breezy.tests.test_errors.TestErrors.test_not_branch_no_args breezy.tests.test_errors.TestErrors.test_not_stacked breezy.tests.test_errors.TestErrors.test_not_write_locked breezy.tests.test_errors.TestErrors.test_read_error breezy.tests.test_errors.TestErrors.test_reading_completed breezy.tests.test_errors.TestErrors.test_recursive_bind breezy.tests.test_errors.TestErrors.test_repository_data_stream_error breezy.tests.test_errors.TestErrors.test_retry_with_new_packs breezy.tests.test_errors.TestErrors.test_smart_message_handler_error breezy.tests.test_errors.TestErrors.test_socket_connection_error breezy.tests.test_errors.TestErrors.test_target_not_branch breezy.tests.test_errors.TestErrors.test_tip_change_rejected breezy.tests.test_errors.TestErrors.test_too_many_concurrent_requests breezy.tests.test_errors.TestErrors.test_transport_not_possible breezy.tests.test_errors.TestErrors.test_unable_create_symlink breezy.tests.test_errors.TestErrors.test_unable_encode_path breezy.tests.test_errors.TestErrors.test_unavailable_representation breezy.tests.test_errors.TestErrors.test_unexpected_end_of_container breezy.tests.test_errors.TestErrors.test_unexpected_smart_server_response breezy.tests.test_errors.TestErrors.test_unknown_container_format breezy.tests.test_errors.TestErrors.test_unknown_format breezy.tests.test_errors.TestErrors.test_unknown_record_type breezy.tests.test_errors.TestErrors.test_unresumable_write_group breezy.tests.test_errors.TestErrors.test_unstackable_location breezy.tests.test_errors.TestErrors.test_unstackable_repository_format breezy.tests.test_errors.TestErrors.test_unsuspendable_write_group breezy.tests.test_errors.TestErrors.test_untranslateable_error_from_smart_server breezy.tests.test_errors.TestErrors.test_up_to_date breezy.tests.test_errors.TestErrors.test_writing_completed breezy.tests.test_errors.TestErrors.test_writing_not_completed breezy.tests.test_errors.TestErrorsUsingTransport.test_corrupt_repository breezy.tests.test_errors.TestErrorsUsingTransport.test_no_repo breezy.tests.test_errors.TestErrorsUsingTransport.test_not_branch_bzrdir_without_repo breezy.tests.test_errors.TestErrorsUsingTransport.test_not_branch_bzrdir_with_repo breezy.tests.test_errors.TestErrorsUsingTransport.test_not_branch_laziness breezy.tests.test_export_pot.TestEscape.test_complex_escape breezy.tests.test_export_pot.TestEscape.test_simple_escape breezy.tests.test_export_pot.TestModuleContext.test_from_class breezy.tests.test_export_pot.TestModuleContext.test_from_class_missing breezy.tests.test_export_pot.TestModuleContext.test_from_string breezy.tests.test_export_pot.TestModuleContext.test___init__ breezy.tests.test_export_pot.TestNormalize.test_multi_lines breezy.tests.test_export_pot.TestNormalize.test_single_line breezy.tests.test_export_pot.TestParseSource.test_classes breezy.tests.test_export_pot.TestParseSource.test_classes_nested breezy.tests.test_export_pot.TestParseSource.test_strings_docstrings breezy.tests.test_export_pot.TestParseSource.test_strings_literals breezy.tests.test_export_pot.TestParseSource.test_strings_multiline breezy.tests.test_export.RootNameTests.test_root_name breezy.tests.test_export.TarExporterTests.test_xz_stdout breezy.tests.test_export.TestDirExport.test_empty breezy.tests.test_features.Test_CompatibilityFeature.test_does_thunk breezy.tests.test_features.Test_CompatibilityFeature.test_reports_correct_location breezy.tests.test_features.TestFeature.test_caching breezy.tests.test_features.TestFeature.test_default_str breezy.tests.test_features.TestFeature.test_named_str breezy.tests.test_features.TestModuleAvailableFeature.test_available_module breezy.tests.test_features.TestModuleAvailableFeature.test_unavailable_module breezy.tests.test_features.TestPluginLoadedFeature.test_available_plugin breezy.tests.test_features.TestPluginLoadedFeature.test_unavailable_plugin breezy.tests.test_features.TestUnavailableFeature.test_access_feature breezy.tests.test_features.TestUnicodeFilenameFeature.test_probe_passes breezy.tests.test_fetch.TestFetch.test_fetch_self breezy.tests.test_fifo_cache.TestFIFOCache.test_add_is_present breezy.tests.test_fifo_cache.TestFIFOCache.test_add_maintains_fifo breezy.tests.test_fifo_cache.TestFIFOCache.test_cache_size breezy.tests.test_fifo_cache.TestFIFOCache.test_cleanup_at_deconstruct breezy.tests.test_fifo_cache.TestFIFOCache.test_cleanup_funcs breezy.tests.test_fifo_cache.TestFIFOCache.test_clear breezy.tests.test_fifo_cache.TestFIFOCache.test_copy_not_implemented breezy.tests.test_fifo_cache.TestFIFOCache.test_default_after_cleanup_count breezy.tests.test_fifo_cache.TestFIFOCache.test_missing breezy.tests.test_fifo_cache.TestFIFOCache.test_popitem_not_implemeted breezy.tests.test_fifo_cache.TestFIFOCache.test_pop_not_implemeted breezy.tests.test_fifo_cache.TestFIFOCache.test_resize_larger breezy.tests.test_fifo_cache.TestFIFOCache.test_resize_smaller breezy.tests.test_fifo_cache.TestFIFOCache.test_setdefault breezy.tests.test_fifo_cache.TestFIFOCache.test_update breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_adding_large_key breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_add_is_present breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_add_maintains_fifo breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_missing breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_resize_larger breezy.tests.test_fifo_cache.TestFIFOSizeCache.test_resize_smaller breezy.tests.test_filters.TestContentFilterContext.test_empty_filter_context breezy.tests.test_filters.TestContentFilterContext.test_filter_context_with_path breezy.tests.test_filters.TestFilteredOutput.test_filtered_output_bytes breezy.tests.test_filters.TestFilterStackMaps.test_filter_stack_maps breezy.tests.test_filters.TestFilterStackMaps.test_get_filter_stack_for breezy.tests.test_foreign.ForeignRevisionTests.test_create breezy.tests.test_foreign.ForeignVcsRegistryTests.test_parse_revision_id breezy.tests.test_foreign.ForeignVcsRegistryTests.test_parse_revision_id_no_dash breezy.tests.test_foreign.ForeignVcsRegistryTests.test_parse_revision_id_unknown_mapping breezy.tests.test_ftp_transport.TestFTPErrorTranslation.test_translate_directory_not_empty breezy.tests.test_ftp_transport.TestFTPTestServer.test_basic_exists breezy.tests.test_ftp_transport.TestFTPTestServer.test__reconnect breezy.tests.test_ftp_transport.TestFTPTestServerUI.test_empty_password breezy.tests.test_ftp_transport.TestFTPTestServerUI.test_no_prompt_for_password_when_using_auth_config breezy.tests.test_ftp_transport.TestFTPTestServerUI.test_no_prompt_for_username breezy.tests.test_ftp_transport.TestFTPTestServerUI.test_prompt_for_password breezy.tests.test_generate_ids.TestFileIds.test__next_id_suffix_sets_suffix breezy.tests.test_globbing.TestExceptionGlobster.test_exclusion_order breezy.tests.test_globbing.TestExceptionGlobster.test_exclusion_patterns breezy.tests.test_globbing.TestGlobster.test_asterisk breezy.tests.test_globbing.TestGlobster.test_backslash breezy.tests.test_globbing.TestGlobster.test_bad_pattern breezy.tests.test_globbing.TestGlobster.test_char_group_alnum breezy.tests.test_globbing.TestGlobster.test_char_group_ascii breezy.tests.test_globbing.TestGlobster.test_char_group_blank breezy.tests.test_globbing.TestGlobster.test_char_group_cntrl breezy.tests.test_globbing.TestGlobster.test_char_group_digit breezy.tests.test_globbing.TestGlobster.test_char_group_range breezy.tests.test_globbing.TestGlobster.test_char_group_space breezy.tests.test_globbing.TestGlobster.test_double_asterisk breezy.tests.test_globbing.TestGlobster.test_end_anchor breezy.tests.test_globbing.TestGlobster.test_large_globset breezy.tests.test_globbing.TestGlobster.test_leading_asterisk_dot breezy.tests.test_globbing.TestGlobster.test_leading_dot_slash breezy.tests.test_globbing.TestGlobster.test_mixed_globs breezy.tests.test_globbing.TestGlobster.test_question_mark breezy.tests.test_globbing.TestGlobster.test_regex breezy.tests.test_globbing.TestGlobster.test_trailing_slash breezy.tests.test_globbing.TestNormalizePattern.test_backslashes breezy.tests.test_globbing.TestNormalizePattern.test_forward_slashes breezy.tests.test_globbing.TestNormalizePattern.test_mixed_slashes breezy.tests.test_globbing.TestOrderedGlobster.test_ordered_globs breezy.tests.test_gpg.TestDisabled.test_sign breezy.tests.test_gpg.TestDisabled.test_verify breezy.tests.test_graph.TestCachingParentsProviderExtras.test_cached breezy.tests.test_graph.TestCachingParentsProviderExtras.test_cache_extras breezy.tests.test_graph.TestCachingParentsProviderExtras.test_cache_initially_empty breezy.tests.test_graph.TestCachingParentsProviderExtras.test_cache_misses breezy.tests.test_graph.TestCachingParentsProviderExtras.test_disable_cache_clears_cache breezy.tests.test_graph.TestCachingParentsProviderExtras.test_enable_cache_raises breezy.tests.test_graph.TestCachingParentsProviderExtras.test_extras_using_cached breezy.tests.test_graph.TestCachingParentsProviderExtras.test_no_cache_misses breezy.tests.test_graph.TestCachingParentsProviderExtras.test_uncached breezy.tests.test_graph.TestCachingParentsProvider.test_get_cached_parent_map breezy.tests.test_graph.TestCachingParentsProvider.test_get_parent_map breezy.tests.test_graph.TestCachingParentsProvider.test_get_parent_map_mixed breezy.tests.test_graph.TestCachingParentsProvider.test_get_parent_map_not_present breezy.tests.test_graph.TestCachingParentsProvider.test_get_parent_map_repeated breezy.tests.test_graph.TestCachingParentsProvider.test_note_missing_key breezy.tests.test_graph.TestCollapseLinearRegions.test_collapse_chain breezy.tests.test_graph.TestCollapseLinearRegions.test_collapse_nothing breezy.tests.test_graph.TestCollapseLinearRegions.test_collapse_with_multiple_children breezy.tests.test_graph.TestFindDescendants.test_find_descendants_rev1_rev3 breezy.tests.test_graph.TestFindDescendants.test_find_descendants_rev1_rev4 breezy.tests.test_graph.TestFindDescendants.test_find_descendants_rev2a_rev4 breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_f breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_g breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_h breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_rev2a breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_rev2b breezy.tests.test_graph.TestFindLefthandMerger.test_find_lefthand_merger_rev4 breezy.tests.test_graph.TestFindMergeOrder.test_ancestors breezy.tests.test_graph.TestFindMergeOrder.test_parents breezy.tests.test_graph.TestFindMergeOrder.test_shortcut_after_one_ancestor breezy.tests.test_graph.TestFindMergeOrder.test_shortcut_one_ancestor breezy.tests.test_graph.TestFindUniqueAncestors.test_complex_shortcut breezy.tests.test_graph.TestFindUniqueAncestors.test_complex_shortcut2 breezy.tests.test_graph.TestFindUniqueAncestors.test_empty_set breezy.tests.test_graph.TestFindUniqueAncestors.test_in_ancestry breezy.tests.test_graph.TestFindUniqueAncestors.test_minimal_ancestry breezy.tests.test_graph.TestFindUniqueAncestors.test_multiple_interesting_unique breezy.tests.test_graph.TestFindUniqueAncestors.test_multiple_revisions breezy.tests.test_graph.TestFindUniqueAncestors.test_racing_shortcuts breezy.tests.test_graph.TestFindUniqueAncestors.test_single_node breezy.tests.test_graph.TestGetChildMap.test_get_child_map breezy.tests.test_graph.TestGraphFindDistanceToNull.test_ancestor_is_ghost breezy.tests.test_graph.TestGraphFindDistanceToNull.test_known_in_ancestry breezy.tests.test_graph.TestGraphFindDistanceToNull.test_known_in_ancestry_limits breezy.tests.test_graph.TestGraphFindDistanceToNull.test_nothing_known breezy.tests.test_graph.TestGraphFindDistanceToNull.test_rev_is_ghost breezy.tests.test_graph.TestGraphFindDistanceToNull.test_target_is_ancestor breezy.tests.test_graph.TestGraphFindDistanceToNull.test_target_is_ancestor_limits breezy.tests.test_graph.TestGraphFindDistanceToNull.test_target_parallel_to_known_limits breezy.tests.test_graph.TestGraph.test_breadth_first_change_search breezy.tests.test_graph.TestGraph.test_breadth_first_get_result_excludes_current_pending breezy.tests.test_graph.TestGraph.test_breadth_first_get_result_ghosts_are_excluded breezy.tests.test_graph.TestGraph.test_breadth_first_get_result_starting_a_ghost_ghost_is_excluded breezy.tests.test_graph.TestGraph.test_breadth_first_get_result_starts_stops breezy.tests.test_graph.TestGraph.test_breadth_first_revision_count_includes_NULL_REVISION breezy.tests.test_graph.TestGraph.test_breadth_first_search_change_next_to_next_with_ghosts breezy.tests.test_graph.TestGraph.test_breadth_first_search_deep_ghosts breezy.tests.test_graph.TestGraph.test_breadth_first_search_get_result_after_StopIteration breezy.tests.test_graph.TestGraph.test_breadth_first_search_start_ghosts breezy.tests.test_graph.TestGraph.test_breadth_first_stop_searching_late breezy.tests.test_graph.TestGraph.test_breadth_first_stop_searching_not_queried breezy.tests.test_graph.TestGraph.test_filter_candidate_lca breezy.tests.test_graph.TestGraph.test_heads_criss_cross breezy.tests.test_graph.TestGraph.test_heads_limits_search breezy.tests.test_graph.TestGraph.test_heads_limits_search_assymetric breezy.tests.test_graph.TestGraph.test_heads_limits_search_common_search_must_continue breezy.tests.test_graph.TestGraph.test_heads_one breezy.tests.test_graph.TestGraph.test_heads_shortcut breezy.tests.test_graph.TestGraph.test_heads_two_heads breezy.tests.test_graph.TestGraph.test_is_ancestor_boundary breezy.tests.test_graph.TestGraph.test_iter_ancestry breezy.tests.test_graph.TestGraph.test_iter_ancestry_with_ghost breezy.tests.test_graph.TestGraph.test_iter_topo_order breezy.tests.test_graph.TestGraph.test_lca breezy.tests.test_graph.TestGraph.test_lca_criss_cross breezy.tests.test_graph.TestGraph.test_lca_double_shortcut breezy.tests.test_graph.TestGraph.test_lca_shortcut breezy.tests.test_graph.TestGraph.test_lefthand_distance_ghosts breezy.tests.test_graph.TestGraph.test_lefthand_distance_smoke breezy.tests.test_graph.TestGraph.test_no_unique_lca breezy.tests.test_graph.TestGraph.test_recursive_unique_lca breezy.tests.test_graph.TestGraph.test__remove_simple_descendants breezy.tests.test_graph.TestGraph.test__remove_simple_descendants_chain breezy.tests.test_graph.TestGraph.test__remove_simple_descendants_disjoint breezy.tests.test_graph.TestGraph.test__remove_simple_descendants_siblings breezy.tests.test_graph.TestGraph.test_unique_lca_criss_cross breezy.tests.test_graph.TestGraph.test_unique_lca_null_revision breezy.tests.test_graph.TestGraph.test_unique_lca_null_revision2 breezy.tests.test_graph.TestGraphThunkIdsToKeys.test_add_node breezy.tests.test_graph.TestGraphThunkIdsToKeys.test_heads breezy.tests.test_graph.TestGraphThunkIdsToKeys.test_merge_sort breezy.tests.test_graph.TestStackedParentsProvider.test_handles_no_get_cached_parent_map breezy.tests.test_graph.TestStackedParentsProvider.test_query_order breezy.tests.test_graph.TestStackedParentsProvider.test_stacked_parents_provider breezy.tests.test_graph.TestStackedParentsProvider.test_stacked_parents_provider_overlapping breezy.tests.test_groupcompress.TestAllGroupCompressors.test_empty_content(python) breezy.tests.test_groupcompress.TestAllGroupCompressors.test_empty_delta(python) breezy.tests.test_groupcompress.TestAllGroupCompressors.test_extract_from_compressor(python) breezy.tests.test_groupcompress.TestAllGroupCompressors.test_one_nosha_delta(python) breezy.tests.test_groupcompress.TestAllGroupCompressors.test_pop_last(python) breezy.tests.test__groupcompress.TestBase128Int.test_decode(python) breezy.tests.test__groupcompress.TestBase128Int.test_decode_with_trailing_bytes(python) breezy.tests.test__groupcompress.TestBase128Int.test_encode(python) breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_add_key_cached_read_memo breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_add_key_duplicate_read_memo breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_add_key_new_read_memo breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_yield_factories_calls_get_blocks breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_yield_factories_empty breezy.tests.test_groupcompress.Test_BatchingBlockFetcher.test_yield_factories_flushing breezy.tests.test__groupcompress.TestCopyInstruction.test_decode breezy.tests.test__groupcompress.TestCopyInstruction.test_decode_no_length breezy.tests.test__groupcompress.TestCopyInstruction.test_decode_no_offset breezy.tests.test__groupcompress.TestCopyInstruction.test_decode_not_start breezy.tests.test__groupcompress.TestCopyInstruction.test_encode breezy.tests.test__groupcompress.TestCopyInstruction.test_encode_no_length breezy.tests.test__groupcompress.TestCopyInstruction.test_encode_no_offset breezy.tests.test__groupcompress.TestDeltaIndex.test_add_source_max_bytes_to_index breezy.tests.test__groupcompress.TestDeltaIndex.test_delta_against_multiple_sources breezy.tests.test__groupcompress.TestDeltaIndex.test_delta_with_delta_bytes breezy.tests.test__groupcompress.TestDeltaIndex.test_delta_with_offsets breezy.tests.test__groupcompress.TestDeltaIndex.test__dump_index_simple breezy.tests.test__groupcompress.TestDeltaIndex.test__dump_index_two_sources breezy.tests.test__groupcompress.TestDeltaIndex.test__dump_no_index breezy.tests.test__groupcompress.TestDeltaIndex.test_first_add_source_doesnt_index_until_make_delta breezy.tests.test__groupcompress.TestDeltaIndex.test_make_delta breezy.tests.test__groupcompress.TestDeltaIndex.test_repr breezy.tests.test__groupcompress.TestDeltaIndex.test_second_add_source_triggers_make_index breezy.tests.test_groupcompress.Test_GCBuildDetails.test_acts_like_tuple breezy.tests.test_groupcompress.Test_GCBuildDetails.test__repr__ breezy.tests.test_groupcompress.TestGroupCompressBlock.test__dump breezy.tests.test_groupcompress.TestGroupCompressBlock.test__ensure_all_content breezy.tests.test_groupcompress.TestGroupCompressBlock.test_from_bytes breezy.tests.test_groupcompress.TestGroupCompressBlock.test_from_empty_bytes breezy.tests.test_groupcompress.TestGroupCompressBlock.test_from_invalid breezy.tests.test_groupcompress.TestGroupCompressBlock.test_from_minimal_bytes breezy.tests.test_groupcompress.TestGroupCompressBlock.test_partial_decomp breezy.tests.test_groupcompress.TestGroupCompressBlock.test_to_bytes breezy.tests.test_groupcompress.TestGroupCompressBlock.test_to_chunks breezy.tests.test_groupcompress.TestGroupCompressConfig.test_max_bytes_to_index_bad_config breezy.tests.test_groupcompress.TestGroupCompressConfig.test_max_bytes_to_index_default breezy.tests.test_groupcompress.TestGroupCompressConfig.test_max_bytes_to_index_in_config breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_add_missing_noncompression_parent_unvalidated_index breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_clear_cache breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_get_record_stream_accesses_compressor_settings breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_get_record_stream_as_requested breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_get_record_stream_max_bytes_to_index_default breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_inconsistent_redundant_inserts_raises breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_inconsistent_redundant_inserts_warn breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test__insert_record_stream_no_reuse_block breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_insert_record_stream_packs_on_the_fly breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_insert_record_stream_reuses_blocks breezy.tests.test_groupcompress.TestGroupCompressVersionedFiles.test_track_external_parent_refs breezy.tests.test_groupcompress.TestLazyGroupCompress.test_check_is_well_utilized_all_keys breezy.tests.test_groupcompress.TestLazyGroupCompress.test_check_is_well_utilized_mixed_keys breezy.tests.test_groupcompress.TestLazyGroupCompress.test_check_is_well_utilized_partial_use breezy.tests.test_groupcompress.TestLazyGroupCompress.test__check_rebuild_middle breezy.tests.test_groupcompress.TestLazyGroupCompress.test__check_rebuild_no_changes breezy.tests.test_groupcompress.TestLazyGroupCompress.test__check_rebuild_only_one breezy.tests.test_groupcompress.TestLazyGroupCompress.test_from_bytes breezy.tests.test_groupcompress.TestLazyGroupCompress.test_get_fulltexts breezy.tests.test_groupcompress.TestLazyGroupCompress.test_manager_custom_compressor_settings breezy.tests.test_groupcompress.TestLazyGroupCompress.test_manager_default_compressor_settings breezy.tests.test_groupcompress.TestLazyGroupCompress.test__rebuild_handles_compressor_settings breezy.tests.test_groupcompress.TestLazyGroupCompress.test__wire_bytes breezy.tests.test_groupcompress.TestLazyGroupCompress.test__wire_bytes_no_keys breezy.tests.test__groupcompress.TestMakeAndApplyCompatible.test_direct(PP) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_apply_delta_is_typesafe(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_apply_delta(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_apply_delta_to_source_is_safe(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_apply_delta_to_source(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_make_delta_is_typesafe(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_make_delta(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_make_delta_with_large_copies(python) breezy.tests.test__groupcompress.TestMakeAndApplyDelta.test_make_noop_delta(python) breezy.tests.test_groupcompress.TestPyrexGroupCompressor.test_stats breezy.tests.test_groupcompress.TestPyrexGroupCompressor.test_three_nosha_delta breezy.tests.test_groupcompress.TestPyrexGroupCompressor.test_two_nosha_delta breezy.tests.test_groupcompress.TestPythonGroupCompressor.test_stats breezy.tests.test_groupcompress.TestPythonGroupCompressor.test_three_nosha_delta breezy.tests.test_groupcompress.TestPythonGroupCompressor.test_two_nosha_delta breezy.tests.test_hashcache.TestHashCache.test_hashcache_nonexistent_file breezy.tests.test_hashcache.TestHashCache.test_hashcache_not_file breezy.tests.test_hashcache.TestHashCache.test_hashcache_raise breezy.tests.test_help.TestCommandHelp.test_get_help_topic breezy.tests.test_help.TestCommandIndex.test_default_constructable breezy.tests.test_help.TestCommandIndex.test_get_topics_None breezy.tests.test_help.TestCommandIndex.test_get_topics_no_topic breezy.tests.test_help.TestCommandIndex.test_get_topics_rocks breezy.tests.test_help.TestCommandIndex.test_get_topic_with_prefix breezy.tests.test_help.TestCommandIndex.test_prefix breezy.tests.test_help.TestConfigOptionIndex.test_get_topics_None breezy.tests.test_help.TestConfigOptionIndex.test_get_topics_no_topic breezy.tests.test_help.TestConfigOptionIndex.test_get_topic_with_prefix breezy.tests.test_help.TestConfigOptionIndex.test_prefix breezy.tests.test_help.TestErrors.test_no_help_topic breezy.tests.test_help.TestHelpIndices.test_default_search_path breezy.tests.test_help.TestHelpIndices.test_search_calls_get_topic breezy.tests.test_help.TestHelpIndices.test_search_checks_for_duplicate_prefixes breezy.tests.test_help.TestHelpIndices.test_search_for_unknown_topic_raises breezy.tests.test_help.TestHelpIndices.test_search_returns_index_and_results breezy.tests.test_help.TestRegisteredTopic.test_contruct breezy.tests.test_help.TestRegisteredTopic.test_get_help_topic breezy.tests.test_help.TestTopicIndex.test_default_constructable breezy.tests.test_help.TestTopicIndex.test_get_topics_None breezy.tests.test_help.TestTopicIndex.test_get_topics_no_topic breezy.tests.test_help.TestTopicIndex.test_get_topics_topics breezy.tests.test_help.TestTopicIndex.test_prefix breezy.tests.test_hooks.TestErrors.test_unknown_hook breezy.tests.test_hooks.TestHookRegistry.test_items_are_reasonable_keys breezy.tests.test_hooks.TestHookRegistry.test_known_hooks_key_to_object breezy.tests.test_hooks.TestHookRegistry.test_known_hooks_key_to_parent_and_attribute breezy.tests.test_hooks.TestHooks.test_docs breezy.tests.test_hooks.TestHooks.test_install_lazy_named_hook breezy.tests.test_hooks.TestHooks.test_install_named_hook_and_retrieve_name breezy.tests.test_hooks.TestHooks.test_install_named_hook_appends_known_hook breezy.tests.test_hooks.TestHooks.test_install_named_hook_lazy breezy.tests.test_hooks.TestHooks.test_install_named_hook_lazy_old breezy.tests.test_hooks.TestHooks.test_install_named_hook_raises_unknown_hook breezy.tests.test_hooks.TestHooks.test_uninstall_multiple_named_hooks breezy.tests.test_hooks.TestHooks.test_uninstall_named_hook breezy.tests.test_hooks.TestHooks.test_uninstall_named_hook_old_style breezy.tests.test_hooks.TestHooks.test_uninstall_named_hook_raises_unknown_hook breezy.tests.test_hooks.TestHooks.test_uninstall_named_hook_unknown_callable breezy.tests.test_hooks.TestHooks.test_valid_lazy_hooks breezy.tests.test_hooks.TestHook.test_docs breezy.tests.test_hooks.TestHook.test_hook breezy.tests.test_hooks.TestHook.test___init__ breezy.tests.test_hooks.TestHook.test_lazy_hook breezy.tests.test_hooks.TestHook.test___repr breezy.tests.test_hooks.TestHook.test_uninstall breezy.tests.test_hooks.TestHook.test_uninstall_unknown breezy.tests.test_http_response.TestRangeFileVarious.test_range_syntax breezy.tests.test_http_response.TestRangeFileVarious.test_seek_whence breezy.tests.test_http_response.TestResponseFileIter.test_iter_empty breezy.tests.test_https_ca_bundle.TestGetCAPath.test_found_nothing breezy.tests.test_https_ca_bundle.TestGetCAPath.test_in_path breezy.tests.test_https_urllib.CaCertsConfigTests.test_default_exists breezy.tests.test_https_urllib.CaCertsConfigTests.test_specified breezy.tests.test_https_urllib.CaCertsConfigTests.test_specified_doesnt_exist breezy.tests.test_https_urllib.MatchHostnameTests.test_common_name breezy.tests.test_https_urllib.MatchHostnameTests.test_no_certificate breezy.tests.test_https_urllib.MatchHostnameTests.test_no_valid_attributes breezy.tests.test_https_urllib.MatchHostnameTests.test_wildcards_in_cert breezy.tests.test_http.TestAuthHeader.test_basic_extract_realm breezy.tests.test_http.TestAuthHeader.test_basic_header breezy.tests.test_http.TestAuthHeader.test_digest_header breezy.tests.test_http.TestAuthHeader.test_empty_header breezy.tests.test_http.TestAuthHeader.test_negotiate_header breezy.tests.test_http.TestBadStatusServer.test_http_get(urllib,HTTP/1.0) breezy.tests.test_http.TestBadStatusServer.test_http_has(urllib,HTTP/1.0) breezy.tests.test_http.TestHttpProxyWhiteBox.test_evaluate_proxy_bypass_false breezy.tests.test_http.TestHTTPRangeParsing.test_invalid_ranges breezy.tests.test_http.TestHTTPRangeParsing.test_range_without_end breezy.tests.test_http.TestHTTPRangeParsing.test_simple_range breezy.tests.test_http.TestHTTPRangeParsing.test_tail breezy.tests.test_http.TestHTTPRangeParsing.test_tail_bigger_than_file breezy.tests.test_http.TestHTTPServer.test_create_http_server_force_one_one breezy.tests.test_http.TestHTTPServer.test_create_http_server_force_one_zero breezy.tests.test_http.TestHTTPServer.test_create_http_server_one_one breezy.tests.test_http.TestHTTPServer.test_create_http_server_one_zero breezy.tests.test_http.TestHTTPServer.test_force_invalid_protocol breezy.tests.test_http.TestHTTPServer.test_invalid_protocol breezy.tests.test_http.TestHTTPServer.test_server_start_and_stop breezy.tests.test_http.TestHttpTransportRegistration.test_http_registered(urllib) breezy.tests.test_http.TestHttpTransportUrls.test_http_impl_urls(urllib) breezy.tests.test_http.TestHttpTransportUrls.test_invalid_http_urls(urllib) breezy.tests.test_http.TestInvalidStatusServer.test_http_get(urllib,HTTP/1.0) breezy.tests.test_http.TestInvalidStatusServer.test_http_has(urllib,HTTP/1.0) breezy.tests.test_http.TestRangeHeader.test_range_header_mixed breezy.tests.test_http.TestRangeHeader.test_range_header_multi breezy.tests.test_http.TestRangeHeader.test_range_header_single breezy.tests.test_http.TestRangeHeader.test_range_header_tail breezy.tests.test_http.TestRecordingServer.test_create breezy.tests.test_http.TestRecordingServer.test_setUp_and_stop breezy.tests.test_http.Test_redirected_to.test_redirected_to_different_host_same_user(urllib) breezy.tests.test_http.Test_redirected_to.test_redirected_to_host(urllib) breezy.tests.test_http.Test_redirected_to.test_redirected_to_same_host_different_protocol(urllib) breezy.tests.test_http.Test_redirected_to.test_redirected_to_same_host_sibling_protocol(urllib) breezy.tests.test_http.Test_redirected_to.test_redirected_to_same_host_specific_implementation(urllib) breezy.tests.test_i18n.TestInstall.test_custom_languages breezy.tests.test_i18n.TestInstall.test_disable_i18n breezy.tests.test_i18n.TestInstall.test_no_env_variables breezy.tests.test_identitymap.TestIdentityMap.test_add_weave breezy.tests.test_identitymap.TestIdentityMap.test_construct breezy.tests.test_identitymap.TestIdentityMap.test_double_add_weave breezy.tests.test_identitymap.TestIdentityMap.test_remove_object breezy.tests.test_identitymap.TestIdentityMap.test_symbols breezy.tests.test_identitymap.TestNullIdentityMap.test_add_weave breezy.tests.test_identitymap.TestNullIdentityMap.test_construct breezy.tests.test_identitymap.TestNullIdentityMap.test_double_add_weave breezy.tests.test_identitymap.TestNullIdentityMap.test_null_identity_map_has_no_remove breezy.tests.test_identitymap.TestNullIdentityMap.test_symbols breezy.tests.test_ignores.TestParseIgnoreFile.test_parse_empty breezy.tests.test_ignores.TestRuntimeIgnores.test_add breezy.tests.test_ignores.TestRuntimeIgnores.test_add_duplicate breezy.tests.test_ignores.TestUserIgnores.test_use_empty breezy.tests.test_index.ErrorTests.test_bad_index_data breezy.tests.test_index.ErrorTests.test_bad_index_duplicate_key breezy.tests.test_index.ErrorTests.test_bad_index_format_signature breezy.tests.test_index.ErrorTests.test_bad_index_key breezy.tests.test_index.ErrorTests.test_bad_index_options breezy.tests.test_index.ErrorTests.test_bad_index_value breezy.tests.test_index.TestCombinedGraphIndex.test_find_ancestors_no_indexes breezy.tests.test_index.TestCombinedGraphIndex.test_iter_all_entries_empty breezy.tests.test_index.TestCombinedGraphIndex.test_iter_missing_entry_empty breezy.tests.test_index.TestCombinedGraphIndex.test_iter_nothing_children_empty breezy.tests.test_index.TestCombinedGraphIndex.test_iter_nothing_empty breezy.tests.test_index.TestCombinedGraphIndex.test_open_missing_index_no_error breezy.tests.test_index.TestCombinedGraphIndex.test_validate_empty breezy.tests.test_index.TestGraphIndexBuilder.test_clear_cache breezy.tests.test_index.TestGraphIndexBuilder.test_set_optimize breezy.tests.test_index.TestGraphIndexPrefixAdapter.test_construct breezy.tests.test_index.TestGraphIndexPrefixAdapter.test_construct_with_callback breezy.tests.test_index.TestGraphIndexPrefixAdapter.test_validate breezy.tests.test_index.TestGraphIndex.test_clear_cache breezy.tests.test_index.TestGraphIndex.test_iter_nothing_empty breezy.tests.test_index.TestGraphIndex.test_open_sets_parsed_map_empty breezy.tests.test_index.TestGraphIndex.test_supports_unlimited_cache breezy.tests.test_index.TestInMemoryGraphIndex.test_iter_all_entries_empty breezy.tests.test_index.TestInMemoryGraphIndex.test_iter_missing_entry_empty breezy.tests.test_index.TestInMemoryGraphIndex.test_iter_nothing_empty breezy.tests.test_index.TestInMemoryGraphIndex.test_key_count_empty breezy.tests.test_index.TestInMemoryGraphIndex.test_validate_empty breezy.tests.test_info.TestInfo.test_gather_location_bound breezy.tests.test_info.TestInfo.test_gather_location_controldir_only breezy.tests.test_info.TestInfo.test_gather_location_repo breezy.tests.test_info.TestInfo.test_gather_location_repo_branch breezy.tests.test_info.TestInfo.test_gather_location_standalone breezy.tests.test_info.TestInfo.test_location_list breezy.tests.test_inventory_delta.TestContent.test_dir breezy.tests.test_inventory_delta.TestContent.test_file_0_short_sha breezy.tests.test_inventory_delta.TestContent.test_file_10_foo breezy.tests.test_inventory_delta.TestContent.test_file_executable breezy.tests.test_inventory_delta.TestContent.test_file_without_sha1 breezy.tests.test_inventory_delta.TestContent.test_file_without_size breezy.tests.test_inventory_delta.TestContent.test_link_empty_target breezy.tests.test_inventory_delta.TestContent.test_link_no_target breezy.tests.test_inventory_delta.TestContent.test_link_space_target breezy.tests.test_inventory_delta.TestContent.test_link_unicode_target breezy.tests.test_inventory_delta.TestContent.test_reference_no_reference breezy.tests.test_inventory_delta.TestContent.test_reference_null breezy.tests.test_inventory_delta.TestContent.test_reference_revision breezy.tests.test_inventory_delta.TestDeserialization.test_parse_bad_format breezy.tests.test_inventory_delta.TestDeserialization.test_parse_delete breezy.tests.test_inventory_delta.TestDeserialization.test_parse_duplicate_key_errors breezy.tests.test_inventory_delta.TestDeserialization.test_parse_invalid_newpath breezy.tests.test_inventory_delta.TestDeserialization.test_parse_invalid_oldpath breezy.tests.test_inventory_delta.TestDeserialization.test_parse_last_line_not_empty breezy.tests.test_inventory_delta.TestDeserialization.test_parse_new_file breezy.tests.test_inventory_delta.TestDeserialization.test_parse_no_bytes breezy.tests.test_inventory_delta.TestDeserialization.test_parse_no_parent breezy.tests.test_inventory_delta.TestDeserialization.test_parse_no_version breezy.tests.test_inventory_delta.TestDeserialization.test_parse_special_revid_not_valid_last_mod breezy.tests.test_inventory_delta.TestDeserialization.test_parse_tree_when_disabled breezy.tests.test_inventory_delta.TestDeserialization.test_parse_tree_when_header_disallows breezy.tests.test_inventory_delta.TestDeserialization.test_parse_unique_root_id_root_versioned_disabled breezy.tests.test_inventory_delta.TestDeserialization.test_parse_unversioned_root_versioning_enabled breezy.tests.test_inventory_delta.TestDeserialization.test_parse_versioned_root_only breezy.tests.test_inventory_delta.TestDeserialization.test_parse_versioned_root_versioned_disabled breezy.tests.test_inventory_delta.TestDeserialization.test_parse_versioned_root_when_disabled breezy.tests.test_inventory_delta.TestDeserialization.test_parse_versioned_root_when_header_disallows breezy.tests.test_inventory_delta.TestSerialization.test_empty_delta_to_lines breezy.tests.test_inventory_delta.TestSerialization.test_nonrichroot_versioned_root_errors breezy.tests.test_inventory_delta.TestSerialization.test_richroot_unversioned_root_errors breezy.tests.test_inventory_delta.TestSerialization.test_root_only_to_lines breezy.tests.test_inventory_delta.TestSerialization.test_to_inventory_has_tree_not_meant_to breezy.tests.test_inventory_delta.TestSerialization.test_to_inventory_root_id_not_versioned breezy.tests.test_inventory_delta.TestSerialization.test_to_inventory_root_id_versioned_not_permitted breezy.tests.test_inventory_delta.TestSerialization.test_to_inventory_torture breezy.tests.test_inventory_delta.TestSerialization.test_tree_reference_disabled breezy.tests.test_inventory_delta.TestSerialization.test_tree_reference_enabled breezy.tests.test_inventory_delta.TestSerialization.test_unknown_kind_errors breezy.tests.test_inventory_delta.TestSerialization.test_unversioned_non_root_errors breezy.tests.test_inventory_delta.TestSerialization.test_unversioned_root breezy.tests.test_inv.TestCHKInventory.test___getitem__ breezy.tests.test_inv.TestDeltaApplication.test_add_existing_id_new_path(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_add_existing_id_new_path(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_add_existing_id_new_path(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_add_existing_id_new_path(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_add_file(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_add_new_id_existing_path(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_add_new_id_existing_path(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_add_new_id_existing_path(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_add_new_id_existing_path(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_empty_delta(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormat2a) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormat2aSubtree) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormat7) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnit1) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnit3) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnit4) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack1) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack3) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack4) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack5) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack5RichRoot) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack6) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatKnitPack6RichRoot) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(RepositoryFormatPackDevelopment2Subtree) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat2.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat2.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat3.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat3.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat4.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat5.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_entries_for_empty_inventory(WorkingTreeFormat6.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormat2a) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormat2aSubtree) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormat7) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnit1) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnit3) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnit4) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack1) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack3) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack4) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack5) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack5RichRoot) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack5RichRootBroken) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack6) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatKnitPack6RichRoot) breezy.tests.test_inv.TestDeltaApplication.test_is_root(RepositoryFormatPackDevelopment2Subtree) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat2.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat2.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat3.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat3.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat4.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat5.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_is_root(WorkingTreeFormat6.update_basis_by_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_id_entry_id(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_id_entry_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_id_entry_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_id_entry_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_entry_None(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_entry_None(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_entry_None(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_entry_None(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_None_entry(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_None_entry(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_None_entry(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_mismatched_new_path_None_entry(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_new_parent_path_has_wrong_id(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_new_parent_path_has_wrong_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_new_parent_path_has_wrong_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_new_parent_path_has_wrong_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_None_file_id(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_None_file_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_None_file_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_None_file_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_for_other_id(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_for_other_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_for_other_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_for_other_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_wrong(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_wrong(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_wrong(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_old_parent_path_is_wrong(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_missing(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_missing(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_missing(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_missing(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_not_directory(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_not_directory(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_not_directory(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_parent_is_not_directory(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_remove_dir_leaving_dangling_child(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_remove_dir_leaving_dangling_child(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_remove_dir_leaving_dangling_child(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_remove_dir_leaving_dangling_child(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_remove_file(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_renamed_dir_with_renamed_child(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_rename_dir(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_rename_file(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_repeated_file_id(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_repeated_file_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_file_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_file_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_new_path(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_repeated_new_path(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_new_path(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_new_path(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_old_path(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_repeated_old_path(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_old_path(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_repeated_old_path(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_replaced_at_new_path(Inventory) breezy.tests.test_inv.TestDeltaApplication.test_unicode_file_id(WorkingTreeFormat4.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_unicode_file_id(WorkingTreeFormat5.apply_inventory_delta) breezy.tests.test_inv.TestDeltaApplication.test_unicode_file_id(WorkingTreeFormat6.apply_inventory_delta) breezy.tests.test_inv.TestDescribeChanges.test_describe_change breezy.tests.test_inv.TestInventoryEntry.test_dir_detect_changes breezy.tests.test_inv.TestInventoryEntry.test_directory_has_text breezy.tests.test_inv.TestInventoryEntry.test_dir_kind_character breezy.tests.test_inv.TestInventoryEntry.test_file_detect_changes breezy.tests.test_inv.TestInventoryEntry.test_file_has_text breezy.tests.test_inv.TestInventoryEntry.test_file_kind_character breezy.tests.test_inv.TestInventoryEntry.test_link_has_text breezy.tests.test_inv.TestInventoryEntry.test_link_kind_character breezy.tests.test_inv.TestInventoryEntry.test_make_entry breezy.tests.test_inv.TestInventoryEntry.test_make_entry_non_normalized breezy.tests.test_inv.TestInventoryEntry.test_symlink_detect_changes breezy.tests.test_inv.TestInventoryUpdates.test_add_path breezy.tests.test_inv.TestInventoryUpdates.test_add_path_of_root breezy.tests.test_inv.TestInventoryUpdates.test_add_recursive breezy.tests.test_inv.TestInventoryUpdates.test_copy_empty breezy.tests.test_inv.TestInventoryUpdates.test_create_tree_reference breezy.tests.test_inv.TestInventoryUpdates.test_creation_from_root_id breezy.tests.test_inv.TestMutableInventoryFromTree.test_empty breezy.tests.test_knit.ErrorTests.test_knit_data_stream_incompatible breezy.tests.test_knit.ErrorTests.test_knit_data_stream_unknown breezy.tests.test_knit.ErrorTests.test_knit_header_error breezy.tests.test_knit.ErrorTests.test_knit_index_unknown_method breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_add_versions breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_add_versions_random_id_is_accepted breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_corrupted_parent breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_corrupted_parent_in_list breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_create_file breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_delay_create_and_add_versions breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_get_method breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_get_options breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_get_parent_map breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_get_position breezy.tests.test_knit.LowLevelKnitIndexTests_c.test__get_total_build_size breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_impossible_parent breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_invalid_position breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_invalid_size breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_keys breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_compressed_parents breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_corrupted_header breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_duplicate_entries breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_ignore_corrupted_lines breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_utf8_parents breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_read_utf8_version_id breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_scan_unvalidated_index_not_implemented breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_short_line breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_skip_incomplete_record breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_trailing_characters breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_write_utf8_parents breezy.tests.test_knit.LowLevelKnitIndexTests_c.test_write_utf8_version_id breezy.tests.test_knit.LowLevelKnitIndexTests.test__get_total_build_size breezy.tests.test_knit.LowLevelKnitIndexTests.test_scan_unvalidated_index_not_implemented breezy.tests.test_knit.TestAnnotatedKnitContent.test_annotate breezy.tests.test_knit.TestAnnotatedKnitContent.test_constructor breezy.tests.test_knit.TestAnnotatedKnitContent.test_copy breezy.tests.test_knit.TestAnnotatedKnitContent.test_get_line_delta_blocks breezy.tests.test_knit.TestAnnotatedKnitContent.test_get_line_delta_blocks_noeol breezy.tests.test_knit.TestAnnotatedKnitContent.test_line_delta breezy.tests.test_knit.TestAnnotatedKnitContent.test_line_delta_iter breezy.tests.test_knit.TestAnnotatedKnitContent.test_text breezy.tests.test_knit.Test_KnitAnnotator.test__expand_delta_comp_parent_not_available breezy.tests.test_knit.Test_KnitAnnotator.test__expand_delta_records_blocks breezy.tests.test_knit.Test_KnitAnnotator.test__expand_fulltext breezy.tests.test_knit.Test_KnitAnnotator.test__expand_record_tracks_num_children breezy.tests.test_knit.Test_KnitAnnotator.test__get_parent_ann_uses_matching_blocks breezy.tests.test_knit.Test_KnitAnnotator.test__process_pending breezy.tests.test_knit.Test_KnitAnnotator.test_record_delta_removes_basis breezy.tests.test_knit.TestKnitVersionedFiles.test__group_keys_for_io breezy.tests.test_knit.TestKnitVersionedFiles.test__split_by_prefix breezy.tests.test_knit.TestNoParentsGraphIndexKnit.test_add_good_unvalidated_index breezy.tests.test_knit.TestNoParentsGraphIndexKnit.test_parents_deltas_incompatible breezy.tests.test_knit.TestPackKnitAccess.test_reload_or_raise_no_reload breezy.tests.test_knit.TestPackKnitAccess.test_reload_or_raise_reload_changed breezy.tests.test_knit.TestPackKnitAccess.test_reload_or_raise_reload_no_change breezy.tests.test_knit.TestPlainKnitContent.test_annotate breezy.tests.test_knit.TestPlainKnitContent.test_constructor breezy.tests.test_knit.TestPlainKnitContent.test_copy breezy.tests.test_knit.TestPlainKnitContent.test_get_line_delta_blocks breezy.tests.test_knit.TestPlainKnitContent.test_get_line_delta_blocks_noeol breezy.tests.test_knit.TestPlainKnitContent.test_line_delta breezy.tests.test_knit.TestPlainKnitContent.test_line_delta_iter breezy.tests.test_knit.TestPlainKnitContent.test_text breezy.tests.test_knit.TestStacking.test_add_fallback_versioned_files breezy.tests.test__known_graph.TestKnownGraphHeads.test_filling_in_ghosts_resets_head_cache(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_filling_in_ghosts_resets_head_cache(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_alt_merge(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_alt_merge(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_criss_cross(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_criss_cross(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_linear(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_linear(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_shortcut(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_shortcut(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_two_heads(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_two_heads(python-nocache) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_with_ghost(python) breezy.tests.test__known_graph.TestKnownGraphHeads.test_heads_with_ghost(python-nocache) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_dotted_revnos_with_simple_merges(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_end_of_merge_multiple_revisions_merged_at_once(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_end_of_merge_not_last_revision_in_branch(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_ghost(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_graph_cycle(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_lefthand_ghost(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_merge_depth_with_nested_merges(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_merge_sort_empty(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_merge_sort_not_empty_no_tip(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_merge_sort_one_revision(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_merge_sort_race(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_parallel_root_sequence_numbers_increase_with_merges(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_revnos_are_globally_assigned(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_roots_and_sub_branches_versus_ghosts(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_sequence_numbers_increase_no_merges(python) breezy.tests.test__known_graph.TestKnownGraphMergeSort.test_sequence_numbers_increase_with_merges(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_empty(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_linear(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_mixed_ancestries(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_single(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_skip_ghost(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_skip_mainline_ghost(python) breezy.tests.test__known_graph.TestKnownGraphStableReverseTopoSort.test_stable_sorting(python) breezy.tests.test__known_graph.TestKnownGraph.test_add_existing_node_mismatched_parents(python) breezy.tests.test__known_graph.TestKnownGraph.test_add_existing_node(python) breezy.tests.test__known_graph.TestKnownGraph.test_add_new_root(python) breezy.tests.test__known_graph.TestKnownGraph.test_add_node_with_ghost_parent(python) breezy.tests.test__known_graph.TestKnownGraph.test_add_with_all_ghost_parents(python) breezy.tests.test__known_graph.TestKnownGraph.test_children_ancestry1(python) breezy.tests.test__known_graph.TestKnownGraph.test_fill_in_ghost(python) breezy.tests.test__known_graph.TestKnownGraph.test_gdfo_after_add_node(python) breezy.tests.test__known_graph.TestKnownGraph.test_gdfo_ancestry_1(python) breezy.tests.test__known_graph.TestKnownGraph.test_gdfo_extended_history_shortcut(python) breezy.tests.test__known_graph.TestKnownGraph.test_gdfo_feature_branch(python) breezy.tests.test__known_graph.TestKnownGraph.test_gdfo_with_ghost(python) breezy.tests.test__known_graph.TestKnownGraph.test_parent_ancestry1(python) breezy.tests.test__known_graph.TestKnownGraph.test_parent_with_ghost(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_1(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_cycle_2(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_cycle(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_cycle_with_tail(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_easy(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_empty(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_ghost_parent(python) breezy.tests.test__known_graph.TestKnownGraphTopoSort.test_topo_sort_partial(python) breezy.tests.test_lazy_import.TestCanonicalize.test_from_one_import_two breezy.tests.test_lazy_import.TestCanonicalize.test_import_one breezy.tests.test_lazy_import.TestCanonicalize.test_import_one_as_two_as breezy.tests.test_lazy_import.TestCanonicalize.test_import_one_two breezy.tests.test_lazy_import.TestCanonicalize.test_missing_trailing breezy.tests.test_lazy_import.TestCanonicalize.test_multiple breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_mixed breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_one breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_one_as_x breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_one_two breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_one_two_as_x breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_one_two_three breezy.tests.test_lazy_import.TestConvertImportToMap.test_import_with_as breezy.tests.test_lazy_import.TestFromToMap.test_from_one_import_two breezy.tests.test_lazy_import.TestFromToMap.test_from_one_import_two_as_three breezy.tests.test_lazy_import.TestFromToMap.test_from_one_import_two_three breezy.tests.test_lazy_import.TestFromToMap.test_from_one_two_import_three breezy.tests.test_lazy_import.TestImportProcessor.test_from_many breezy.tests.test_lazy_import.TestImportProcessor.test_from_one_import_two breezy.tests.test_lazy_import.TestImportProcessor.test_import_as breezy.tests.test_lazy_import.TestImportProcessor.test_import_many breezy.tests.test_lazy_import.TestImportProcessor.test_import_one breezy.tests.test_lazy_import.TestImportProcessor.test_import_one_two breezy.tests.test_lazy_import.TestImportProcessor.test_incorrect_line breezy.tests.test_lazy_import.TestImportProcessor.test_mixed breezy.tests.test_lazy_import.TestImportProcessor.test_name_collision breezy.tests.test_lazy_import.TestImportProcessor.test_relative_imports breezy.tests.test_lazy_import.TestImportReplacerHelper.test_basic_import breezy.tests.test_lazy_import.TestImportReplacer.test_import_mod breezy.tests.test_lazy_import.TestImportReplacer.test_import_mod_from_root breezy.tests.test_lazy_import.TestImportReplacer.test_import_root breezy.tests.test_lazy_import.TestImportReplacer.test_import_root_and_mod breezy.tests.test_lazy_import.TestImportReplacer.test_import_root_and_root_mod breezy.tests.test_lazy_import.TestImportReplacer.test_import_root_sub_submod breezy.tests.test_lazy_import.TestLazyImportProcessor.test_import_deep breezy.tests.test_lazy_import.TestLazyImportProcessor.test_lazy_import breezy.tests.test_lazy_import.TestLazyImportProcessor.test_root breezy.tests.test_lazy_import.TestScopeReplacerReentrance.test_call breezy.tests.test_lazy_import.TestScopeReplacerReentrance.test_getattribute breezy.tests.test_lazy_import.TestScopeReplacerReentrance.test_setattr breezy.tests.test_lazy_import.TestScopeReplacer.test_call_class breezy.tests.test_lazy_import.TestScopeReplacer.test_call_func breezy.tests.test_lazy_import.TestScopeReplacer.test_class breezy.tests.test_lazy_import.TestScopeReplacer.test_enable_proxying breezy.tests.test_lazy_import.TestScopeReplacer.test_object breezy.tests.test_lazy_import.TestScopeReplacer.test_other_variable breezy.tests.test_lazy_import.TestScopeReplacer.test_replace_side_effects breezy.tests.test_lazy_import.TestScopeReplacer.test_replacing_from_own_scope_fails breezy.tests.test_lazy_import.TestScopeReplacer.test_setattr_replaces breezy.tests.test_lazy_regex.TestErrors.test_invalid_pattern breezy.tests.test_lazy_regex.TestInstallLazyCompile.test_install breezy.tests.test_lazy_regex.TestInstallLazyCompile.test_reset breezy.tests.test_lazy_regex.TestLazyCompile.test_extra_args breezy.tests.test_lazy_regex.TestLazyCompile.test_findall breezy.tests.test_lazy_regex.TestLazyCompile.test_finditer breezy.tests.test_lazy_regex.TestLazyCompile.test_match breezy.tests.test_lazy_regex.TestLazyCompile.test_pickle breezy.tests.test_lazy_regex.TestLazyCompile.test_search breezy.tests.test_lazy_regex.TestLazyCompile.test_simple_acts_like_regex breezy.tests.test_lazy_regex.TestLazyCompile.test_split breezy.tests.test_lazy_regex.TestLazyRegex.test_bad_pattern breezy.tests.test_lazy_regex.TestLazyRegex.test_lazy_compile breezy.tests.test_library_state.TestLibraryState.test_trace_context breezy.tests.test_library_state.TestLibraryState.test_ui_is_used breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_break_lock breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_dont_leave_in_place breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test__escape breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test__escape_empty breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test__file_modes breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_leave_in_place breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_created breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_raises_on_token_mismatch breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_reenter_with_token breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_returns_None_refuses_token breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_returns_token_when_given_token breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_with_matching_token breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_lock_write_with_token_fails_when_unlocked breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_second_lock_write_returns_same_token breezy.tests.test_lockable_files.TestLockableFiles_LockDir.test_unlock_after_lock_write_with_token breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_acquired_fail breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_acquired_success breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_broken_failure breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_broken_success breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_released_fail breezy.tests.test_lockdir.TestLockDirHooks.test_LockDir_released_success breezy.tests.test_lockdir.TestLockDir.test_00_lock_creation breezy.tests.test_lockdir.TestLockDir.test_01_lock_repr breezy.tests.test_lockdir.TestLockDir.test_02_unlocked_peek breezy.tests.test_lockdir.TestLockDir.test_03_readonly_peek breezy.tests.test_lockdir.TestLockDir.test_10_lock_uncontested breezy.tests.test_lockdir.TestLockDir.test_11_create_readonly_transport breezy.tests.test_lockdir.TestLockDir.test_12_lock_readonly_transport breezy.tests.test_lockdir.TestLockDir.test_20_lock_contested breezy.tests.test_lockdir.TestLockDir.test_20_lock_peek breezy.tests.test_lockdir.TestLockDir.test_21_peek_readonly breezy.tests.test_lockdir.TestLockDir.test_30_lock_wait_fail breezy.tests.test_lockdir.TestLockDir.test_31_lock_wait_easy breezy.tests.test_lockdir.TestLockDir.test_40_confirm_easy breezy.tests.test_lockdir.TestLockDir.test_41_confirm_not_held breezy.tests.test_lockdir.TestLockDir.test_42_confirm_broken_manually breezy.tests.test_lockdir.TestLockDir.test_43_break breezy.tests.test_lockdir.TestLockDir.test_44_break_already_released breezy.tests.test_lockdir.TestLockDir.test_45_break_mismatch breezy.tests.test_lockdir.TestLockDir.test_46_fake_read_lock breezy.tests.test_lockdir.TestLockDir.test_50_lockdir_representation breezy.tests.test_lockdir.TestLockDir.test_break_lock breezy.tests.test_lockdir.TestLockDir.test_break_lock_corrupt_info breezy.tests.test_lockdir.TestLockDir.test_break_lock_missing_info breezy.tests.test_lockdir.TestLockDir.test_corrupt_lockdir_info breezy.tests.test_lockdir.TestLockDir.test_create_missing_base_directory breezy.tests.test_lockdir.TestLockDir.test_display_form breezy.tests.test_lockdir.TestLockDir.test_failed_lock_leaves_no_trash breezy.tests.test_lockdir.TestLockDir.test_lock_by_token breezy.tests.test_lockdir.TestLockDir.test_lock_permission breezy.tests.test_lockdir.TestLockDir.test_lock_with_buggy_rename breezy.tests.test_lockdir.TestLockDir.test_lock_without_email breezy.tests.test_lockdir.TestLockDir.test_missing_lockdir_info breezy.tests.test_lockdir.TestLockDir.test_no_lockdir_info breezy.tests.test_lockdir.TestLockDir.test_unlock_after_break_raises breezy.tests.test_lockdir.TestLockHeldInfo.test_is_locked_by_this_process breezy.tests.test_lockdir.TestLockHeldInfo.test_is_not_locked_by_this_process breezy.tests.test_lockdir.TestLockHeldInfo.test_lock_holder_dead_process breezy.tests.test_lockdir.TestLockHeldInfo.test_lock_holder_live_process breezy.tests.test_lockdir.TestLockHeldInfo.test_lock_holder_other_machine breezy.tests.test_lockdir.TestLockHeldInfo.test_lock_holder_other_user breezy.tests.test_lockdir.TestLockHeldInfo.test_no_good_hostname breezy.tests.test_lockdir.TestLockHeldInfo.test_repr breezy.tests.test_lockdir.TestLockHeldInfo.test_unicode breezy.tests.test_lockdir.TestStaleLockDir.test_auto_break_stale_lock breezy.tests.test_lockdir.TestStaleLockDir.test_auto_break_stale_lock_configured_off breezy.tests.test_lock.TestOSLock.test_create_read_lock(fcntl) breezy.tests.test_lock.TestOSLock.test_create_write_lock(fcntl) breezy.tests.test_lock.TestOSLock.test_read_locks_block_write_locks(fcntl) breezy.tests.test_lock.TestOSLock.test_read_locks_share(fcntl) breezy.tests.test_lock.TestOSLock.test_temporary_write_lock_fails(fcntl) breezy.tests.test_lock.TestOSLock.test_temporary_write_lock(fcntl) breezy.tests.test_lock.TestOSLock.test_write_locks_are_exclusive(fcntl) breezy.tests.test_lock.TestOSLock.test_write_locks_block_read_lock(fcntl) breezy.tests.test_log.TestLogFormatter.test_short_author breezy.tests.test_log.TestLogFormatter.test_short_author_from_authors breezy.tests.test_log.TestLogFormatter.test_short_author_from_committer breezy.tests.test_log.TestLogFormatter.test_short_committer breezy.tests.test_log.TestLogWithBugs.test_bugs_handler_present breezy.tests.test_log.TestReverseByDepth.test_mainline_revisions breezy.tests.test_log.TestReverseByDepth.test_merged_revisions breezy.tests.test_log.TestReverseByDepth.test_merged_without_child_revisions breezy.tests.test_log.TestReverseByDepth.test_shifted_merged_revisions breezy.tests.test_log.TestShowLog.test_empty_branch breezy.tests.test_lru_cache.TestLRUCache.test_add__null_key breezy.tests.test_lru_cache.TestLRUCache.test_after_cleanup_larger_than_max breezy.tests.test_lru_cache.TestLRUCache.test_after_cleanup_none breezy.tests.test_lru_cache.TestLRUCache.test_by_usage breezy.tests.test_lru_cache.TestLRUCache.test_cache_size breezy.tests.test_lru_cache.TestLRUCache.test_cleanup breezy.tests.test_lru_cache.TestLRUCache.test_cleanup_shrinks_to_after_clean_count breezy.tests.test_lru_cache.TestLRUCache.test_get breezy.tests.test_lru_cache.TestLRUCache.test_keys breezy.tests.test_lru_cache.TestLRUCache.test_len breezy.tests.test_lru_cache.TestLRUCache.test_map_None breezy.tests.test_lru_cache.TestLRUCache.test_missing breezy.tests.test_lru_cache.TestLRUCache.test_overflow breezy.tests.test_lru_cache.TestLRUCache.test_preserve_last_access_order breezy.tests.test_lru_cache.TestLRUCache.test_resize_larger breezy.tests.test_lru_cache.TestLRUCache.test_resize_smaller breezy.tests.test_lru_cache.TestLRUSizeCache.test_adding_clears_cache_based_on_size breezy.tests.test_lru_cache.TestLRUSizeCache.test_adding_clears_to_after_cleanup_size breezy.tests.test_lru_cache.TestLRUSizeCache.test_add__null_key breezy.tests.test_lru_cache.TestLRUSizeCache.test_add_tracks_size breezy.tests.test_lru_cache.TestLRUSizeCache.test_basic_init breezy.tests.test_lru_cache.TestLRUSizeCache.test_cleanup breezy.tests.test_lru_cache.TestLRUSizeCache.test_custom_sizes breezy.tests.test_lru_cache.TestLRUSizeCache.test_keys breezy.tests.test_lru_cache.TestLRUSizeCache.test_no_add_over_size breezy.tests.test_lru_cache.TestLRUSizeCache.test_remove_tracks_size breezy.tests.test_lru_cache.TestLRUSizeCache.test_resize_larger breezy.tests.test_lru_cache.TestLRUSizeCache.test_resize_smaller breezy.tests.test_lsprof.TestBzrProfiler.test_block_0 breezy.tests.test_lsprof.TestBzrProfiler.test_block_1 breezy.tests.test_lsprof.TestBzrProfiler.test_start_call_stuff_stop breezy.tests.test_lsprof.TestStatsSave.test_stats_save_to_callgrind breezy.tests.test_lsprof.TestStatsSave.test_stats_save_to_pickle breezy.tests.test_lsprof.TestStatsSave.test_stats_save_to_txt breezy.tests.test_mail_client.TestClaws.test_to_required breezy.tests.test_mail_client.TestDefaultMail.test_compose_merge_request breezy.tests.test_matchers.TestContainsNoVfsCalls.test_empty breezy.tests.test_matchers.TestContainsNoVfsCalls.test_ignores_unknown breezy.tests.test_matchers.TestContainsNoVfsCalls.test_match breezy.tests.test_matchers.TestContainsNoVfsCalls.test_no_vfs_calls breezy.tests.test_matchers.TestContainsNoVfsCalls.test__str__ breezy.tests.test_matchers.TestHasLayout.test__str__ breezy.tests.test_matchers.TestMatchesAncestry.test__str__ breezy.tests.test_matchers.TestReturnsUnlockable.test_match breezy.tests.test_matchers.TestReturnsUnlockable.test_mismatch breezy.tests.test_matchers.TestReturnsUnlockable.test___str__ breezy.tests.test_matchers.TestRevisionHistoryMatches.test_empty breezy.tests.test_memorytree.TestMemoryTree.test_add_with_kind breezy.tests.test_memorytree.TestMemoryTree.test_create_on_branch breezy.tests.test_memorytree.TestMemoryTree.test_get_root_id breezy.tests.test_memorytree.TestMemoryTree.test_lock_tree_write breezy.tests.test_memorytree.TestMemoryTree.test_lock_tree_write_after_read_fails breezy.tests.test_memorytree.TestMemoryTree.test_lock_write breezy.tests.test_memorytree.TestMemoryTree.test_lock_write_after_read_fails breezy.tests.test_memorytree.TestMemoryTree.test_unversion breezy.tests.test_merge3.TestMerge3.test_allow_objects breezy.tests.test_merge_directive.TestMergeDirective1.test_deserialize_empty breezy.tests.test_merge_directive.TestMergeDirective1.test_deserialize_junk breezy.tests.test_merge_directive.TestMergeDirective1.test_merge_source breezy.tests.test_merge_directive.TestMergeDirective1.test_require_patch breezy.tests.test_merge_directive.TestMergeDirective2.test_deserialize_empty breezy.tests.test_merge_directive.TestMergeDirective2.test_deserialize_junk breezy.tests.test_merge_directive.TestMergeDirective2.test_merge_source breezy.tests.test_merge.TestLCAMultiWay.test_all_differ breezy.tests.test_merge.TestLCAMultiWay.test_lca_supersedes_other_lca breezy.tests.test_merge.TestLCAMultiWay.test_no_lcas breezy.tests.test_merge.TestLCAMultiWay.test_other_and_this_pick_different_lca breezy.tests.test_merge.TestLCAMultiWay.test_other_equal_equal_lcas breezy.tests.test_merge.TestLCAMultiWay.test_other_equal_this breezy.tests.test_merge.TestLCAMultiWay.test_other_in_lca breezy.tests.test_merge.TestLCAMultiWay.test_this_in_lca breezy.tests.test_merge.TestMerge.test_merge_inner_conflicts breezy.tests.test_merge.TestMerge.test_merge_type_registry breezy.tests.test_merge.TestPlanMerge.test__prune_tails breezy.tests.test_merge.TestPlanMerge.test__remove_external_references breezy.tests.test_merge.TestPlanMerge.test_subtract_plans breezy.tests.test_mergetools.TestCheckAvailability.test_exe_on_path breezy.tests.test_mergetools.TestCheckAvailability.test_full_path breezy.tests.test_mergetools.TestCheckAvailability.test_non_executable breezy.tests.test_mergetools.TestCheckAvailability.test_nonexistent breezy.tests.test_mergetools.TestFilenameSubstitution.test_simple_filename breezy.tests.test_mergetools.TestFilenameSubstitution.test_spaces breezy.tests.test_mergetools.TestFilenameSubstitution.test_spaces_and_quotes breezy.tests.test_mergetools.TestFilenameSubstitution.test_tempfile breezy.tests.test_msgeditor.MsgEditorTest.test__create_temp_file_with_commit_template_in_unicode_dir(cp1251) breezy.tests.test_msgeditor.MsgEditorTest.test__create_temp_file_with_commit_template_in_unicode_dir(iso-8859-1) breezy.tests.test_msgeditor.MsgEditorTest.test__create_temp_file_with_commit_template_in_unicode_dir(iso-8859-2) breezy.tests.test_msgeditor.MsgEditorTest.test__create_temp_file_with_commit_template_in_unicode_dir(utf-8,1) breezy.tests.test_msgeditor.MsgEditorTest.test__create_temp_file_with_commit_template_in_unicode_dir(utf-8,2) breezy.tests.test_msgeditor.MsgEditorTest.test_generate_commit_message_template_hook breezy.tests.test_msgeditor.MsgEditorTest.test_generate_commit_message_template_no_hooks breezy.tests.test_msgeditor.MsgEditorTest.test_set_commit_message_hook breezy.tests.test_msgeditor.MsgEditorTest.test_set_commit_message_no_hooks breezy.tests.test_msgeditor.TestPlatformErrnoWorkarounds.test_subprocess_call_bad_file breezy.tests.test_multiparent.TestMulti.test_compare_no_parent breezy.tests.test_multiparent.TestMulti.test_compare_one_parent breezy.tests.test_multiparent.TestMulti.test_compare_two_parents breezy.tests.test_multiparent.TestMulti.test_compare_two_parents_blocks breezy.tests.test_multiparent.TestMulti.test_eq breezy.tests.test_multiparent.TestMulti.test_get_matching_blocks breezy.tests.test_multiparent.TestMulti.test_num_lines breezy.tests.test_multiparent.TestMulti.test_range_iterator breezy.tests.test_multiparent.TestMulti.test_to_patch breezy.tests.test_multiparent.TestNewText.test_eq breezy.tests.test_multiparent.TestNewText.test_to_patch breezy.tests.test_multiparent.TestParentText.test_eq breezy.tests.test_multiparent.TestParentText.test_to_patch breezy.tests.test_multiparent.TestVersionedFile.test_add_version breezy.tests.test_multiparent.TestVersionedFile.test_get_line_list breezy.tests.test_multiparent.TestVersionedFile.test_reconstruct_empty breezy.tests.test_multiparent.TestVersionedFile.test_reconstructor breezy.tests.test_multiparent.TestVersionedFile.test_reordered breezy.tests.test_mutabletree.TestHooks.test_constructor breezy.tests.test_mutabletree.TestHooks.test_installed_hooks_are_MutableTreeHooks breezy.tests.test_nonascii.NormalizedFilename.test__accessible_normalized_filename breezy.tests.test_nonascii.NormalizedFilename.test_functions breezy.tests.test_nonascii.NormalizedFilename.test__inaccessible_normalized_filename breezy.tests.test_nonascii.TestNormalization.test_normalize breezy.tests.test_options.OptionTests.test_allow_dash breezy.tests.test_options.OptionTests.test_conversion breezy.tests.test_options.OptionTests.test_from_kwargs breezy.tests.test_options.OptionTests.test_help breezy.tests.test_options.OptionTests.test_is_hidden breezy.tests.test_options.OptionTests.test_iter_switches breezy.tests.test_options.OptionTests.test_lazy_registry breezy.tests.test_options.OptionTests.test_no_more_opts breezy.tests.test_options.OptionTests.test_option_callback_bool breezy.tests.test_options.OptionTests.test_option_callback_str breezy.tests.test_options.OptionTests.test_override breezy.tests.test_options.OptionTests.test_parse_args breezy.tests.test_options.OptionTests.test_registry_conversion breezy.tests.test_options.OptionTests.test_registry_converter breezy.tests.test_options.OptionTests.test_set_short_name breezy.tests.test_options.TestListOptions.test_list_option breezy.tests.test_options.TestListOptions.test_list_option_can_be_reset breezy.tests.test_options.TestListOptions.test_list_option_no_arguments breezy.tests.test_options.TestListOptions.test_list_option_param_name breezy.tests.test_options.TestListOptions.test_list_option_with_dash breezy.tests.test_options.TestListOptions.test_list_option_with_int_type breezy.tests.test_options.TestListOptions.test_list_option_with_int_type_can_be_reset breezy.tests.test_options.TestListOptions.test_option_callback_list breezy.tests.test_options.TestOptionDefinitions.test_option_grammar breezy.tests.test_options.TestOptionMisc.test_is_hidden breezy.tests.test_options.TestOptionMisc.test_option_custom_help breezy.tests.test_options.TestOptionMisc.test_short_name breezy.tests.test_options.TestOptionMisc.test_short_value_switches breezy.tests.test_options.TestVerboseQuietLinkage.test_verbose_quiet_linkage breezy.tests.test_osutils_encodings.TestFakeCodec.test_fake_codec breezy.tests.test_osutils_encodings.TestTerminalEncoding.test_get_terminal_encoding_silent breezy.tests.test_osutils_encodings.TestTerminalEncoding.test_get_terminal_encoding_trace breezy.tests.test_osutils.TestBackupNames.test_empty breezy.tests.test_osutils.TestBackupNames.test_existing breezy.tests.test_osutils.TestCanonicalRelPath.test_canonical_relpath_missing_tail breezy.tests.test_osutils.TestCanonicalRelPath.test_canonical_relpath_simple breezy.tests.test_osutils.TestChunksToLines.test_osutils_binding breezy.tests.test_osutils.Test_CICPCanonicalRelpath.test_at_root_drive breezy.tests.test_osutils.Test_CICPCanonicalRelpath.test_at_root_slash breezy.tests.test_osutils.Test_CICPCanonicalRelpath.test_simple breezy.tests.test_osutils.Test_CICPCanonicalRelpath.test_subdir_missing_tail breezy.tests.test_osutils.TestConcurrency.test_local_concurrency breezy.tests.test_osutils.TestConcurrency.test_local_concurrency_environment_variable breezy.tests.test_osutils.TestConcurrency.test_option_concurrency breezy.tests.test_osutils.TestContainsWhitespace.test_contains_whitespace breezy.tests.test_osutils.TestCopyTree.test_copy_basic_tree breezy.tests.test_osutils.TestCopyTree.test_copy_tree_handlers breezy.tests.test_osutils.TestCopyTree.test_copy_tree_symlinks breezy.tests.test_osutils.TestCopyTree.test_copy_tree_target_exists breezy.tests.test_osutils.TestCreationOps.test_copy_ownership_from_path breezy.tests.test_osutils.TestCreationOps.test_copy_ownership_nonesrc breezy.tests.test_osutils.TestDateTime.test_format_date_with_offset_in_original_timezone breezy.tests.test_osutils.TestDateTime.test_format_delta breezy.tests.test_osutils.TestDateTime.test_local_time_offset breezy.tests.test_osutils.TestDateTime.test_local_time_offset_with_timestamp breezy.tests.test_osutils.TestDeleteAny.test_delete_any_readonly breezy.tests.test_osutils.TestEnvironmentErrors.test_is_ioerror breezy.tests.test_osutils.TestEnvironmentErrors.test_is_oserror breezy.tests.test_osutils.TestEnvironmentErrors.test_is_pywintypes_error breezy.tests.test_osutils.TestEnvironmentErrors.test_is_select_error breezy.tests.test_osutils.TestEnvironmentErrors.test_is_socket_error breezy.tests.test_osutils.TestFailedToLoadExtension.test_report_extension_load_failures_no_warning breezy.tests.test_osutils.TestFdatasync.test_fdatasync_catches_ENOTSUP breezy.tests.test_osutils.TestFdatasync.test_fdatasync_catches_EOPNOTSUPP breezy.tests.test_osutils.TestFdatasync.test_fdatasync_handles_no_EOPNOTSUPP breezy.tests.test_osutils.TestFdatasync.test_fdatasync_handles_no_fdatasync_no_fsync breezy.tests.test_osutils.TestFdatasync.test_fdatasync_handles_system_function breezy.tests.test_osutils.TestFindExecutableInPath.test_other breezy.tests.test_osutils.TestFindExecutableInPath.test_windows breezy.tests.test_osutils.TestFindExecutableInPath.test_windows_app_path breezy.tests.test_osutils.TestGetuserUnicode.test_ascii_user breezy.tests.test_osutils.TestIsInside.test_is_inside breezy.tests.test_osutils.TestIsInside.test_is_inside_any breezy.tests.test_osutils.TestIsInside.test_is_inside_or_parent_of_any breezy.tests.test_osutils.TestKind.test_file_kind breezy.tests.test_osutils.TestKind.test_kind_marker breezy.tests.test_osutils.TestLinks.test_dereference_path breezy.tests.test_osutils.TestLinks.test_host_os_dereferences_symlinks breezy.tests.test_osutils.TestMacFuncsDirs.test_getcwd breezy.tests.test_osutils.TestMacFuncsDirs.test_getcwd_nonnorm breezy.tests.test_osutils.TestParentDirectories.test_parent_directories breezy.tests.test_osutils.TestPosixFuncs.test_normpath breezy.tests.test_osutils.TestPumpFile.test_bracket_block_size breezy.tests.test_osutils.TestPumpFile.test_defaults breezy.tests.test_osutils.TestPumpFile.test_report_activity breezy.tests.test_osutils.TestPumpFile.test_specified_size breezy.tests.test_osutils.TestPumpFile.test_to_eof breezy.tests.test_osutils.TestPumpStringFile.test_empty breezy.tests.test_osutils.TestPumpStringFile.test_more_than_segment_size breezy.tests.test_osutils.TestPumpStringFile.test_segment_size breezy.tests.test_osutils.TestPumpStringFile.test_segment_size_multiple breezy.tests.test_osutils.TestRandChars.test_01_rand_chars_empty breezy.tests.test_osutils.TestRandChars.test_02_rand_chars_100 breezy.tests.test_osutils.TestReadLink.test_os_readlink_link_decoding breezy.tests.test_osutils.TestReadLink.test_os_readlink_link_encoding breezy.tests.test_osutils.TestRelpath.test_deep_relpath breezy.tests.test_osutils.TestRelpath.test_not_relative breezy.tests.test_osutils.TestRelpath.test_simple_relpath breezy.tests.test_osutils.TestRename.test_fancy_rename_fails_if_source_and_target_missing breezy.tests.test_osutils.TestRename.test_rename_change_case breezy.tests.test_osutils.TestRename.test_rename_exception breezy.tests.test_osutils.TestSafeFileId.test_from_unicode_string_ascii_contents breezy.tests.test_osutils.TestSafeFileId.test_from_unicode_string_unicode_contents breezy.tests.test_osutils.TestSafeFileId.test_none breezy.tests.test_osutils.TestSafeRevisionId.test_from_unicode_string_ascii_contents breezy.tests.test_osutils.TestSafeRevisionId.test_from_unicode_string_unicode_contents breezy.tests.test_osutils.TestSafeRevisionId.test_none breezy.tests.test_osutils.TestSafeUnicode.test_from_ascii_string breezy.tests.test_osutils.TestSafeUnicode.test_from_unicode_string_ascii_contents breezy.tests.test_osutils.TestSafeUnicode.test_from_unicode_string_unicode_contents breezy.tests.test_osutils.TestSendAll.test_send_with_disconnected_socket breezy.tests.test_osutils.TestSendAll.test_send_with_no_progress breezy.tests.test_osutils.TestSetUnsetEnv.test_double_set breezy.tests.test_osutils.TestSetUnsetEnv.test_set breezy.tests.test_osutils.TestSetUnsetEnv.test_unset breezy.tests.test_osutils.TestTerminalWidth.test_BRZ_COLUMNS_0_no_limit breezy.tests.test_osutils.TestTerminalWidth.test_defaults_to_BRZ_COLUMNS breezy.tests.test_osutils.TestTerminalWidth.test_default_values breezy.tests.test_osutils.TestTerminalWidth.test_falls_back_to_COLUMNS breezy.tests.test_osutils.TestTerminalWidth.test_non_tty_default_without_columns breezy.tests.test_osutils.TestTerminalWidth.test_no_TIOCGWINSZ breezy.tests.test_osutils.TestTerminalWidth.test_tty_default_without_columns breezy.tests.test_osutils.TestUmask.test_get_umask breezy.tests.test_osutils.TestWalkDirs.test_force_walkdirs_utf8_fs_ascii breezy.tests.test_osutils.TestWalkDirs.test_force_walkdirs_utf8_fs_utf8 breezy.tests.test_osutils.TestWalkDirs.test_force_walkdirs_utf8_nt breezy.tests.test_osutils.TestWalkDirs.test_walkdirs breezy.tests.test_osutils.TestWalkDirs.test_walkdirs_os_error breezy.tests.test_osutils.TestWalkDirs.test__walkdirs_utf8_win32readdir breezy.tests.test_osutils.TestWalkDirs.test__walkdirs_utf_win32_find_file_stat_directory breezy.tests.test_osutils.TestWalkDirs.test__walkdirs_utf_win32_find_file_stat_file breezy.tests.test_osutils.TestWin32FuncsDirs.test_getcwd breezy.tests.test_osutils.TestWin32FuncsDirs.test_minimum_path_selection breezy.tests.test_osutils.TestWin32FuncsDirs.test_mkdtemp breezy.tests.test_osutils.TestWin32FuncsDirs.test_rename_current_dir breezy.tests.test_osutils.TestWin32FuncsDirs.test_rename_missing_dir breezy.tests.test_osutils.TestWin32FuncsDirs.test_splitpath breezy.tests.test_osutils.TestWin32Funcs.test_abspath breezy.tests.test_osutils.TestWin32Funcs.test_fixdrive breezy.tests.test_osutils.TestWin32Funcs.test_getcwd breezy.tests.test_osutils.TestWin32Funcs.test_pathjoin breezy.tests.test_osutils.TestWin32Funcs.test_pathjoin_late_bugfix breezy.tests.test_pack.TestBytesRecordReader.test_early_eof breezy.tests.test_pack.TestBytesRecordReader.test_eof_after_length breezy.tests.test_pack.TestBytesRecordReader.test_eof_during_name breezy.tests.test_pack.TestBytesRecordReader.test_initial_eof breezy.tests.test_pack.TestBytesRecordReader.test_invalid_length breezy.tests.test_pack.TestBytesRecordReader.test_read_invalid_name_whitespace breezy.tests.test_pack.TestBytesRecordReader.test_read_max_length breezy.tests.test_pack.TestBytesRecordReader.test_read_no_max_length breezy.tests.test_pack.TestBytesRecordReader.test_record_with_no_name breezy.tests.test_pack.TestBytesRecordReader.test_record_with_one_name breezy.tests.test_pack.TestBytesRecordReader.test_record_with_two_names breezy.tests.test_pack.TestBytesRecordReader.test_record_with_two_part_names breezy.tests.test_pack.TestBytesRecordReader.test_repeated_read_calls breezy.tests.test_pack.TestBytesRecordReader.test_validate_interrupted_body breezy.tests.test_pack.TestBytesRecordReader.test_validate_interrupted_prelude breezy.tests.test_pack.TestBytesRecordReader.test_validate_undecodeable_name breezy.tests.test_pack.TestBytesRecordReader.test_validate_unparseable_length breezy.tests.test_pack.TestBytesRecordReader.test_validate_whitespace_in_name breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_accept_nothing breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_incomplete_record breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_invalid_length breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_read_invalid_name_whitespace breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_record_with_no_name breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_record_with_one_name breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_record_with_two_names breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_record_with_two_part_names breezy.tests.test_pack.TestContainerPushParserBytesParsing.test_repeated_read_pending_records breezy.tests.test_pack.TestContainerPushParser.test_construct breezy.tests.test_pack.TestContainerPushParser.test_multiple_empty_records_at_once breezy.tests.test_pack.TestContainerPushParser.test_multiple_records_at_once breezy.tests.test_pack.TestContainerReader.test_construct breezy.tests.test_pack.TestContainerReader.test_container_with_one_unnamed_record breezy.tests.test_pack.TestContainerReader.test_empty_container breezy.tests.test_pack.TestContainerReader.test_unexpected_end_of_container breezy.tests.test_pack.TestContainerReader.test_unknown_format breezy.tests.test_pack.TestContainerReader.test_unknown_record_type breezy.tests.test_pack.TestContainerReader.test_validate_bad_format breezy.tests.test_pack.TestContainerReader.test_validate_bad_record_marker breezy.tests.test_pack.TestContainerReader.test_validate_data_after_end_marker breezy.tests.test_pack.TestContainerReader.test_validate_duplicate_name breezy.tests.test_pack.TestContainerReader.test_validate_empty_container breezy.tests.test_pack.TestContainerReader.test_validate_no_end_marker breezy.tests.test_pack.TestContainerReader.test_validate_non_empty_valid_container breezy.tests.test_pack.TestContainerReader.test_validate_undecodeable_name breezy.tests.test_pack.TestContainerSerialiser.test_begin breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_header breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_no_name breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_one_name_with_one_part breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_one_name_with_two_parts breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_two_names breezy.tests.test_pack.TestContainerSerialiser.test_bytes_record_whitespace_in_name_part breezy.tests.test_pack.TestContainerSerialiser.test_construct breezy.tests.test_pack.TestContainerSerialiser.test_end breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_invalid_name breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_no_name breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_one_name breezy.tests.test_pack.TestContainerWriter.test_add_bytes_records_add_to_records_written breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_split_writes breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_two_element_name breezy.tests.test_pack.TestContainerWriter.test_add_bytes_record_two_names breezy.tests.test_pack.TestContainerWriter.test_add_second_bytes_record_gets_higher_offset breezy.tests.test_pack.TestContainerWriter.test_begin breezy.tests.test_pack.TestContainerWriter.test_construct breezy.tests.test_pack.TestContainerWriter.test_empty_end_does_not_add_a_record_to_records_written breezy.tests.test_pack.TestContainerWriter.test_end breezy.tests.test_pack.TestContainerWriter.test_non_empty_end_does_not_add_a_record_to_records_written breezy.tests.test_pack.TestContainerWriter.test_zero_records_written_after_begin breezy.tests.test_pack.TestMakeReadvReader.test_read_skipping_records breezy.tests.test_pack.TestReadvFile.test_read_bytes breezy.tests.test_pack.TestReadvFile.test_readline breezy.tests.test_pack.TestReadvFile.test_readline_and_read breezy.tests.test_patches.PatchesTester.testInit breezy.tests.test_patches.PatchesTester.testInvalidHeader breezy.tests.test_patches.PatchesTester.testInvalidPatchHeader breezy.tests.test_patches.PatchesTester.testMalformedLine breezy.tests.test_patches.PatchesTester.testMalformedLineNO_NL breezy.tests.test_patches.PatchesTester.testParsePatches breezy.tests.test_patches.PatchesTester.test_parse_patches_leading_noise breezy.tests.test_patches.PatchesTester.testPDiff breezy.tests.test_patches.PatchesTester.test_preserve_dirty_head breezy.tests.test_patches.PatchesTester.testValidHunkHeader breezy.tests.test_patches.PatchesTester.testValidHunkHeader2 breezy.tests.test_patches.PatchesTester.testValidLine breezy.tests.test_patches.PatchesTester.testValidPatchHeader breezy.tests.test_permissions.TestSftpPermissions.test_new_files breezy.tests.test_permissions.TestSftpPermissions.test_sftp_server_modes breezy.tests.test_plugins.TestEnvDisablePlugins.test_empty breezy.tests.test_plugins.TestEnvDisablePlugins.test_mixed breezy.tests.test_plugins.TestEnvDisablePlugins.test_multi breezy.tests.test_plugins.TestEnvDisablePlugins.test_single breezy.tests.test_plugins.TestEnvDisablePlugins.test_unset breezy.tests.test_plugins.TestEnvPluginPath.test_adhoc_policy breezy.tests.test_plugins.TestEnvPluginPath.test_bogus_references breezy.tests.test_plugins.TestEnvPluginPath.test_default breezy.tests.test_plugins.TestEnvPluginPath.test_disable_core breezy.tests.test_plugins.TestEnvPluginPath.test_disable_overrides_enable breezy.tests.test_plugins.TestEnvPluginPath.test_disable_site breezy.tests.test_plugins.TestEnvPluginPath.test_disable_user breezy.tests.test_plugins.TestEnvPluginPath.test_disable_user_twice breezy.tests.test_plugins.TestEnvPluginPath.test_duplicates_are_removed breezy.tests.test_plugins.TestEnvPluginPath.test_fallback_policy breezy.tests.test_plugins.TestEnvPluginPath.test_my_plugin_first breezy.tests.test_plugins.TestEnvPluginPath.test_my_plugin_only breezy.tests.test_plugins.TestEnvPluginPath.test_override_core breezy.tests.test_plugins.TestEnvPluginPath.test_override_policy breezy.tests.test_plugins.TestEnvPluginPath.test_override_site breezy.tests.test_plugins.TestEnvPluginsAt.test_bad_name breezy.tests.test_plugins.TestEnvPluginsAt.test_empty breezy.tests.test_plugins.TestEnvPluginsAt.test_many_at breezy.tests.test_plugins.TestEnvPluginsAt.test_multiple breezy.tests.test_plugins.TestEnvPluginsAt.test_one_path breezy.tests.test_plugins.TestEnvPluginsAt.test_only_package breezy.tests.test_plugins.TestEnvPluginsAt.test_only_py breezy.tests.test_plugins.TestHelpIndex.test_default_constructable breezy.tests.test_plugins.TestHelpIndex.test_get_plugin_topic_with_prefix breezy.tests.test_plugins.TestHelpIndex.test_get_topics_for_plugin breezy.tests.test_plugins.TestHelpIndex.test_get_topics_None breezy.tests.test_plugins.TestHelpIndex.test_get_topics_no_topic breezy.tests.test_plugins.TestHelpIndex.test_prefix breezy.tests.test_plugins.TestModuleHelpTopic.test_contruct breezy.tests.test_plugins.TestModuleHelpTopic.test_get_help_text_carriage_return breezy.tests.test_plugins.TestModuleHelpTopic.test_get_help_text_no_carriage_return breezy.tests.test_plugins.TestModuleHelpTopic.test_get_help_text_None breezy.tests.test_plugins.TestModuleHelpTopic.test_get_help_text_with_additional_see_also breezy.tests.test_plugins.TestModuleHelpTopic.test_get_help_topic breezy.tests.test_progress.TestTextProgressView.test_clear breezy.tests.test_progress.TestTextProgressView.test_render_progress_easy breezy.tests.test_progress.TestTextProgressView.test_render_progress_nested breezy.tests.test_progress.TestTextProgressView.test_render_progress_no_bar breezy.tests.test_progress.TestTextProgressView.test_render_progress_sub_nested breezy.tests.test_progress.TestTextProgressView.test_render_progress_unicode_enc_missing breezy.tests.test_progress.TestTextProgressView.test_render_progress_unicode_enc_none breezy.tests.test_progress.TestTextProgressView.test_render_progress_unicode_enc_utf8 breezy.tests.test_progress.TestTextProgressView.test_render_truncated breezy.tests.test_progress.TestTextProgressView.test_render_with_activity breezy.tests.test_pyutils.TestCalcParent_name.test_dotted_member breezy.tests.test_pyutils.TestCalcParent_name.test_dotted_module_no_member breezy.tests.test_pyutils.TestCalcParent_name.test_undotted_member breezy.tests.test_pyutils.TestCalcParent_name.test_undotted_module_no_member breezy.tests.test_pyutils.TestGetNamedObject.test_attribute_error breezy.tests.test_pyutils.TestGetNamedObject.test_dotted_attr breezy.tests.test_pyutils.TestGetNamedObject.test_dotted_module breezy.tests.test_pyutils.TestGetNamedObject.test_import_error breezy.tests.test_pyutils.TestGetNamedObject.test_module_attr breezy.tests.test_pyutils.TestGetNamedObject.test_module_only breezy.tests.test_pyutils.TestGetNamedObject.test_package breezy.tests.test_pyutils.TestGetNamedObject.test_package_attr breezy.tests.test_read_bundle.TestReadMergeableBundleFromURL.test_read_fail(FtpTransport,UnavailableFTPTestServer) breezy.tests.test_read_bundle.TestReadMergeableBundleFromURL.test_read_mergeable_from_url(FtpTransport,UnavailableFTPTestServer) breezy.tests.test_read_bundle.TestReadMergeableBundleFromURL.test_read_mergeable_respects_possible_transports(FtpTransport,UnavailableFTPTestServer) breezy.tests.test_reconcile.TestReconciler.test_reconciler_finds_branch breezy.tests.test_reconcile.TestReconciler.test_reconciler_with_no_branch breezy.tests.test_reconcile.TestWorksWithSharedRepositories.test_reweave_empty breezy.tests.test_reconfigure.TestReconfigure.test_branch_to_branch breezy.tests.test_reconfigure.TestReconfigure.test_branch_to_tree breezy.tests.test_reconfigure.TestReconfigure.test_make_with_trees_already_with_trees breezy.tests.test_reconfigure.TestReconfigure.test_repository_tree_reconfiguration_not_supported breezy.tests.test_reconfigure.TestReconfigure.test_repo_to_branch breezy.tests.test_reconfigure.TestReconfigure.test_repo_to_tree breezy.tests.test_reconfigure.TestReconfigure.test_standalone_to_standalone breezy.tests.test_reconfigure.TestReconfigure.test_tree_to_branch breezy.tests.test_reconfigure.TestReconfigure.test_tree_to_tree breezy.tests.test_registry.TestRegistryIter.test_items breezy.tests.test_registry.TestRegistryIter.test_iteritems breezy.tests.test_registry.TestRegistry.test_get_prefix breezy.tests.test_registry.TestRegistry.test_register_override breezy.tests.test_registry.TestRegistry.test_registry breezy.tests.test_registry.TestRegistry.test_registry_funcs breezy.tests.test_registry.TestRegistry.test_registry_help breezy.tests.test_registry.TestRegistry.test_registry_info breezy.tests.test_registry.TestRegistryWithDirs.test_lazy_import_get_module breezy.tests.test_registry.TestRegistryWithDirs.test_lazy_import_registry_foo breezy.tests.test_registry.TestRegistryWithDirs.test_normal_get_module breezy.tests.test_remote.TestBzrDirCheckoutMetaDir.test_unknown_format breezy.tests.test_remote.TestBzrDirCloningMetaDir.test_unknown breezy.tests.test_remote.TestBzrDirDestroyBranch.test_destroy_default breezy.tests.test_remote.TestBzrDirDestroyRepository.test_destroy_repository breezy.tests.test_remote.TestBzrDirFormatInitializeEx.test_error breezy.tests.test_remote.TestBzrDirFormatInitializeEx.test_success breezy.tests.test_remote.TestBzrDirHasWorkingTree.test_has_workingtree breezy.tests.test_remote.TestBzrDirHasWorkingTree.test_no_workingtree breezy.tests.test_remote.TestBzrDirOpenBranch.test__get_tree_branch breezy.tests.test_remote.TestBzrDirOpenBranch.test_old_server breezy.tests.test_remote.TestBzrDirOpenBranch.test_open_repository_sets_format_attributes breezy.tests.test_remote.TestBzrDirOpenRepository.test_current_server breezy.tests.test_remote.TestBzrDirOpen.test_backwards_compat breezy.tests.test_remote.TestBzrDirOpen.test_backwards_compat_hpss_v2 breezy.tests.test_remote.TestBzrDirOpen.test_present_without_workingtree breezy.tests.test_remote.TestBzrDirOpen.test_present_with_workingtree breezy.tests.test_remote.Test_ClientMedium_remote_is_at_least.test_initially_unlimited breezy.tests.test_remote.Test_ClientMedium_remote_is_at_least.test__remember_remote_is_before breezy.tests.test_remote.Test_ClientMedium_remote_path_from_transport.test_remote_path_from_transport breezy.tests.test_remote.TestErrorTranslationRobustness.test_unrecognised_server_error breezy.tests.test_remote.TestErrorTranslationSuccess.test_Diverged breezy.tests.test_remote.TestErrorTranslationSuccess.test_generic_IndexError_no_classname breezy.tests.test_remote.TestErrorTranslationSuccess.test_generic_KeyError breezy.tests.test_remote.TestErrorTranslationSuccess.test_IncompatibleRepositories breezy.tests.test_remote.TestErrorTranslationSuccess.test_LockContention breezy.tests.test_remote.TestErrorTranslationSuccess.test_LockFailed breezy.tests.test_remote.TestErrorTranslationSuccess.test_MemoryError breezy.tests.test_remote.TestErrorTranslationSuccess.test_norepository breezy.tests.test_remote.TestErrorTranslationSuccess.test_NoSuchFile_context_path breezy.tests.test_remote.TestErrorTranslationSuccess.test_NoSuchFile_without_context breezy.tests.test_remote.TestErrorTranslationSuccess.test_nosuchrevision breezy.tests.test_remote.TestErrorTranslationSuccess.test_NoSuchRevision breezy.tests.test_remote.TestErrorTranslationSuccess.test_NotStacked breezy.tests.test_remote.TestErrorTranslationSuccess.test_PermissionDenied_no_args breezy.tests.test_remote.TestErrorTranslationSuccess.test_PermissionDenied_one_arg breezy.tests.test_remote.TestErrorTranslationSuccess.test_PermissionDenied_one_arg_and_context breezy.tests.test_remote.TestErrorTranslationSuccess.test_PermissionDenied_two_args breezy.tests.test_remote.TestErrorTranslationSuccess.test_ReadError breezy.tests.test_remote.TestErrorTranslationSuccess.test_ReadError_no_args breezy.tests.test_remote.TestErrorTranslationSuccess.test_ReadOnlyError breezy.tests.test_remote.TestErrorTranslationSuccess.test_TokenMismatch breezy.tests.test_remote.TestErrorTranslationSuccess.test_UnlockableTransport breezy.tests.test_remote.TestRemotePackRepositoryAutoPack.test_backwards_compatibility breezy.tests.test_remote.TestRemotePackRepositoryAutoPack.test_ok breezy.tests.test_remote.TestRemotePackRepositoryAutoPack.test_ok_with_real_repo breezy.tests.test_remote.TestRemotePackRepositoryAutoPack.test_oom_error_reporting breezy.tests.test_remote.TestRemoteSSHTransportAuthentication.test_defaults_to_none breezy.tests.test_remote.TestRemoteSSHTransportAuthentication.test_uses_authentication_config breezy.tests.test_remote.TestRepositoryAddSignatureText.test_add_signature_text breezy.tests.test_remote.TestRepositoryBreakLock.test_break_lock breezy.tests.test_remote.TestRepositoryGetGraph.test_get_graph breezy.tests.test_remote.TestRepositoryGetParentMap.test_get_parent_map_unexpected_response breezy.tests.test_remote.TestRepositoryGetRevIdForRevno.test_history_incomplete breezy.tests.test_remote.TestRepositoryGetRevIdForRevno.test_nosuchrevision breezy.tests.test_remote.TestRepositoryGetRevIdForRevno.test_ok breezy.tests.test_remote.TestRepositoryGetRevisionGraph.test_no_such_revision breezy.tests.test_remote.TestRepositoryGetRevisionGraph.test_null_revision breezy.tests.test_remote.TestRepositoryGetRevisionGraph.test_unexpected_error breezy.tests.test_remote.TestRepositoryGetRevisionSignatureText.test_no_signature breezy.tests.test_remote.TestRepositoryGetSerializerFormat.test_get_serializer_format breezy.tests.test_remote.TestRepositoryHasRevision.test_none breezy.tests.test_remote.TestRepositoryHasSignatureForRevisionId.test_has_signature_for_revision_id breezy.tests.test_remote.TestRepositoryHasSignatureForRevisionId.test_is_not_shared breezy.tests.test_remote.TestRepositoryInsertStream_1_19.test_locked_repo_with_lock_token breezy.tests.test_remote.TestRepositoryInsertStream_1_19.test_locked_repo_with_no_lock_token breezy.tests.test_remote.TestRepositoryInsertStream_1_19.test_unlocked_repo breezy.tests.test_remote.TestRepositoryInsertStream.test_locked_repo_with_lock_token breezy.tests.test_remote.TestRepositoryInsertStream.test_locked_repo_with_no_lock_token breezy.tests.test_remote.TestRepositoryInsertStream.test_unlocked_repo breezy.tests.test_remote.TestRepositoryIsShared.test_is_not_shared breezy.tests.test_remote.TestRepositoryIsShared.test_is_shared breezy.tests.test_remote.TestRepositoryIterInventories.test_empty breezy.tests.test_remote.TestRepositoryIterInventories.test_missing breezy.tests.test_remote.TestRepositoryLockWrite.test_lock_write breezy.tests.test_remote.TestRepositoryLockWrite.test_lock_write_already_locked breezy.tests.test_remote.TestRepositoryLockWrite.test_lock_write_unlockable breezy.tests.test_remote.TestRepositoryMakeWorkingTrees.test_make_working_trees breezy.tests.test_remote.TestRepositoryMakeWorkingTrees.test_no_working_trees breezy.tests.test_remote.TestRepositoryPack.test_pack breezy.tests.test_remote.TestRepositoryPack.test_pack_with_hint breezy.tests.test_remote.TestRepositoryPhysicalLockStatus.test_get_physical_lock_status_no breezy.tests.test_remote.TestRepositoryPhysicalLockStatus.test_get_physical_lock_status_yes breezy.tests.test_remote.TestRepositorySetMakeWorkingTrees.test_current breezy.tests.test_remote.TestRepositoryTarball.test_repository_tarball breezy.tests.test_remote.TestRepositoryUnlock.test_unlock breezy.tests.test_remote.TestRepositoryUnlock.test_unlock_wrong_token breezy.tests.test_remote.TestRepositoryWriteGroups.test_abort_write_group breezy.tests.test_remote.TestRepositoryWriteGroups.test_commit_write_group breezy.tests.test_remote.TestRepositoryWriteGroups.test_resume_write_group breezy.tests.test_remote.TestRepositoryWriteGroups.test_start_write_group breezy.tests.test_remote.TestRepositoryWriteGroups.test_start_write_group_unsuspendable breezy.tests.test_remote.TestRepositoryWriteGroups.test_suspend_write_group breezy.tests.test_remote.TestStacking.test_stacked_get_stream_groupcompress breezy.tests.test_remote.TestTransportIsReadonly.test_error_from_old_server breezy.tests.test_remote.TestTransportIsReadonly.test_false breezy.tests.test_remote.TestTransportIsReadonly.test_true breezy.tests.test_remote.TestTransportMkdir.test_permissiondenied breezy.tests.test_rename_map.TestRenameMap.test_add_edge_hashes breezy.tests.test_rename_map.TestRenameMap.test_find_directory_renames breezy.tests.test_rename_map.TestRenameMap.test_hitcounts breezy.tests.test_rename_map.TestRenameMap.test_match_directories breezy.tests.test_repository.Test2a.test_format_pack_compresses_True breezy.tests.test_repository.Test2a.test_inconsistency_fatal breezy.tests.test_repository.Test2a.test_stream_source_to_gc breezy.tests.test_repository.Test2a.test_stream_source_to_non_gc breezy.tests.test_repository.TestFeatures.test_open_with_missing_required_feature breezy.tests.test_repository.TestFeatures.test_open_with_present_feature breezy.tests.test_repository.TestInterRepository.test_get_default_inter_repository breezy.tests.test_repository.TestInterRepository.test_register_inter_repository_class breezy.tests.test_repository.TestKnitPackStreamSource.test_source_to_exact_pack_092 breezy.tests.test_repository.TestKnitPackStreamSource.test_source_to_exact_pack_19 breezy.tests.test_repository.TestKnitPackStreamSource.test_source_to_exact_pack_19_rich_root breezy.tests.test_repository.TestKnitPackStreamSource.test_source_to_exact_pack_rich_root_pack breezy.tests.test_repository.TestKnitPackStreamSource.test_stream_source_to_non_exact breezy.tests.test_repository.TestKnitPackStreamSource.test_stream_source_to_non_exact_rich_root breezy.tests.test_repository.Test_LazyListJoin.test__repr__ breezy.tests.test_repository.TestNewPack.test_new_instance_attributes breezy.tests.test_repository.TestOptimisingPacker.test_open_pack_will_optimise breezy.tests.test_repository.TestPack.test___eq____ne__ breezy.tests.test_repository.TestPack.test_file_name breezy.tests.test_repository.TestRepositoryFormatRegistry.test_get_all breezy.tests.test_repository.TestRepositoryFormatRegistry.test_register_extra breezy.tests.test_repository.TestRepositoryFormatRegistry.test_register_extra_lazy breezy.tests.test_repository.TestRepositoryFormatRegistry.test_register_unregister_format breezy.tests.test_repository.TestRepositoryFormat.test_find_format breezy.tests.test_repository.TestRepositoryFormat.test_find_format_no_repository breezy.tests.test_repository.TestRepositoryFormat.test_find_format_with_features breezy.tests.test_repository.TestRepositoryFormat.test_from_string breezy.tests.test_repository.TestRepositoryPackCollection.test_ensure_loaded_unlocked breezy.tests.test_repository.TestRepositoryPackCollection.test__max_pack_count breezy.tests.test_repository.TestRepositoryPackCollection.test_pack_distribution_one_to_nine breezy.tests.test_repository.TestRepositoryPackCollection.test_pack_distribution_stable_at_boundaries breezy.tests.test_repository.TestRepositoryPackCollection.test_pack_distribution_zero breezy.tests.test_repository.TestRepositoryPackCollection.test_plan_pack_operations_2009_revisions_skip_all_packs breezy.tests.test_repository.TestRepositoryPackCollection.test_plan_pack_operations_2010_combines_smallest_two breezy.tests.test_repository.TestRepositoryPackCollection.test_plan_pack_operations_2010_revisions_skip_all_packs breezy.tests.test_repository.TestRepositoryPackCollection.test_plan_pack_operations_creates_a_single_op breezy.tests.test_repository.TestRepositoryPackCollection.test_repr breezy.tests.test_revision.TestRevisionBugs.test_invalid_status breezy.tests.test_revision.TestRevisionBugs.test_no_bugs breezy.tests.test_revision.TestRevisionBugs.test_no_status breezy.tests.test_revision.TestRevisionBugs.test_some_bugs breezy.tests.test_revision.TestRevisionBugs.test_too_much_information breezy.tests.test_revision.TestRevisionMethods.test_get_apparent_authors breezy.tests.test_revision.TestRevisionMethods.test_get_apparent_authors_no_committer breezy.tests.test_revision.TestRevisionMethods.test_get_summary breezy.tests.test__rio.TestReadUnicodeStanza.test_continuation_too_early(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_empty(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_invalid_early_colon(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_invalid_tag(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_large(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_multi_line(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_non_ascii_char(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_none(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_no_string(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_repeated(python) breezy.tests.test__rio.TestReadUnicodeStanza.test_simple(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_continuation_too_early(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_empty(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_invalid_early_colon(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_invalid_tag(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_large(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_multi_line(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_non_ascii_char(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_none(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_no_string(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_repeated(python) breezy.tests.test__rio.TestReadUTF8Stanza.test_simple(python) breezy.tests.test_rio.TestRio.test_as_dict breezy.tests.test_rio.TestRio.test_backslash breezy.tests.test_rio.TestRio.test_blank_line breezy.tests.test_rio.TestRio.test_empty_value breezy.tests.test_rio.TestRio.test_multiline_string breezy.tests.test_rio.TestRio.test_nested_rio_unicode breezy.tests.test_rio.TestRio.test_patch_rio breezy.tests.test_rio.TestRio.test_patch_rio_linebreaks breezy.tests.test_rio.TestRio.test_quoted breezy.tests.test_rio.TestRio.test_read_empty breezy.tests.test_rio.TestRio.test_read_iter breezy.tests.test_rio.TestRio.test_read_nul_byte breezy.tests.test_rio.TestRio.test_read_nul_bytes breezy.tests.test_rio.TestRio.test_read_several breezy.tests.test_rio.TestRio.test_read_stanza breezy.tests.test_rio.TestRio.test_repeated_field breezy.tests.test_rio.TestRio.test_rio_raises_type_error breezy.tests.test_rio.TestRio.test_rio_raises_type_error_key breezy.tests.test_rio.TestRio.test_rio_to_unicode breezy.tests.test_rio.TestRio.test_rio_unicode breezy.tests.test_rio.TestRio.test_stanza breezy.tests.test_rio.TestRio.test_to_file breezy.tests.test_rio.TestRio.test_to_lines breezy.tests.test_rio.TestRio.test_tricky_quoted breezy.tests.test_rio.TestRio.test_whitespace_value breezy.tests.test_rio.TestRio.test_write_empty_stanza breezy.tests.test__rio.TestValidTag.test_empty(python) breezy.tests.test__rio.TestValidTag.test_no_colon(python) breezy.tests.test__rio.TestValidTag.test_non_ascii_char(python) breezy.tests.test__rio.TestValidTag.test_no_spaces(python) breezy.tests.test__rio.TestValidTag.test_numeric(python) breezy.tests.test__rio.TestValidTag.test_ok(python) breezy.tests.test__rio.TestValidTag.test_type_error(python) breezy.tests.test__rio.TestValidTag.test_unicode(python) breezy.tests.test_rules.TestErrors.test_unknown_rules breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_file_empty breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_file_missing breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_from_extension_match breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_from_multiple_glob_match breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_match_first breezy.tests.test_rules.TestIniBasedRulesSearcher.test_get_items_pathname_match breezy.tests.test_rules.TestIniBasedRulesSearcher.test_unknown_namespace breezy.tests.test_rules.TestRulesPath.test_rules_filename breezy.tests.test_rules.TestStackedRulesSearcher.test_stack_searching breezy.tests.test_sampler.DemoTest.test_nothing breezy.tests.test_scenarios.PretendVaryingTest.test_nothing(a,a) breezy.tests.test_scenarios.PretendVaryingTest.test_nothing(a,b) breezy.tests.test_scenarios.PretendVaryingTest.test_nothing(b,a) breezy.tests.test_scenarios.PretendVaryingTest.test_nothing(b,b) breezy.tests.test_scenarios.TestTestScenarios.test_multiply_scenarios_from_generators breezy.tests.test_scenarios.TestTestScenarios.test_multiply_tests breezy.tests.test_scenarios.TestTestScenarios.test_multiply_tests_by_their_scenarios breezy.tests.test_scenarios.TestTestScenarios.test_multiply_tests_no_scenarios breezy.tests.test_script.TestArgumentProcessing.test_quotes_removal breezy.tests.test_script.TestArgumentProcessing.test_verbosity_isolated breezy.tests.test_script.TestCat.test_cat_bogus_input_file breezy.tests.test_script.TestCat.test_cat_bogus_output_file breezy.tests.test_script.TestCat.test_cat_input_to_output breezy.tests.test_script.TestCat.test_cat_usage breezy.tests.test_script.TestCat.test_echo_bogus_output_file breezy.tests.test_script.TestCd.test_cd_dir_and_back_home breezy.tests.test_script.TestCd.test_cd_out_of_jail breezy.tests.test_script.TestCd.test_cd_usage breezy.tests.test_script.TestEcho.test_echo_input breezy.tests.test_script.TestEcho.test_echo_more_output breezy.tests.test_script.TestEcho.test_echo_some_to_output breezy.tests.test_script.TestEcho.test_echo_to_output breezy.tests.test_script.TestEcho.test_echo_usage breezy.tests.test_script.TestEcho.test_empty_line_in_output_is_respected breezy.tests.test_script.TestExecution.test_blank_output_mismatches_output breezy.tests.test_script.TestExecution.test_ellipsis_everything breezy.tests.test_script.TestExecution.test_ellipsis_matches_empty breezy.tests.test_script.TestExecution.test_null_output_matches_option breezy.tests.test_script.TestExecution.test_stops_on_unexpected_error breezy.tests.test_script.TestExecution.test_stops_on_unexpected_output breezy.tests.test_script.TestExecution.test_unknown_command breezy.tests.test_script.TestMkdir.test_mkdir_in_jail breezy.tests.test_script.TestMkdir.test_mkdir_jailed breezy.tests.test_script.TestMkdir.test_mkdir_usage breezy.tests.test_script.TestMv.test_move_unknown_file breezy.tests.test_script.TestMv.test_usage breezy.tests.test_script.TestRedirections.test_input_redirection breezy.tests.test_script.TestRedirections.test_no_redirection breezy.tests.test_script.TestRedirections.test_output_redirection breezy.tests.test_script.TestRedirections.test_redirection_syntax_errors breezy.tests.test_script.TestRm.test_rm_dir breezy.tests.test_script.TestRm.test_rm_dir_recursive breezy.tests.test_script.TestRm.test_rm_file_force breezy.tests.test_script.TestRm.test_rm_usage breezy.tests.test_script.TestSyntax.test_command_with_backquotes breezy.tests.test_script.TestSyntax.test_command_with_double_quoted_param breezy.tests.test_script.TestSyntax.test_command_with_error breezy.tests.test_script.TestSyntax.test_command_with_input breezy.tests.test_script.TestSyntax.test_command_with_output breezy.tests.test_script.TestSyntax.test_command_with_single_quoted_param breezy.tests.test_script.TestSyntax.test_comment_is_ignored breezy.tests.test_script.TestSyntax.test_comment_multiple_lines breezy.tests.test_script.TestSyntax.test_indented breezy.tests.test_script.TestSyntax.test_input_without_command breezy.tests.test_script.TestSyntax.test_output_without_command breezy.tests.test_script.TestSyntax.test_simple_command breezy.tests.test_script.TestSyntax.test_trim_blank_lines breezy.tests.test_selftest.MetaTestLog.test_logging breezy.tests.test_selftest.TestBlackboxSupport.test_run_bzr_failure_not_caught breezy.tests.test_selftest.TestBranchScenarios.test_scenarios breezy.tests.test_selftest.TestBzrDirScenarios.test_scenarios breezy.tests.test_selftest.TestClassesAvailable.test_test_case breezy.tests.test_selftest.TestClassesAvailable.test_test_loader breezy.tests.test_selftest.TestClassesAvailable.test_test_suite breezy.tests.test_selftest.TestConvenienceMakers.test_make_branch_and_memory_tree breezy.tests.test_selftest.TestConvenienceMakers.test_make_branch_and_tree_with_format breezy.tests.test_selftest.TestConvenienceMakers.test_make_tree_for_local_vfs_backed_transport breezy.tests.test_selftest.TestCounterHooks.test_no_hook breezy.tests.test_selftest.TestCounterHooks.test_run_hook_once breezy.tests.test_selftest.TestDeprecations.test_callDeprecated breezy.tests.test_selftest.TestDocTestSuiteIsolation.test_deleted_variable breezy.tests.test_selftest.TestDocTestSuiteIsolation.test_injected_variable breezy.tests.test_selftest.TestEnvironHandling.test_overrideEnv_None_called_twice_doesnt_leak breezy.tests.test_selftest.TestExtraAssertions.test_assertEndsWith breezy.tests.test_selftest.TestExtraAssertions.test_assertEqualDiff breezy.tests.test_selftest.TestFilteredByModuleTestLoader.test_exclude_tests breezy.tests.test_selftest.TestFilteredByModuleTestLoader.test_load_tests breezy.tests.test_selftest.TestFilteredByNameStartTestLoader.test_exclude_tests breezy.tests.test_selftest.TestFilteredByNameStartTestLoader.test_load_tests breezy.tests.test_selftest.TestFilteredByNameStartTestLoader.test_load_tests_inside_module breezy.tests.test_selftest.TestFinishBzrSubprocess.test_finish_bzr_subprocess_ignoring_retcode breezy.tests.test_selftest.TestFinishBzrSubprocess.test_finish_bzr_subprocess_with_error breezy.tests.test_selftest.TestFinishBzrSubprocess.test_finish_subprocess_with_unexpected_retcode breezy.tests.test_selftest.TestInterRepositoryScenarios.test_scenarios breezy.tests.test_selftest.TestInterTreeScenarios.test_scenarios breezy.tests.test_selftest.TestIsolatedEnv.test_basics breezy.tests.test_selftest.TestIsolatedEnv.test_deleting_variable breezy.tests.test_selftest.TestIsolatedEnv.test_injecting_known_variable breezy.tests.test_selftest.TestIsolatedEnv.test_injecting_unknown_variable breezy.tests.test_selftest.TestLoadTestIdList.test_load_dirty_file breezy.tests.test_selftest.TestLoadTestIdList.test_load_test_list breezy.tests.test_selftest.TestLoadTestIdList.test_load_unknown breezy.tests.test_selftest.TestPostMortemDebugging.test_env_var_triggers_post_mortem breezy.tests.test_selftest.TestPostMortemDebugging.test_location_bt_error breezy.tests.test_selftest.TestPostMortemDebugging.test_location_bt_failure breezy.tests.test_selftest.TestProfileResult.test_profiles_tests breezy.tests.test_selftest.TestRepositoryScenarios.test_formats_to_scenarios breezy.tests.test_selftest.TestRunBzrSubprocess.test_allow_plugins breezy.tests.test_selftest.TestRunBzrSubprocess.test_env_change_passes_through breezy.tests.test_selftest.TestRunBzrSubprocess.test_no_working_dir_passed_as_None breezy.tests.test_selftest.TestRunBzrSubprocess.test_no_working_dir_passed_through breezy.tests.test_selftest.TestRunBzrSubprocess.test_run_bzr_subprocess breezy.tests.test_selftest.TestRunBzrSubprocess.test_run_bzr_subprocess_no_plugins breezy.tests.test_selftest.TestRunBzr.test_encoding breezy.tests.test_selftest.TestRunBzr.test_reject_extra_keyword_arguments breezy.tests.test_selftest.TestRunBzr.test_retcode breezy.tests.test_selftest.TestRunBzr.test_run_bzr_error breezy.tests.test_selftest.TestRunBzr.test_run_bzr_error_regexes breezy.tests.test_selftest.TestRunBzr.test_stdin breezy.tests.test_selftest.TestRunBzr.test_working_dir breezy.tests.test_selftest.TestRunner.test_known_failure_failed_run breezy.tests.test_selftest.TestRunner.test_known_failure_ok_run breezy.tests.test_selftest.TestRunner.test_not_applicable breezy.tests.test_selftest.TestRunner.test_result_decorator breezy.tests.test_selftest.TestRunner.test_skipped_from_setup breezy.tests.test_selftest.TestRunner.test_skipped_from_test breezy.tests.test_selftest.TestRunner.test_skipped_test breezy.tests.test_selftest.TestRunner.test_startTestRun breezy.tests.test_selftest.TestRunner.test_stopTestRun breezy.tests.test_selftest.TestRunner.test_unexpected_success_bad breezy.tests.test_selftest.TestRunner.test_unsupported_features_listed breezy.tests.test_selftest.TestRunner.test_verbose_test_count breezy.tests.test_selftest.TestRunSuite.test_runner_class breezy.tests.test_selftest.TestSelftestFiltering.test_condition_id_in_list breezy.tests.test_selftest.TestSelftestFiltering.test_condition_id_re breezy.tests.test_selftest.TestSelftestFiltering.test_condition_id_startswith breezy.tests.test_selftest.TestSelftestFiltering.test_condition_isinstance breezy.tests.test_selftest.TestSelftestFiltering.test_exclude_tests_by_condition breezy.tests.test_selftest.TestSelftestFiltering.test_exclude_tests_by_re breezy.tests.test_selftest.TestSelftestFiltering.test_filter_suite_by_condition breezy.tests.test_selftest.TestSelftestFiltering.test_filter_suite_by_id_list breezy.tests.test_selftest.TestSelftestFiltering.test_filter_suite_by_id_startswith breezy.tests.test_selftest.TestSelftestFiltering.test_filter_suite_by_re breezy.tests.test_selftest.TestSelftestFiltering.test_preserve_input breezy.tests.test_selftest.TestSelftestFiltering.test_randomize_suite breezy.tests.test_selftest.TestSelftestFiltering.test_split_suit_by_condition breezy.tests.test_selftest.TestSelftestFiltering.test_split_suit_by_re breezy.tests.test_selftest.TestSelftest.test_list_only breezy.tests.test_selftest.TestSelftest.test_list_only_excludes breezy.tests.test_selftest.TestSelftest.test_list_only_filtered breezy.tests.test_selftest.TestSelftest.test_lsprof_tests breezy.tests.test_selftest.TestSelftest.test_random breezy.tests.test_selftest.TestSelftest.test_random_reuse_is_same_order breezy.tests.test_selftest.TestSelftest.test_selftest_benchmark_parameter_invokes_test_suite__benchmark__ breezy.tests.test_selftest.TestSelftest.test_transport_memory breezy.tests.test_selftest.TestSelftest.test_transport_sftp breezy.tests.test_selftest.TestSelftestWithIdList.test_load_unknown breezy.tests.test_selftest.TestStartBzrSubProcess.test_allow_plugins breezy.tests.test_selftest.TestStartBzrSubProcess.test_env_del_missing breezy.tests.test_selftest.TestStartBzrSubProcess.test_get_brz_path_with_cwd_breezy breezy.tests.test_selftest.TestStartBzrSubProcess.test_run_bzr_subprocess_env_del breezy.tests.test_selftest.TestStartBzrSubProcess.test_run_bzr_subprocess_no_plugins breezy.tests.test_selftest.TestStartBzrSubProcess.test_set_env breezy.tests.test_selftest.TestStartBzrSubProcess.test_working_dir breezy.tests.test_selftest.TestTestCaseInTempDir.test_assertEqualStat_equal breezy.tests.test_selftest.TestTestCaseInTempDir.test_assertEqualStat_notequal breezy.tests.test_selftest.TestTestCaseInTempDir.test_assertPathExists breezy.tests.test_selftest.TestTestCaseInTempDir.test_home_is_not_working breezy.tests.test_selftest.TestTestCaseLogDetails.test_error_has_log breezy.tests.test_selftest.TestTestCaseLogDetails.test_fail_has_log breezy.tests.test_selftest.TestTestCaseLogDetails.test_missing_feature_has_no_log breezy.tests.test_selftest.TestTestCaseLogDetails.test_skip_has_no_log breezy.tests.test_selftest.TestTestCaseLogDetails.test_unexpected_success_has_log breezy.tests.test_selftest.TestTestCaseLogDetails.test_xfail_has_no_log breezy.tests.test_selftest.TestTestCase.test_allow_debug_flag breezy.tests.test_selftest.TestTestCase.test_assertLength_fails_different breezy.tests.test_selftest.TestTestCase.test_assertLength_matches_empty breezy.tests.test_selftest.TestTestCase.test_assertLength_matches_nonempty breezy.tests.test_selftest.TestTestCase.test_assertLength_shows_sequence_in_failure breezy.tests.test_selftest.TestTestCase.test_assert_list_raises_assert_wrong_exception breezy.tests.test_selftest.TestTestCase.test_assert_list_raises_no_exception breezy.tests.test_selftest.TestTestCase.test_assert_list_raises_on_generator breezy.tests.test_selftest.TestTestCase.test_assert_list_raises_on_plain breezy.tests.test_selftest.TestTestCase.test_base_setUp_not_called_causes_failure breezy.tests.test_selftest.TestTestCase.test_base_tearDown_not_called_causes_failure breezy.tests.test_selftest.TestTestCase.test_debug_flags_restored breezy.tests.test_selftest.TestTestCase.test_debug_flags_sanitised breezy.tests.test_selftest.TestTestCase.test_disable_lock_checks breezy.tests.test_selftest.TestTestCase.test__gather_lsprof_in_benchmarks breezy.tests.test_selftest.TestTestCase.test_hooks_sanitised breezy.tests.test_selftest.TestTestCase.test_knownFailure breezy.tests.test_selftest.TestTestCase.test_overrideAttr_with_no_existing_value_and_no_value breezy.tests.test_selftest.TestTestCase.test_overrideAttr_with_no_existing_value_and_value breezy.tests.test_selftest.TestTestCase.test_overrideAttr_without_value breezy.tests.test_selftest.TestTestCase.test_overrideAttr_with_value breezy.tests.test_selftest.TestTestCase.test_recordCalls breezy.tests.test_selftest.TestTestCase.test_requireFeature_available breezy.tests.test_selftest.TestTestCase.test_requireFeature_unavailable breezy.tests.test_selftest.TestTestCase.test_run_disabled_supporting_result breezy.tests.test_selftest.TestTestCase.test_run_disabled_unittest_result breezy.tests.test_selftest.TestTestCase.test_run_enabled_unittest_result breezy.tests.test_selftest.TestTestCase.test_run_no_parameters breezy.tests.test_selftest.TestTestCase.test_start_server_registers_url breezy.tests.test_selftest.TestTestCase.test_this_fails_strict_lock_check breezy.tests.test_selftest.TestTestCase.test_time_creates_benchmark_in_result breezy.tests.test_selftest.TestTestCase.test_trace_nesting breezy.tests.test_selftest.TestTestCaseTransports.test_make_controldir_preserves_transport breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_BRZ_HOME_and_HOME_are_bytestrings breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_cwd_is_TEST_ROOT breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_dangling_locks_cause_failures breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_home_is_non_existant_dir_under_root breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_make_branch_and_memory_tree breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_make_branch_and_memory_tree_with_format breezy.tests.test_selftest.TestTestCaseWithMemoryTransport.test_make_branch_builder breezy.tests.test_selftest.TestTestCaseWithTransport.test_get_readonly_url_none breezy.tests.test_selftest.TestTestCaseWithTransport.test_is_directory breezy.tests.test_selftest.TestTestCloning.test_cloned_testcase_does_not_share_details breezy.tests.test_selftest.TestTestCloning.test_double_apply_scenario_preserves_first_scenario breezy.tests.test_selftest.TestTestIdList.test_bad_chars_in_params breezy.tests.test_selftest.TestTestIdList.test_empty_list breezy.tests.test_selftest.TestTestIdList.test_module_used breezy.tests.test_selftest.TestTestIdList.test_suite_matches_id_list_with_duplicates breezy.tests.test_selftest.TestTestIdList.test_test_suite_matches_id_list_with_unknown breezy.tests.test_selftest.TestTestIdList.test_valid_list breezy.tests.test_selftest.TestTestLoader.test_load_tests_from_module_name_smoke_test breezy.tests.test_selftest.TestTestLoader.test_load_tests_from_module_name_with_bogus_module_name breezy.tests.test_selftest.TestTestLoader.test_module_load_tests_attribute_gets_called breezy.tests.test_selftest.TestTestLoader.test_module_no_load_tests_attribute_loads_classes breezy.tests.test_selftest.TestTestPrefixRegistry.test_get_unknown_prefix breezy.tests.test_selftest.TestTestPrefixRegistry.test_predefined_prefixes breezy.tests.test_selftest.TestTestPrefixRegistry.test_register_existing_prefix breezy.tests.test_selftest.TestTestPrefixRegistry.test_register_new_prefix breezy.tests.test_selftest.TestTestPrefixRegistry.test_resolve_prefix breezy.tests.test_selftest.TestTestPrefixRegistry.test_resolve_unknown_alias breezy.tests.test_selftest.TestTestResult.test_add_not_supported breezy.tests.test_selftest.TestTestResult.test_known_failure breezy.tests.test_selftest.TestTestResult.test_lsprofiling breezy.tests.test_selftest.TestTestResult.test_startTests breezy.tests.test_selftest.TestTestResult.test_startTests_only_once breezy.tests.test_selftest.TestTestResult.test_strict_with_known_failure breezy.tests.test_selftest.TestTestResult.test_strict_with_success breezy.tests.test_selftest.TestTestResult.test_strict_with_unsupported_feature breezy.tests.test_selftest.TestTestResult.test_test_reporting breezy.tests.test_selftest.TestTestResult.test_unavailable_exception breezy.tests.test_selftest.TestTestResult.test_unittest_reporting_unittest_class breezy.tests.test_selftest.TestTestResult.test_uses_time_from_testtools breezy.tests.test_selftest.TestTestResult.test_verbose_report_known_failure breezy.tests.test_selftest.TestTestResult.test_verbose_report_unsupported breezy.tests.test_selftest.TestTestScenarioApplication.test_apply_scenario breezy.tests.test_selftest.TestTestSuite.test_test_suite breezy.tests.test_selftest.TestTestSuite.test_test_suite_list_and_start breezy.tests.test_selftest.TestTestSuite.test__test_suite_modules_to_doctest breezy.tests.test_selftest.TestTestSuite.test__test_suite_testmod_names breezy.tests.test_selftest.TestThreadLeakDetection.test_multiple_leaks breezy.tests.test_selftest.TestThreadLeakDetection.test_testcase_without_addCleanups breezy.tests.test_selftest.TestThreadLeakDetection.test_thread_leak breezy.tests.test_selftest.TestTransportScenarios.test_get_transport_permutations breezy.tests.test_selftest.TestTransportScenarios.test_scenarios_include_transport_class breezy.tests.test_selftest.TestTreeScenarios.test_scenarios breezy.tests.test_selftest.TestUncollectedWarningsForked.test_additonal_decorator breezy.tests.test_selftest.TestUncollectedWarningsForked.test_exclude_pattern breezy.tests.test_selftest.TestUncollectedWarningsForked.test_matching_tests_first breezy.tests.test_selftest.TestUncollectedWarningsForked.test_pattern breezy.tests.test_selftest.TestUncollectedWarningsForked.test_random_seed breezy.tests.test_selftest.TestUncollectedWarningsForked.test_starting_with_and_exclude breezy.tests.test_selftest.TestUncollectedWarningsForked.test_testsuite breezy.tests.test_selftest.TestUncollectedWarnings.test_additonal_decorator breezy.tests.test_selftest.TestUncollectedWarnings.test_exclude_pattern breezy.tests.test_selftest.TestUncollectedWarnings.test_matching_tests_first breezy.tests.test_selftest.TestUncollectedWarnings.test_pattern breezy.tests.test_selftest.TestUncollectedWarnings.test_random_seed breezy.tests.test_selftest.TestUncollectedWarnings.test_starting_with_and_exclude breezy.tests.test_selftest.TestUncollectedWarnings.test_testsuite breezy.tests.test_selftest.TestWarningTests.test_callCatchWarnings breezy.tests.test_selftest.TestWorkingTreeScenarios.test_scenarios breezy.tests.test_serializer.TestSerializer.test_registry breezy.tests.test_setup.TestDistutilsVersion.test_version_with_string breezy.tests.test_sftp_transport.SFTPBranchTest.test_push_support breezy.tests.test_sftp_transport.SFTPLatencyKnob.test_default breezy.tests.test_sftp_transport.SFTPLatencyKnob.test_latency_knob_slows_transport breezy.tests.test_sftp_transport.SFTPLockTests.test_sftp_locks breezy.tests.test_sftp_transport.SFTPNonServerTest.test_abspath_root_sibling_server breezy.tests.test_sftp_transport.SFTPNonServerTest.test_get_paramiko_vendor breezy.tests.test_sftp_transport.SFTPNonServerTest.test_parse_url_with_home_dir breezy.tests.test_sftp_transport.SFTPNonServerTest.test_relpath breezy.tests.test_sftp_transport.SFTPTransportTestRelativeRoot.test__remote_path_relative_root breezy.tests.test_sftp_transport.SFTPTransportTestRelative.test__remote_path breezy.tests.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_paramiko breezy.tests.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh breezy.tests.test_sftp_transport.SSHVendorConnection.test_connection_paramiko breezy.tests.test_sftp_transport.SSHVendorConnection.test_connection_vendor breezy.tests.test_sftp_transport.Test_SFTPReadvHelper.test__get_requests breezy.tests.test_sftp_transport.Test_SFTPReadvHelper.test_request_and_yield_offsets breezy.tests.test_sftp_transport.TestSocketDelay.test_bandwidth breezy.tests.test_sftp_transport.TestSocketDelay.test_delay breezy.tests.test_sftp_transport.TestUsesAuthConfig.test_sftp_doesnt_prompt_username breezy.tests.test_sftp_transport.TestUsesAuthConfig.test_sftp_is_none_if_no_config breezy.tests.test_sftp_transport.TestUsesAuthConfig.test_sftp_uses_config breezy.tests.test_shelf.TestErrors.test_invalid_shelf_id breezy.tests.test_shelf.TestPrepareShelf.test_shelve_change_unknown_change breezy.tests.test_shelf.TestPrepareShelf.test_shelve_skips_added_root breezy.tests.test_shelf.TestPrepareShelf.test_shelve_unversioned breezy.tests.test_shelf.TestShelfManager.test_active_shelves breezy.tests.test_shelf.TestShelfManager.test_delete_shelf breezy.tests.test_shelf.TestShelfManager.test_get_shelf_filename breezy.tests.test_shelf.TestShelfManager.test_get_shelf_ids breezy.tests.test_shelf.TestShelfManager.test_get_shelf_manager breezy.tests.test_shelf.TestShelfManager.test_last_shelf breezy.tests.test_shelf.TestShelfManager.test_new_shelf breezy.tests.test_shelf.TestShelfManager.test_read_non_existant breezy.tests.test__simple_set.TestSimpleSet.test_add breezy.tests.test__simple_set.TestSimpleSet.test_add_and_remove_lots_of_items breezy.tests.test__simple_set.TestSimpleSet.test_discard breezy.tests.test__simple_set.TestSimpleSet.test_get_set_del_with_collisions breezy.tests.test__simple_set.TestSimpleSet.test_initial breezy.tests.test__simple_set.TestSimpleSet.test__iter__ breezy.tests.test__simple_set.TestSimpleSet.test__lookup breezy.tests.test__simple_set.TestSimpleSet.test__lookup_after_resize breezy.tests.test__simple_set.TestSimpleSet.test__lookup_collision breezy.tests.test__simple_set.TestSimpleSet.test__resize breezy.tests.test__simple_set.TestSimpleSet.test_richcompare_failure breezy.tests.test__simple_set.TestSimpleSet.test_richcompare_not_implemented breezy.tests.test__simple_set.TestSimpleSet.test_second_hash_failure breezy.tests.test__simple_set.TestSimpleSet.test__sizeof__ breezy.tests.test_smart_request.TestErrors.test_disabled_method breezy.tests.test_smart_request.TestJailHook.test_jail_hook breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_generic_BzrError breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_generic_Exception breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_generic_zlib_error breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_LockContention breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_MemoryError breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_NoSuchFile breezy.tests.test_smart_request.TestRequestHanderErrorTranslation.test_TokenMismatch breezy.tests.test_smart_request.TestRequestJail.test_jail breezy.tests.test_smart_request.TestSmartRequestHandlerErrorTranslation.test_error_translation_from_args_received breezy.tests.test_smart_request.TestSmartRequestHandlerErrorTranslation.test_error_translation_from_chunk_received breezy.tests.test_smart_request.TestSmartRequestHandlerErrorTranslation.test_error_translation_from_end_received breezy.tests.test_smart_request.TestSmartRequestHandlerErrorTranslation.test_unexpected_error_translation breezy.tests.test_smart_request.TestSmartRequest.test_all_registered_requests_are_safety_qualified breezy.tests.test_smart_request.TestSmartRequest.test_only_request_code_is_jailed breezy.tests.test_smart_request.TestSmartRequest.test_request_class_without_do_body breezy.tests.test_smart_signals.TestSignalHandlers.test_failing_callback breezy.tests.test_smart_signals.TestSignalHandlers.test_install_sighup_handler breezy.tests.test_smart_signals.TestSignalHandlers.test_keyboard_interrupt_propagated breezy.tests.test_smart_signals.TestSignalHandlers.test_not_installed breezy.tests.test_smart_signals.TestSignalHandlers.test_registered_callback_gets_called breezy.tests.test_smart_signals.TestSignalHandlers.test_unregister_during_call breezy.tests.test_smart_signals.TestSignalHandlers.test_unregister_not_present breezy.tests.test_smart_signals.TestSignalHandlers.test_weak_references breezy.tests.test_smart.SmartTCPServerHookTests.test_run_server_started_hooks breezy.tests.test_smart.SmartTCPServerHookTests.test_run_server_started_hooks_ipv6 breezy.tests.test_smart.SmartTCPServerHookTests.test_run_server_stopped_hooks breezy.tests.test_smart.TestHandlers.test_all_registrations_exist breezy.tests.test_smart.TestHandlers.test_registered_methods breezy.tests.test_smart.TestSmartServerBranchRequestSetLastRevisionInfo.test_NoSuchRevision breezy.tests.test_smart.TestSmartServerBzrDirRequestHasWorkingTree.test_has_workingtree_no breezy.tests.test_smart.TestSmartServerBzrDirRequestHasWorkingTree.test_has_workingtree_yes breezy.tests.test_smart.TestSmartServerIsReadonly.test_is_readonly_no breezy.tests.test_smart.TestSmartServerIsReadonly.test_is_readonly_yes breezy.tests.test_smart.TestSmartServerRepositoryGetPhysicalLockStatus.test_without_write_lock breezy.tests.test_smart.TestSmartServerRepositoryGetPhysicalLockStatus.test_with_write_lock breezy.tests.test_smart.TestSmartServerRepositoryIterFilesBytes.test_missing breezy.tests.test_smart.TestSmartServerRepositoryReconcile.test_reconcile breezy.tests.test_smart.TestSmartServerRequestInitializeBzrDir.test_initialized_dir breezy.tests.test_smart.TestSmartServerRequestInitializeBzrDir.test_missing_dir breezy.tests.test_smart.TestSmartServerRequestOpenBzrDir_2_1.test_outside_root_client_path breezy.tests.test_smart.TestSmartServerRequestOpenBzrDir.test_outside_root_client_path breezy.tests.test_smart.TestSmartServerRequest.test_transport_from_client_path breezy.tests.test_smart.TestSmartServerResponse.test__eq__ breezy.tests.test_smart.TestSmartServerResponse.test__str__ breezy.tests.test_smart_transport.HTTPTunnellingSmokeTest.test_smart_http_medium_request_accept_bytes breezy.tests.test_smart_transport.LengthPrefixedBodyDecoder.test_accept_bytes breezy.tests.test_smart_transport.LengthPrefixedBodyDecoder.test_accept_bytes_all_at_once_with_excess breezy.tests.test_smart_transport.LengthPrefixedBodyDecoder.test_accept_bytes_exact_end_of_body breezy.tests.test_smart_transport.LengthPrefixedBodyDecoder.test_construct breezy.tests.test_smart_transport.RemoteHTTPTransportTestCase.test_redirected_to_same_host_different_protocol breezy.tests.test_smart_transport.RemoteHTTPTransportTestCase.test__redirect_sibling_protocol breezy.tests.test_smart_transport.RemoteHTTPTransportTestCase.test_remote_path_unnormal_base breezy.tests.test_smart_transport.RemoteTransportRegistration.test_bzr_https breezy.tests.test_smart_transport.RemoteTransportRegistration.test_registration breezy.tests.test_smart_transport.SmartClientMediumTests.test_construct_smart_simple_pipes_client_medium breezy.tests.test_smart_transport.SmartClientMediumTests.test_construct_smart_ssh_client_medium breezy.tests.test_smart_transport.SmartClientMediumTests.test_construct_smart_tcp_client_medium breezy.tests.test_smart_transport.SmartClientMediumTests.test_simple_pipes_client_get_concurrent_requests breezy.tests.test_smart_transport.SmartClientMediumTests.test_simple_pipes_client_ignores_disconnect_when_not_connected breezy.tests.test_smart_transport.SmartClientMediumTests.test_simple_pipes_client_request_type breezy.tests.test_smart_transport.SmartClientMediumTests.test_ssh_client_ignores_disconnect_when_not_connected breezy.tests.test_smart_transport.SmartClientMediumTests.test_ssh_client_raises_on_read_when_not_connected breezy.tests.test_smart_transport.SmartClientMediumTests.test_ssh_client_repr breezy.tests.test_smart_transport.SmartClientMediumTests.test_ssh_client_repr_no_port breezy.tests.test_smart_transport.SmartClientMediumTests.test_ssh_client_repr_no_username breezy.tests.test_smart_transport.SmartClientMediumTests.test_tcp_client_host_unknown_connection_error breezy.tests.test_smart_transport.SmartClientMediumTests.test_tcp_client_ignores_disconnect_when_not_connected breezy.tests.test_smart_transport.SmartClientMediumTests.test_tcp_client_raises_on_read_when_not_connected breezy.tests.test_smart_transport.SmartServerCommandTests.test_hello breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_construct_request_handler breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_disable_vfs_handler_classes_via_environment breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_hello breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_hello_has_finished_body_on_dispatch breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_readonly_exception_becomes_transport_not_possible breezy.tests.test_smart_transport.SmartServerRequestHandlerTests.test_readv_short_read_response_contents breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_bad_header breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_byte_at_a_time breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_construct breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_decode_error breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_empty_content breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_excess_bytes breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_incomplete_chunk breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_incomplete_length breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_multidigit_length breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_one_chunk breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_read_pending_data_resets breezy.tests.test_smart_transport.TestChunkedBodyDecoder.test_two_chunks breezy.tests.test_smart_transport.TestFailedSmartServerResponse.test_construct breezy.tests.test_smart_transport.TestFailedSmartServerResponse.test_is_successful breezy.tests.test_smart_transport.TestGetProtocolFactoryForBytes.test_version_one breezy.tests.test_smart_transport.TestGetProtocolFactoryForBytes.test_version_three breezy.tests.test_smart_transport.TestGetProtocolFactoryForBytes.test_version_two breezy.tests.test_smart_transport.TestProtocolThree.test_trivial_request breezy.tests.test_smart_transport.TestRemoteTransport.test__translate_error_readonly breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_accept_bytes_after_finished_writing_errors breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_construct_sets_stream_request breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_construct_while_another_request_active_throws breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_finished_read_before_finished_write_errors breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_finished_read_clears_current_request breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_read_bytes_after_finished_reading_errors breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_read_bytes_before_finished_write_errors breezy.tests.test_smart_transport.TestSmartClientStreamMediumRequest.test_reset breezy.tests.test_smart_transport.Test_SmartClient.test_call_default_headers breezy.tests.test_smart_transport.TestSmartServerStreamMedium.test__build_protocol_returns_if_stopping breezy.tests.test_smart_transport.TestSmartServerStreamMedium.test_pipe_set_timeout breezy.tests.test_smart_transport.TestSmartServerStreamMedium.test_socket_set_timeout breezy.tests.test_smart_transport.TestSmartServerStreamMedium.test_socket_stream_shutdown_detection breezy.tests.test_smart_transport.TestSmartServerStreamMedium.test_socket_wait_for_bytes_with_shutdown breezy.tests.test_smart_transport.TestSmartTCPServer.test_propagates_timeout breezy.tests.test_smart_transport.TestSmartTCPServer.test_serve_conn_tracks_connections breezy.tests.test_smart_transport.TestSuccessfulSmartServerResponse.test_construct_no_body breezy.tests.test_smart_transport.TestSuccessfulSmartServerResponse.test_construct_rejects_body_and_body_stream breezy.tests.test_smart_transport.TestSuccessfulSmartServerResponse.test_construct_with_body breezy.tests.test_smart_transport.TestSuccessfulSmartServerResponse.test_construct_with_body_stream breezy.tests.test_smart_transport.TestSuccessfulSmartServerResponse.test_is_successful breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolOne.test_construct_version_one_client_protocol breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolOne.test_construct_version_one_server_protocol breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolOne.test__send_response_errors_with_base_response breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolOne.test_server_offset_serialisation breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolThree.test_construct_version_three_server_protocol breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolThree.test_server_offset_serialisation breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolTwo.test_construct_version_two_client_protocol breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolTwo.test_construct_version_two_server_protocol breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolTwo.test__send_response_errors_with_base_response breezy.tests.test_smart_transport.TestVersionOneFeaturesInProtocolTwo.test_server_offset_serialisation breezy.tests.test_smart_transport.WritableEndToEndTests.test__remote_path breezy.tests.test_smart_transport.WritableEndToEndTests.test_start_tcp_server breezy.tests.test_smtp_connection.TestSMTPConnection.test_get_message_addresses breezy.tests.test_source.TestSource.test_tmpdir_not_in_source_files breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_cached_vendor breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_default_vendor breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_by_environment breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_by_inspection_lsh breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_by_inspection_openssh breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_by_inspection_plink breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_by_inspection_sshcorp breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_from_path_nix_openssh breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_from_path_win32_plink breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_get_vendor_search_order breezy.tests.test_ssh_transport.SSHVendorManagerTests.test_register_vendor breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_lsh_command_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_lsh_command_tricked breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_lsh_subsystem_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_openssh_command_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_openssh_command_tricked breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_openssh_subsystem_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_plink_command_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_plink_command_tricked breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_plink_subsystem_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_sshcorp_command_arguments breezy.tests.test_ssh_transport.SubprocessVendorsTests.test_sshcorp_subsystem_arguments breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_flagged_is_static_tuple(C) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_flagged_is_static_tuple(python) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_flagged_is_tuple(C) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_flagged_is_tuple(python) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_is_static_tuple(C) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_is_static_tuple(python) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_is_tuple(C) breezy.tests.test__static_tuple.TestEnsureStaticTuple.test_is_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_as_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_as_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_as_tuples(C) breezy.tests.test__static_tuple.TestStaticTuple.test_as_tuples(python) breezy.tests.test__static_tuple.TestStaticTuple.test__c_has_C_API(C) breezy.tests.test__static_tuple.TestStaticTuple.test__c_has_C_API(python) breezy.tests.test__static_tuple.TestStaticTuple.test__c_intern_handles_refcount(C) breezy.tests.test__static_tuple.TestStaticTuple.test__c_intern_handles_refcount(python) breezy.tests.test__static_tuple.TestStaticTuple.test__c_keys_are_not_immortal(C) breezy.tests.test__static_tuple.TestStaticTuple.test__c_keys_are_not_immortal(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_all_different_same_width(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_all_different_same_width(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_cross_class(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_cross_class(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_different_types(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_different_types(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_diff_width(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_diff_width(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_equivalent_obj(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_equivalent_obj(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_mixed_depths(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_mixed_depths(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_same_obj(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_same_obj(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_similar_obj(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_similar_obj(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_some_different(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_some_different(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_to_tuples(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_to_tuples(python) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_vs_none(C) breezy.tests.test__static_tuple.TestStaticTuple.test_compare_vs_none(python) breezy.tests.test__static_tuple.TestStaticTuple.test_concat(C) breezy.tests.test__static_tuple.TestStaticTuple.test_concat(python) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_bad_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_bad_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_non_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_non_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_concat_with_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_create_bad_args(C) breezy.tests.test__static_tuple.TestStaticTuple.test_create_bad_args(python) breezy.tests.test__static_tuple.TestStaticTuple.test_create(C) breezy.tests.test__static_tuple.TestStaticTuple.test_create(python) breezy.tests.test__static_tuple.TestStaticTuple.test_empty_is_singleton(C) breezy.tests.test__static_tuple.TestStaticTuple.test_empty_is_singleton(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_generator(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_generator(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_incorrect_args(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_incorrect_args(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_iterable(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_iterable(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_list(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_list(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_not_sequence(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_not_sequence(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_static_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_static_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_str(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_str(python) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_tuple(C) breezy.tests.test__static_tuple.TestStaticTuple.test_from_sequence_tuple(python) breezy.tests.test__static_tuple.TestStaticTuple.test_getitem(C) breezy.tests.test__static_tuple.TestStaticTuple.test_getitem(python) breezy.tests.test__static_tuple.TestStaticTuple.test_hash(C) breezy.tests.test__static_tuple.TestStaticTuple.test_hash(python) breezy.tests.test__static_tuple.TestStaticTuple.test_hold_bool(C) breezy.tests.test__static_tuple.TestStaticTuple.test_hold_bool(python) breezy.tests.test__static_tuple.TestStaticTuple.test_hold_other_static_tuples(C) breezy.tests.test__static_tuple.TestStaticTuple.test_hold_other_static_tuples(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_bytes(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_bytes(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_float(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_float(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_int(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_int(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_long(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_long(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_None(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_None(python) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_unicode(C) breezy.tests.test__static_tuple.TestStaticTuple.test_holds_unicode(python) breezy.tests.test__static_tuple.TestStaticTuple.test_intern(C) breezy.tests.test__static_tuple.TestStaticTuple.test_intern(python) breezy.tests.test__static_tuple.TestStaticTuple.test_len(C) breezy.tests.test__static_tuple.TestStaticTuple.test_len(python) breezy.tests.test__static_tuple.TestStaticTuple.test_nested_referents(C) breezy.tests.test__static_tuple.TestStaticTuple.test_nested_referents(python) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle(C) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle_empty(C) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle_empty(python) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle_nested(C) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle_nested(python) breezy.tests.test__static_tuple.TestStaticTuple.test_pickle(python) breezy.tests.test__static_tuple.TestStaticTuple.test_refcount(C) breezy.tests.test__static_tuple.TestStaticTuple.test_refcount(python) breezy.tests.test__static_tuple.TestStaticTuple.test_referents(C) breezy.tests.test__static_tuple.TestStaticTuple.test_referents(python) breezy.tests.test__static_tuple.TestStaticTuple.test__repr__(C) breezy.tests.test__static_tuple.TestStaticTuple.test__repr__(python) breezy.tests.test__static_tuple.TestStaticTuple.test_slice(C) breezy.tests.test__static_tuple.TestStaticTuple.test_slice(python) breezy.tests.test__static_tuple.TestStaticTuple.test_static_tuple_thunk(C) breezy.tests.test__static_tuple.TestStaticTuple.test_static_tuple_thunk(python) breezy.tests.test_status.TestHooks.test_constructor breezy.tests.test_status.TestHooks.test_installed_hooks_are_StatusHooks breezy.tests.test_strace.TestStrace.test_strace_callable_is_called breezy.tests.test_strace.TestStrace.test_strace_callable_result breezy.tests.test_strace.TestStrace.test_strace_result_has_raw_log breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_dict breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_function breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_list breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_method breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_passed breezy.tests.test_symbol_versioning.TestDeprecationWarnings.test_deprecated_static breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_activate_deprecation_no_error breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_activate_deprecation_with_DW_error breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_activate_deprecation_with_error breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_set_restore_filters breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_suppress_deprecation_warnings breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_suppress_deprecation_with_filter breezy.tests.test_symbol_versioning.TestSuppressAndActivate.test_suppress_deprecation_with_warning_filter breezy.tests.test_tag.DisabledTagsTests.test_get_reverse_tag_dict breezy.tests.test_tag.DisabledTagsTests.test_set_tag breezy.tests.test_test_server.TestTCPServerInAThread.test_server_fails_to_start(TestingTCPServer) breezy.tests.test_test_server.TestTCPServerInAThread.test_server_fails_to_start(TestingThreadingTCPServer) breezy.tests.test_test_server.TestTestingSmartConnectionHandler.test_connection_shutdown_while_serving_no_error breezy.tests.test_test_server.TestTestingSmartConnectionHandler.test_connection_timeout_suppressed breezy.tests.test_test_server.TestTestingSmartServer.test_sets_client_timeout breezy.tests.test_textmerge.TestMerge2.test_agreed breezy.tests.test_textmerge.TestMerge2.test_conflict breezy.tests.test_textmerge.TestMerge2.test_reprocess breezy.tests.test_timestamp.TestPatchHeader.test_format_patch_date breezy.tests.test_timestamp.TestPatchHeader.test_parse_patch_date breezy.tests.test_timestamp.TestPatchHeader.test_parse_patch_date_bad breezy.tests.test_timestamp.UnpackHighresDateTests.test_random breezy.tests.test_timestamp.UnpackHighresDateTests.test_unpack_highres_date breezy.tests.test_trace.TestBzrLog.test_log_rollover breezy.tests.test_trace.TestLogging.test_log breezy.tests.test_trace.TestLogging.test_log_bytes_arg breezy.tests.test_trace.TestLogging.test_log_bytes_msg breezy.tests.test_trace.TestLogging.test_log_mixed_strings breezy.tests.test_trace.TestLogging.test_log_repr_broken breezy.tests.test_trace.TestLogging.test_log_sub breezy.tests.test_trace.TestLogging.test_log_unicode_arg breezy.tests.test_trace.TestLogging.test_log_unicode_msg breezy.tests.test_trace.TestLogging.test_log_utf8_arg breezy.tests.test_trace.TestLogging.test_log_utf8_msg breezy.tests.test_trace.TestLogging.test_note breezy.tests.test_trace.TestLogging.test_warning breezy.tests.test_trace.TestTraceConfiguration.test_default_config breezy.tests.test_trace.TestTrace.test_format_exception breezy.tests.test_trace.TestTrace.test_format_interrupt_exception breezy.tests.test_trace.TestTrace.test_format_io_error breezy.tests.test_trace.TestTrace.test_format_mem_dump breezy.tests.test_trace.TestTrace.test_format_memory_error breezy.tests.test_trace.TestTrace.test_format_os_error breezy.tests.test_trace.TestTrace.test_format_pywintypes_error breezy.tests.test_trace.TestTrace.test_format_sockets_error breezy.tests.test_trace.TestTrace.test_format_sys_exception breezy.tests.test_trace.TestTrace.test_format_unicode_error breezy.tests.test_trace.TestTrace.test_mutter_callsite_1 breezy.tests.test_trace.TestTrace.test_mutter_callsite_2 breezy.tests.test_trace.TestTrace.test_mutter_never_fails breezy.tests.test_trace.TestTrace.test__open_brz_log_uses_stderr_for_failures breezy.tests.test_trace.TestTrace.test_push_log_file breezy.tests.test_trace.TestTrace.test_report_broken_pipe breezy.tests.test_trace.TestTrace.test_report_external_import_error breezy.tests.test_trace.TestTrace.test_report_import_syntax_error breezy.tests.test_trace.TestTrace.test_show_error breezy.tests.test_trace.TestTrace.test_trace_argument_unicode breezy.tests.test_trace.TestTrace.test_trace_argument_utf8 breezy.tests.test_trace.TestTrace.test_trace_unicode breezy.tests.test_trace.TestVerbosityLevel.test_be_quiet breezy.tests.test_trace.TestVerbosityLevel.test_verbosity_level breezy.tests.test_transactions.TestPassThroughTransaction.test_add_and_get breezy.tests.test_transactions.TestPassThroughTransaction.test_cache_is_ignored breezy.tests.test_transactions.TestPassThroughTransaction.test_construct breezy.tests.test_transactions.TestPassThroughTransaction.test_finish_returns breezy.tests.test_transactions.TestPassThroughTransaction.test_map breezy.tests.test_transactions.TestPassThroughTransaction.test_register_clean breezy.tests.test_transactions.TestPassThroughTransaction.test_register_dirty breezy.tests.test_transactions.TestPassThroughTransaction.test_writable breezy.tests.test_transactions.TestReadOnlyTransaction.test_add_and_get breezy.tests.test_transactions.TestReadOnlyTransaction.test_finish_does_not_tell_versioned_file_finished breezy.tests.test_transactions.TestReadOnlyTransaction.test_finish_returns breezy.tests.test_transactions.TestReadOnlyTransaction.test_map breezy.tests.test_transactions.TestReadOnlyTransaction.test_register_clean breezy.tests.test_transactions.TestReadOnlyTransaction.test_register_dirty_raises breezy.tests.test_transactions.TestReadOnlyTransaction.test_small_cache_with_references breezy.tests.test_transactions.TestReadOnlyTransaction.test_writable breezy.tests.test_transactions.TestSymbols.test_public_symbols breezy.tests.test_transactions.TestWriteTransaction.test_add_and_get breezy.tests.test_transactions.TestWriteTransaction.test_finish_returns breezy.tests.test_transactions.TestWriteTransaction.test_map breezy.tests.test_transactions.TestWriteTransaction.test_register_clean breezy.tests.test_transactions.TestWriteTransaction.test_register_dirty breezy.tests.test_transactions.TestWriteTransaction.test_small_cache_with_references breezy.tests.test_transactions.TestWriteTransaction.test_writable breezy.tests.test_transform.TestCommitTransform.test_first_commit_with_merge_parents breezy.tests.test_transform.TestFileMover.test_apply_deletions breezy.tests.test_transform.TestFileMover.test_file_mover breezy.tests.test_transform.TestFileMover.test_file_mover_rollback breezy.tests.test_transform.TestFileMover.test_pre_delete_rollback breezy.tests.test_transform.TestOrphan.test_no_orphan_for_transform_preview breezy.tests.test_transform.TestTransformHooks.test_post_commit_hooks breezy.tests.test_transform.TestTransformHooks.test_pre_commit_hooks breezy.tests.test_transform.TestTransformPreview.test_dir_content_summary breezy.tests.test_transform.TestTransformPreview.test_get_symlink_target breezy.tests.test_transform.TestTransformPreview.test_missing_content_summary breezy.tests.test_transform.TestTransformPreview.test_tree_content_summary breezy.tests.test_transform.TestTransformRollback.test_rollback_deletion breezy.tests.test_transform.TestTransformRollback.test_rollback_rename breezy.tests.test_transform.TestTransformRollback.test_rollback_rename_into_place breezy.tests.test_transform.TestTreeTransform.test_add_two_roots breezy.tests.test_transform.TestTreeTransform.test_add_unversioned_root breezy.tests.test_transform.TestTreeTransform.test_adjust_path_updates_child_limbo_names breezy.tests.test_transform.TestTreeTransform.test_apply_retains_file_id breezy.tests.test_transform.TestTreeTransform.test_apply_retains_root_directory breezy.tests.test_transform.TestTreeTransform.test_cancel_with_cancelled_child_should_succeed breezy.tests.test_transform.TestTreeTransform.test_existing_limbo breezy.tests.test_transform.TestTreeTransform.test_existing_pending_deletion breezy.tests.test_transform.TestTreeTransform.test_finalize_order breezy.tests.test_transform.TestTreeTransform.test_fixup_new_roots_permits_empty_tree breezy.tests.test_transform.TestTreeTransform.test_noname_contents breezy.tests.test_transform.TestTreeTransform.test_noname_contents_nested breezy.tests.test_transform.TestTreeTransform.test_remove_root_fixup breezy.tests.test_transform.TestTreeTransform.test_retain_existing_root breezy.tests.test_transform.TestTreeTransform.test_retain_existing_root_added_file breezy.tests.test_transform.TestTreeTransform.test_reuse_after_cancel breezy.tests.test_transform.TestTreeTransform.test_reuse_name breezy.tests.test_transform.TestTreeTransform.test_reuse_when_first_moved breezy.tests.test_transform.TestTreeTransform.test_two_directories_clash breezy.tests.test_transform.TestTreeTransform.test_two_directories_clash_finalize breezy.tests.test_transform.TestTreeTransform.test_unable_create_symlink breezy.tests.test_transport.ChrootDecoratorTransportTest.test_abspath breezy.tests.test_transport.ChrootDecoratorTransportTest.test_chroot_url_preserves_chroot breezy.tests.test_transport.ChrootDecoratorTransportTest.test_clone breezy.tests.test_transport.ChrootDecoratorTransportTest.test_urljoin_preserves_chroot breezy.tests.test_transport.FakeNFSDecoratorTests.test_fakenfs_rename_semantics breezy.tests.test_transport.FakeNFSDecoratorTests.test_fakenfs_server_default breezy.tests.test_transport.FakeNFSDecoratorTests.test_http_parameters breezy.tests.test_transport.FakeNFSDecoratorTests.test_local_parameters breezy.tests.test_transport.FakeVFATDecoratorTests.test_forbidden_chars breezy.tests.test_transport.FakeVFATDecoratorTests.test_transport_creation breezy.tests.test_transport.FakeVFATDecoratorTests.test_transport_mkdir breezy.tests.test_transport_log.TestTransportLog.test_log_transport breezy.tests.test_transport.PathFilteringDecoratorTransportTest.test_abspath breezy.tests.test_transport.PathFilteringDecoratorTransportTest.test_clone breezy.tests.test_transport.PathFilteringDecoratorTransportTest.test__filter breezy.tests.test_transport.PathFilteringDecoratorTransportTest.test_filter_invocation breezy.tests.test_transport.PathFilteringDecoratorTransportTest.test_url_preserves_pathfiltering breezy.tests.test_transport.ReadonlyDecoratorTransportTest.test_http_parameters breezy.tests.test_transport.ReadonlyDecoratorTransportTest.test_local_parameters breezy.tests.test_transport.TestChrootServer.test_construct breezy.tests.test_transport.TestChrootServer.test_get_url breezy.tests.test_transport.TestChrootServer.test_setUp breezy.tests.test_transport.TestChrootServer.test_stop_server breezy.tests.test_transport.TestCoalesceOffsets.test_coalesce_empty breezy.tests.test_transport.TestCoalesceOffsets.test_coalesce_overlapped breezy.tests.test_transport.TestConnectedTransport.test_parse_invalid_url breezy.tests.test_transport.TestConnectedTransport.test_parse_quoted_url breezy.tests.test_transport.TestConnectedTransport.test_parse_url breezy.tests.test_transport.TestConnectedTransport.test_parse_url_with_at_in_user breezy.tests.test_transport.TestConnectedTransport.test_relpath breezy.tests.test_transport.TestHooks.test_post_connect breezy.tests.test_transport.TestHooks.test_transporthooks_initialisation breezy.tests.test_transport.TestLocalTransportMutation.test_local_transport_mkdir breezy.tests.test_transport.TestLocalTransportMutation.test_local_transport_mkdir_permission_denied breezy.tests.test_transport.TestLocalTransports.test_get_transport_from_abspath breezy.tests.test_transport.TestLocalTransports.test_get_transport_from_local_url breezy.tests.test_transport.TestLocalTransports.test_get_transport_from_relpath breezy.tests.test_transport.TestLocalTransports.test_local_abspath breezy.tests.test_transport.TestLocalTransportWriteStream.test_missing_directory breezy.tests.test_transport.TestLocationToUrl.test_absolute_file_url breezy.tests.test_transport.TestLocationToUrl.test_directory breezy.tests.test_transport.TestLocationToUrl.test_path breezy.tests.test_transport.TestLocationToUrl.test_regular_url breezy.tests.test_transport.TestLocationToUrl.test_relative_file_url breezy.tests.test_transport.TestMemoryServer.test_create_server breezy.tests.test_transport.TestMemoryTransport.test_abspath breezy.tests.test_transport.TestMemoryTransport.test_abspath_of_relpath_starting_at_root breezy.tests.test_transport.TestMemoryTransport.test_abspath_of_root breezy.tests.test_transport.TestMemoryTransport.test_clone breezy.tests.test_transport.TestMemoryTransport.test_get_missing breezy.tests.test_transport.TestMemoryTransport.test_get_transport breezy.tests.test_transport.TestMemoryTransport.test_has_missing breezy.tests.test_transport.TestMemoryTransport.test_mkdir_missing_parent breezy.tests.test_transport.TestMemoryTransport.test_mkdir_twice breezy.tests.test_transport.TestMemoryTransport.test_parameters breezy.tests.test_transport.TestMemoryTransport.test_put_without_dir_fails breezy.tests.test_transport.TestReusedTransports.test_don_t_reuse_different_transport breezy.tests.test_transport.TestReusedTransports.test_reuse_same_transport breezy.tests.test_transport.TestSSHConnections.test_bzr_connect_to_bzr_ssh breezy.tests.test_transport.TestTransportFromPath.test_with_path breezy.tests.test_transport.TestTransportFromPath.test_with_url breezy.tests.test_transport.TestTransportFromUrl.test_with_path breezy.tests.test_transport.TestTransportFromUrl.test_with_url breezy.tests.test_transport.TestTransportFromUrl.test_with_url_and_segment_parameters breezy.tests.test_transport.TestTransport.test__get_set_protocol_handlers breezy.tests.test_transport.TestTransport.test_get_transport_modules breezy.tests.test_transport.TestTransport.test_LateReadError breezy.tests.test_transport.TestTransport.test_local_abspath_non_local_transport breezy.tests.test_transport.TestTransport.test_ssh_hints breezy.tests.test_transport.TestTransport.test_transport_dependency breezy.tests.test_transport.TestTransport.test_transport_fallback breezy.tests.test_transport.TestTransportTrace.test_clone_preserves_activity breezy.tests.test_transport.TestTransportTrace.test_decorator breezy.tests.test_transport.TestUnhtml.test_truncation breezy.tests.test_transport.TestWin32LocalTransport.test_unc_clone_to_root breezy.tests.test_treebuilder.TestFakeTree.testFakeTree breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_build_tree_not_started_errors breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_create breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_finish_tree_not_started_errors breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_finish_tree_unlocks breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_start_tree_locks_write breezy.tests.test_treebuilder.TestTreeBuilderMemoryTree.test_start_tree_when_started_fails breezy.tests.test_treeshape.TestTreeShape.test_build_tree_symlink breezy.tests.test_tree.TestErrors.test_file_timestamp_unavailable breezy.tests.test_tree.TestInterTree.test_working_tree_working_tree breezy.tests.test_tree.TestMultiWalker.test__path_to_key breezy.tests.test_tree.TestMultiWalker.test__step_one_empty breezy.tests.test_tree.TestTree.test_changes_from_with_root breezy.tests.test_tree.TestTree.test_compare_calls_InterTree_compare breezy.tests.test_tsort.MergeSortTests.test_dotted_revnos_with_simple_merges breezy.tests.test_tsort.MergeSortTests.test_end_of_merge_multiple_revisions_merged_at_once breezy.tests.test_tsort.MergeSortTests.test_end_of_merge_not_last_revision_in_branch breezy.tests.test_tsort.MergeSortTests.test_mainline_revs_partial breezy.tests.test_tsort.MergeSortTests.test_mainline_revs_with_ghost breezy.tests.test_tsort.MergeSortTests.test_mainline_revs_with_none breezy.tests.test_tsort.MergeSortTests.test_merge_depth_with_nested_merges breezy.tests.test_tsort.MergeSortTests.test_merge_sort_empty breezy.tests.test_tsort.MergeSortTests.test_merge_sort_not_empty_no_tip breezy.tests.test_tsort.MergeSortTests.test_merge_sort_one_revision breezy.tests.test_tsort.MergeSortTests.test_merge_sort_race breezy.tests.test_tsort.MergeSortTests.test_parallel_root_sequence_numbers_increase_with_merges breezy.tests.test_tsort.MergeSortTests.test_revnos_are_globally_assigned breezy.tests.test_tsort.MergeSortTests.test_roots_and_sub_branches_versus_ghosts breezy.tests.test_tsort.MergeSortTests.test_sequence_numbers_increase_no_merges breezy.tests.test_tsort.MergeSortTests.test_sequence_numbers_increase_with_merges breezy.tests.test_tsort.TopoSortTests.test_topo_sort_cycle_with_tail breezy.tests.test_tsort.TopoSortTests.test_tsort_1 breezy.tests.test_tsort.TopoSortTests.test_tsort_cycle breezy.tests.test_tsort.TopoSortTests.test_tsort_cycle_2 breezy.tests.test_tsort.TopoSortTests.test_tsort_easy breezy.tests.test_tsort.TopoSortTests.test_tsort_empty breezy.tests.test_tsort.TopoSortTests.test_tsort_partial breezy.tests.test_tsort.TopoSortTests.test_tsort_unincluded_parent breezy.tests.test_tuned_gzip.TestToGzip.test_enormous_chunks breezy.tests.test_tuned_gzip.TestToGzip.test_large_chunks breezy.tests.test_tuned_gzip.TestToGzip.test_simple_text breezy.tests.test_tuned_gzip.TestToGzip.test_single_chunk breezy.tests.test_ui.CannedInputUIFactoryTests.test_canned_input_get_input breezy.tests.test_ui.SilentUITests.test_silent_factory_get_password breezy.tests.test_ui.SilentUITests.test_silent_ui_getbool breezy.tests.test_ui.TestBoolFromString.test_invalid_values breezy.tests.test_ui.TestBoolFromString.test_know_valid_values breezy.tests.test_ui.TestBoolFromString.test_provided_values breezy.tests.test_ui.TestConfirmationUserInterfacePolicy.test_confirm_action_default breezy.tests.test_ui.TestConfirmationUserInterfacePolicy.test_confirm_action_specific breezy.tests.test_ui.TestConfirmationUserInterfacePolicy.test_repr breezy.tests.test_ui.TestProgressRecordingUI.test_nested_ignore_depth_beyond_one breezy.tests.test_ui.TestTextUIFactory.test_quietness breezy.tests.test_ui.TestTextUIFactory.test_text_factory_ascii_password breezy.tests.test_ui.TestTextUIFactory.test_text_factory_confirm breezy.tests.test_ui.TestTextUIFactory.test_text_factory_prompt breezy.tests.test_ui.TestTextUIFactory.test_text_factory_prompts_and_clears breezy.tests.test_ui.TestTextUIFactory.test_text_factory_unicode_password breezy.tests.test_ui.TestTextUIFactory.test_text_tick_after_update breezy.tests.test_ui.TestTextUIFactory.test_text_ui_choose_bad_parameters breezy.tests.test_ui.TestTextUIFactory.test_text_ui_choose_no_default breezy.tests.test_ui.TestTextUIFactory.test_text_ui_choose_prompt_automatic breezy.tests.test_ui.TestTextUIFactory.test_text_ui_choose_prompt_explicit breezy.tests.test_ui.TestTextUIFactory.test_text_ui_choose_return_values breezy.tests.test_ui.TestTextUIFactory.test_text_ui_get_boolean breezy.tests.test_ui.TestTextUIFactory.test_text_ui_get_integer breezy.tests.test_ui.TestTextUIFactory.test_text_ui_getusername breezy.tests.test_ui.TestTextUIFactory.test_text_ui_getusername_unicode breezy.tests.test_ui.TestTextUIFactory.test_text_ui_show_user_warning breezy.tests.test_ui.TestTextUIOutputStream.test_output_clears_terminal breezy.tests.test_ui.TestUIConfiguration.test_output_encoding_configuration breezy.tests.test_ui.TestUIFactoryTests.test_test_ui_factory_progress breezy.tests.test_ui.UITests.test_progress_construction breezy.tests.test_ui.UITests.test_text_ui_non_terminal breezy.tests.test_upstream_import.TestImport.test_common_directory breezy.tests.test_upstream_import.TestImport.test_get_archive_type breezy.tests.test_upstream_import.TestImport.test_top_path breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_allowed_reference breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_branch_reference_forbidden breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_branch_reference_loop breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_check_initial_url breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_check_referenced_urls breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_not_reference breezy.tests.test_url_policy_open.TestBranchOpenerCheckAndFollowBranchReference.test_self_referencing_branch breezy.tests.test_url_policy_open.TestBranchOpenerStacking.test_default_probers breezy.tests.test_url_policy_open.TestBranchOpenerStacking.test_probers breezy.tests.test_urlutils.QuoteTests.test_quote breezy.tests.test_urlutils.QuoteTests.test_quote_tildes breezy.tests.test_urlutils.TestCwdToURL.test_dot breezy.tests.test_urlutils.TestDeriveToLocation.test_to_locations_derived_from_paths breezy.tests.test_urlutils.TestDeriveToLocation.test_to_locations_derived_from_urls breezy.tests.test_urlutils.TestFileRelpath.test_child_posix breezy.tests.test_urlutils.TestFileRelpath.test_parent_posix breezy.tests.test_urlutils.TestFileRelpath.test_same_url_posix breezy.tests.test_urlutils.TestFileRelpath.test_sibling_posix breezy.tests.test_urlutils.TestParseURL.test_ipv6 breezy.tests.test_urlutils.TestParseURL.test_ipv6_port breezy.tests.test_urlutils.TestParseURL.test_parse_simple breezy.tests.test_urlutils.TestRebaseURL.test_determine_relative_path breezy.tests.test_urlutils.TestRebaseURL.test_different_hosts breezy.tests.test_urlutils.TestRebaseURL.test_different_ports breezy.tests.test_urlutils.TestRebaseURL.test_different_protocol breezy.tests.test_urlutils.TestRebaseURL.test_non_relative breezy.tests.test_urlutils.TestRebaseURL.test_rebase_success breezy.tests.test_urlutils.TestURL.test__combine_paths breezy.tests.test_urlutils.TestURL.test_eq breezy.tests.test_urlutils.TestURL.test_ipv6 breezy.tests.test_urlutils.TestURL.test_ipv6_port breezy.tests.test_urlutils.TestURL.test_parse_simple breezy.tests.test_urlutils.TestURL.test_quoted breezy.tests.test_urlutils.TestURL.test_repr breezy.tests.test_urlutils.TestURL.test_str breezy.tests.test_urlutils.TestUrlToPath.test_basename breezy.tests.test_urlutils.TestUrlToPath.test_dirname breezy.tests.test_urlutils.TestUrlToPath.test_escape_tildes breezy.tests.test_urlutils.TestUrlToPath.test_function_type breezy.tests.test_urlutils.TestUrlToPath.test_is_url breezy.tests.test_urlutils.TestUrlToPath.test_join breezy.tests.test_urlutils.TestUrlToPath.test_joinpath breezy.tests.test_urlutils.TestUrlToPath.test_join_segment_parameters breezy.tests.test_urlutils.TestUrlToPath.test_join_segment_parameters_raw breezy.tests.test_urlutils.TestUrlToPath.test_posix_local_path_from_url breezy.tests.test_urlutils.TestUrlToPath.test_relative_url breezy.tests.test_urlutils.TestUrlToPath.test_split breezy.tests.test_urlutils.TestUrlToPath.test_split_segment_parameters breezy.tests.test_urlutils.TestUrlToPath.test_split_segment_parameters_raw breezy.tests.test_urlutils.TestUrlToPath.test_strip_trailing_slash breezy.tests.test_urlutils.TestUrlToPath.test_unescape breezy.tests.test_urlutils.TestUrlToPath.test_url_scheme_re breezy.tests.test_urlutils.TestUrlToPath.test_win32_extract_drive_letter breezy.tests.test_urlutils.TestUrlToPath.test_win32_local_path_from_url breezy.tests.test_urlutils.TestUrlToPath.test_win32_strip_local_trailing_slash breezy.tests.test_urlutils.TestUrlToPath.test_win32_unc_path_from_url breezy.tests.test_urlutils.TestUrlToPath.test_win32_unc_path_to_url breezy.tests.test_utextwrap.TestIndent.test_indent breezy.tests.test_utextwrap.TestLongWord.test_longword breezy.tests.test_utextwrap.TestUTextWrap.test_cut breezy.tests.test_utextwrap.TestUTextWrap.test_width breezy.tests.test_utextwrap.TestWrap.test_wrap breezy.tests.test_versionedfile.Test_MPDiffGenerator.test_raises_on_ghost_keys breezy.tests.test_version_info.CustomVersionInfoTests.test_custom_without_template breezy.tests.test_version_info.TestVersionInfoFormatRegistry.test_register_remove breezy.tests.test_version.TestBzrlibVersioning.test_get_brz_source_tree breezy.tests.test_vf_search.TestLimitedSearchResultFromParentMap.test_ancestry_1 breezy.tests.test_vf_search.TestLimitedSearchResultFromParentMap.test_empty_ancestry breezy.tests.test_vf_search.TestLimitedSearchResultFromParentMap.test_multiple_heads breezy.tests.test_vf_search.TestPendingAncestryResultGetKeys.test_get_keys_excludes_null breezy.tests.test_vf_search.TestPendingAncestryResultRefine.test_refine breezy.tests.test_vf_search.TestSearchResultFromParentMap.test_ancestry_1 breezy.tests.test_vf_search.TestSearchResultFromParentMap.test_ancestry_2 breezy.tests.test_vf_search.TestSearchResultFromParentMap.test_no_parents breezy.tests.test_vf_search.TestSearchResultRefine.test_refine breezy.tests.test_views.TestErrors.test_file_outside_view breezy.tests.test_views.TestErrors.test_no_such_view breezy.tests.test_views.TestErrors.test_views_not_supported breezy.tests.test__walkdirs_win32.TestWin32Finder.test_directory breezy.tests.test__walkdirs_win32.TestWin32Finder.test_empty_directory breezy.tests.test__walkdirs_win32.TestWin32Finder.test_file breezy.tests.test__walkdirs_win32.TestWin32Finder.test_missing_dir breezy.tests.test__walkdirs_win32.TestWin32Finder.test_prefix breezy.tests.test__walkdirs_win32.TestWin32Finder.test_top_prefix_to_starting_dir breezy.tests.test__walkdirs_win32.Test_Win32Stat.test_zero_members_present breezy.tests.test_weave.BadInsert.runTest breezy.tests.test_weave.BadWeave.runTest breezy.tests.test_weave.Conflicts.runTest breezy.tests.test_weave.Easy.runTest breezy.tests.test_weave.InvalidAdd.runTest breezy.tests.test_weave.NonConflict.runTest breezy.tests.test_weave.SuicideDelete.runTest breezy.tests.test_weave.TestNeedsReweave.test_compatible_parents breezy.tests.test_weave.TestWeaveFile.test_empty_file breezy.tests.test_whitebox.MoreTests.test_relpath breezy.tests.test_win32utils.TestAppPaths.test_iexplore breezy.tests.test_win32utils.TestAppPaths.test_not_existing breezy.tests.test_win32utils.TestAppPaths.test_wordpad breezy.tests.test_win32utils.Test_CommandLineToArgv.test_backslashes breezy.tests.test_win32utils.Test_CommandLineToArgv.test_case_insensitive_globs breezy.tests.test_win32utils.Test_CommandLineToArgv.test_glob_paths breezy.tests.test_win32utils.Test_CommandLineToArgv.test_quoted_globs breezy.tests.test_win32utils.Test_CommandLineToArgv.test_slashes_changed breezy.tests.test_win32utils.Test_CommandLineToArgv.test_with_pdb breezy.tests.test_win32utils.TestGetEnvironUnicode.test_get breezy.tests.test_win32utils.TestGetEnvironUnicode.test_long breezy.tests.test_win32utils.TestGetEnvironUnicode.test_unexpected_error breezy.tests.test_win32utils.TestGetEnvironUnicode.test_unicode breezy.tests.test_win32utils.TestGetEnvironUnicode.test_unset breezy.tests.test_win32utils.TestGetEnvironUnicode.test_unset_default breezy.tests.test_win32utils.TestLocationsCtypes.test_appdata_matches_environment breezy.tests.test_win32utils.TestLocationsCtypes.test_appdata_not_using_environment breezy.tests.test_win32utils.TestLocationsCtypes.test_local_appdata_matches_environment breezy.tests.test_win32utils.TestLocationsCtypes.test_local_appdata_not_using_environment breezy.tests.test_win32utils.TestLocationsPywin32.test_appdata_matches_environment breezy.tests.test_win32utils.TestLocationsPywin32.test_appdata_not_using_environment breezy.tests.test_win32utils.TestLocationsPywin32.test_local_appdata_matches_environment breezy.tests.test_win32utils.TestLocationsPywin32.test_local_appdata_not_using_environment breezy.tests.test_win32utils.TestSetHidden.test_dot_bzr_in_unicode_dir breezy.tests.test_win32utils.TestSetHidden.test_unicode_dir breezy.tests.test_win32utils.TestWin32UtilsGlobExpand.test_backslash_globbing breezy.tests.test_win32utils.TestWin32UtilsGlobExpand.test_case_insensitive_globbing breezy.tests.test_win32utils.TestWin32UtilsGlobExpand.test_empty_tree breezy.tests.test_win32utils.TestWin32UtilsGlobExpand.test_tree_ascii breezy.tests.test_win32utils.TestWin32UtilsGlobExpand.test_unicode_backslashes breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_empty_basis_revtree_to_dirstate_tree breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_empty_basis_to_dirstate_tree breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_new_dirstate_on_new_lock breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_no_dirstate_outside_lock breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_uses_lockdir breezy.tests.test_workingtree_4.TestWorkingTreeFormat4.test_with_subtree_supports_tree_references breezy.tests.test_workingtree.TestDefaultFormat.test_from_string breezy.tests.test_workingtree.TestDefaultFormat.test_open breezy.tests.test_workingtree.TestDefaultFormat.test_open_containing breezy.tests.test_workingtree.TestFindTrees.test_find_trees breezy.tests.test_workingtree.TestStoredUncommitted.test_restore_uncommitted_none breezy.tests.test_workingtree.TestTreeDirectory.test_kind_character breezy.tests.test_workingtree.TestTreeEntry.test_kind_character breezy.tests.test_workingtree.TestTreeFile.test_kind_character breezy.tests.test_workingtree.TestTreeLink.test_kind_character breezy.tests.test_workingtree.TestWorkingTreeFormatRegistry.test_get_all breezy.tests.test_workingtree.TestWorkingTreeFormatRegistry.test_register_extra breezy.tests.test_workingtree.TestWorkingTreeFormatRegistry.test_register_extra_lazy breezy.tests.test_workingtree.TestWorkingTreeFormatRegistry.test_register_unregister_format breezy.tests.test_workingtree.TestWorkingTreeFormat.test_find_format_no_tree breezy.tests.test_workingtree.TestWorkingTreeFormat.test_find_format_with_features breezy.tests.test_wsgi.TestWSGI.test_construct breezy.tests.test_wsgi.TestWSGI.test_http_get_rejected breezy.tests.test_wsgi.TestWSGI.test_make_app breezy.tests.test_wsgi.TestWSGI.test_relpath_setter breezy.tests.test_wsgi.TestWSGI.test_relpath_setter_bad_path_prefix breezy.tests.test_wsgi.TestWSGI.test_relpath_setter_bad_path_suffix breezy.tests.test_xml.TestMisc.test_unescape_xml breezy.tests.test_xml.TestSerializer.test_wrong_format_v7 breezy.timestamp.format_highres_date breezy.transport.http.unhtml_roughly breezy-3.0.0~bzr6852/setup.py0000755000000000000000000007036713235603346014140 0ustar 00000000000000#! /usr/bin/env python """Installation script for brz. Run it with './setup.py install', or './setup.py --help' for more options """ import os import os.path import sys import copy import glob if sys.version_info < (2, 7): sys.stderr.write("[ERROR] Not a supported Python version. Need 2.7+\n") sys.exit(1) # NOTE: The directory containing setup.py, whether run by 'python setup.py' or # './setup.py' or the equivalent with another path, should always be at the # start of the path, so this should find the right one... import breezy def get_long_description(): dirname = os.path.dirname(__file__) readme = os.path.join(dirname, 'README') f = open(readme, 'rb') try: return f.read() finally: f.close() ## # META INFORMATION FOR SETUP # see http://docs.python.org/dist/meta-data.html META_INFO = { 'name': 'breezy', 'version': breezy.__version__, 'maintainer': 'Breezy Developers', 'maintainer_email': 'team@breezy-vcs.org', 'url': 'https://www.breezy-vcs.org/', 'description': 'Friendly distributed version control system', 'license': 'GNU GPL v2', 'download_url': 'https://launchpad.net/brz/+download', 'long_description': get_long_description(), 'classifiers': [ 'Development Status :: 6 - Mature', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: Microsoft :: Windows', 'Operating System :: OS Independent', 'Operating System :: POSIX', 'Programming Language :: Python', 'Programming Language :: C', 'Topic :: Software Development :: Version Control', ], 'install_requires': [ 'six>=1.9.0', ], } # The list of packages is automatically generated later. Add other things # that are part of BZRLIB here. BZRLIB = {} PKG_DATA = {# install files from selftest suite 'package_data': {'breezy': ['doc/api/*.txt', 'tests/test_patches_data/*', 'help_topics/en/*.txt', 'tests/ssl_certs/ca.crt', 'tests/ssl_certs/server_without_pass.key', 'tests/ssl_certs/server_with_pass.key', 'tests/ssl_certs/server.crt', ]}, } I18N_FILES = [] for filepath in glob.glob("breezy/locale/*/LC_MESSAGES/*.mo"): langfile = filepath[len("breezy/locale/"):] targetpath = os.path.dirname(os.path.join("share/locale", langfile)) I18N_FILES.append((targetpath, [filepath])) def get_breezy_packages(): """Recurse through the breezy directory, and extract the package names""" packages = [] base_path = os.path.dirname(os.path.abspath(breezy.__file__)) for root, dirs, files in os.walk(base_path): if '__init__.py' in files: assert root.startswith(base_path) # Get just the path below breezy package_path = root[len(base_path):] # Remove leading and trailing slashes package_path = package_path.strip('\\/') if not package_path: package_name = 'breezy' else: package_name = ('breezy.' + package_path.replace('/', '.').replace('\\', '.')) packages.append(package_name) return sorted(packages) BZRLIB['packages'] = get_breezy_packages() from distutils import log from distutils.core import setup from distutils.version import LooseVersion from distutils.command.install_scripts import install_scripts from distutils.command.install_data import install_data from distutils.command.build import build ############################### # Overridden distutils actions ############################### class my_install_scripts(install_scripts): """ Customized install_scripts distutils action. Create brz.bat for win32. """ def run(self): install_scripts.run(self) # standard action if sys.platform == "win32": try: scripts_dir = os.path.join(sys.prefix, 'Scripts') script_path = self._quoted_path(os.path.join(scripts_dir, "brz")) python_exe = self._quoted_path(sys.executable) args = self._win_batch_args() batch_str = "@%s %s %s" % (python_exe, script_path, args) batch_path = os.path.join(self.install_dir, "brz.bat") f = file(batch_path, "w") f.write(batch_str) f.close() print(("Created: %s" % batch_path)) except Exception: e = sys.exc_info()[1] print(("ERROR: Unable to create %s: %s" % (batch_path, e))) def _quoted_path(self, path): if ' ' in path: return '"' + path + '"' else: return path def _win_batch_args(self): from breezy.win32utils import winver if winver == 'Windows NT': return '%*' else: return '%1 %2 %3 %4 %5 %6 %7 %8 %9' #/class my_install_scripts class bzr_build(build): """Customized build distutils action. Generate brz.1. """ sub_commands = build.sub_commands + [ ('build_mo', lambda _: True), ] def run(self): build.run(self) from tools import generate_docs generate_docs.main(argv=["brz", "man"]) ######################## ## Setup ######################## from breezy.bzr_distutils import build_mo command_classes = {'install_scripts': my_install_scripts, 'build': bzr_build, 'build_mo': build_mo, } from distutils import log from distutils.errors import CCompilerError, DistutilsPlatformError from distutils.extension import Extension ext_modules = [] try: from Cython.Distutils import build_ext from Cython.Compiler.Version import version as cython_version except ImportError: have_cython = False # try to build the extension from the prior generated source. print("") print("The python package 'Cython' is not available." " If the .c files are available,") print("they will be built," " but modifying the .pyx files will not rebuild them.") print("") from distutils.command.build_ext import build_ext else: have_cython = True cython_version_info = LooseVersion(cython_version) class build_ext_if_possible(build_ext): user_options = build_ext.user_options + [ ('allow-python-fallback', None, "When an extension cannot be built, allow falling" " back to the pure-python implementation.") ] def initialize_options(self): build_ext.initialize_options(self) self.allow_python_fallback = False def run(self): try: build_ext.run(self) except DistutilsPlatformError: e = sys.exc_info()[1] if not self.allow_python_fallback: log.warn('\n Cannot build extensions.\n' ' Use "build_ext --allow-python-fallback" to use' ' slower python implementations instead.\n') raise log.warn(str(e)) log.warn('\n Extensions cannot be built.\n' ' Using the slower Python implementations instead.\n') def build_extension(self, ext): try: build_ext.build_extension(self, ext) except CCompilerError: if not self.allow_python_fallback: log.warn('\n Cannot build extension "%s".\n' ' Use "build_ext --allow-python-fallback" to use' ' slower python implementations instead.\n' % (ext.name,)) raise log.warn('\n Building of "%s" extension failed.\n' ' Using the slower Python implementation instead.' % (ext.name,)) # Override the build_ext if we have Cython available command_classes['build_ext'] = build_ext_if_possible unavailable_files = [] def add_cython_extension(module_name, libraries=None, extra_source=[]): """Add a cython module to build. This will use Cython to auto-generate the .c file if it is available. Otherwise it will fall back on the .c file. If the .c file is not available, it will warn, and not add anything. You can pass any extra options to Extension through kwargs. One example is 'libraries = []'. :param module_name: The python path to the module. This will be used to determine the .pyx and .c files to use. """ path = module_name.replace('.', '/') cython_name = path + '.pyx' c_name = path + '.c' define_macros = [] if sys.platform == 'win32': # cython uses the macro WIN32 to detect the platform, even though it # should be using something like _WIN32 or MS_WINDOWS, oh well, we can # give it the right value. define_macros.append(('WIN32', None)) if have_cython: source = [cython_name] else: if not os.path.isfile(c_name): unavailable_files.append(c_name) return else: source = [c_name] source.extend(extra_source) include_dirs = ['breezy'] ext_modules.append(Extension(module_name, source, define_macros=define_macros, libraries=libraries, include_dirs=include_dirs)) add_cython_extension('breezy._simple_set_pyx') ext_modules.append(Extension('breezy._static_tuple_c', ['breezy/_static_tuple_c.c'])) add_cython_extension('breezy._annotator_pyx') add_cython_extension('breezy._bencode_pyx') add_cython_extension('breezy._chunks_to_lines_pyx') add_cython_extension('breezy.bzr._groupcompress_pyx', extra_source=['breezy/bzr/diff-delta.c']) add_cython_extension('breezy.bzr._knit_load_data_pyx') add_cython_extension('breezy._known_graph_pyx') add_cython_extension('breezy._rio_pyx') if sys.platform == 'win32': add_cython_extension('breezy.bzr._dirstate_helpers_pyx', libraries=['Ws2_32']) add_cython_extension('breezy._walkdirs_win32') else: add_cython_extension('breezy.bzr._dirstate_helpers_pyx') add_cython_extension('breezy._readdir_pyx') add_cython_extension('breezy.bzr._chk_map_pyx') ext_modules.append(Extension('breezy._patiencediff_c', ['breezy/_patiencediff_c.c'])) add_cython_extension('breezy.bzr._btree_serializer_pyx') if unavailable_files: print('C extension(s) not found:') print((' %s' % ('\n '.join(unavailable_files),))) print('The python versions will be used instead.') print("") def get_tbzr_py2exe_info(includes, excludes, packages, console_targets, gui_targets, data_files): packages.append('tbzrcommands') # ModuleFinder can't handle runtime changes to __path__, but # win32com uses them. Hook this in so win32com.shell is found. import modulefinder import win32com import cPickle as pickle for p in win32com.__path__[1:]: modulefinder.AddPackagePath("win32com", p) for extra in ["win32com.shell"]: __import__(extra) m = sys.modules[extra] for p in m.__path__[1:]: modulefinder.AddPackagePath(extra, p) # TBZR points to the TBZR directory tbzr_root = os.environ["TBZR"] # Ensure tbreezy itself is on sys.path sys.path.append(tbzr_root) packages.append("tbreezy") # collect up our icons. cwd = os.getcwd() ico_root = os.path.join(tbzr_root, 'tbreezy', 'resources') icos = [] # list of (path_root, relative_ico_path) # First always brz's icon and its in the root of the brz tree. icos.append(('', 'brz.ico')) for root, dirs, files in os.walk(ico_root): icos.extend([(ico_root, os.path.join(root, f)[len(ico_root)+1:]) for f in files if f.endswith('.ico')]) # allocate an icon ID for each file and the full path to the ico icon_resources = [(rid, os.path.join(ico_dir, ico_name)) for rid, (ico_dir, ico_name) in enumerate(icos)] # create a string resource with the mapping. Might as well save the # runtime some effort and write a pickle. # Runtime expects unicode objects with forward-slash seps. fse = sys.getfilesystemencoding() map_items = [(f.replace('\\', '/').decode(fse), rid) for rid, (_, f) in enumerate(icos)] ico_map = dict(map_items) # Create a new resource type of 'ICON_MAP', and use ID=1 other_resources = [ ("ICON_MAP", 1, pickle.dumps(ico_map))] excludes.extend("""pywin pywin.dialogs pywin.dialogs.list win32ui crawler.Crawler""".split()) # tbzrcache executables - a "console" version for debugging and a # GUI version that is generally used. tbzrcache = dict( script = os.path.join(tbzr_root, "scripts", "tbzrcache.py"), icon_resources = icon_resources, other_resources = other_resources, ) console_targets.append(tbzrcache) # Make a windows version which is the same except for the base name. tbzrcachew = tbzrcache.copy() tbzrcachew["dest_base"]="tbzrcachew" gui_targets.append(tbzrcachew) # ditto for the tbzrcommand tool tbzrcommand = dict( script = os.path.join(tbzr_root, "scripts", "tbzrcommand.py"), icon_resources = icon_resources, other_resources = other_resources, ) console_targets.append(tbzrcommand) tbzrcommandw = tbzrcommand.copy() tbzrcommandw["dest_base"]="tbzrcommandw" gui_targets.append(tbzrcommandw) # A utility to see python output from both C++ and Python based shell # extensions tracer = dict(script=os.path.join(tbzr_root, "scripts", "tbzrtrace.py")) console_targets.append(tracer) # The C++ implemented shell extensions. dist_dir = os.path.join(tbzr_root, "shellext", "build") data_files.append(('', [os.path.join(dist_dir, 'tbzrshellext_x86.dll')])) data_files.append(('', [os.path.join(dist_dir, 'tbzrshellext_x64.dll')])) def get_qbzr_py2exe_info(includes, excludes, packages, data_files): # PyQt4 itself still escapes the plugin detection code for some reason... includes.append('PyQt4.QtCore') includes.append('PyQt4.QtGui') includes.append('PyQt4.QtTest') includes.append('sip') # extension module required for Qt. packages.append('pygments') # colorizer for qbzr packages.append('docutils') # html formatting includes.append('win32event') # for qsubprocess stuff # the qt binaries might not be on PATH... # They seem to install to a place like C:\Python25\PyQt4\* # Which is not the same as C:\Python25\Lib\site-packages\PyQt4 pyqt_dir = os.path.join(sys.prefix, "PyQt4") pyqt_bin_dir = os.path.join(pyqt_dir, "bin") if os.path.isdir(pyqt_bin_dir): path = os.environ.get("PATH", "") if pyqt_bin_dir.lower() not in [p.lower() for p in path.split(os.pathsep)]: os.environ["PATH"] = path + os.pathsep + pyqt_bin_dir # also add all imageformat plugins to distribution # We will look in 2 places, dirname(PyQt4.__file__) and pyqt_dir base_dirs_to_check = [] if os.path.isdir(pyqt_dir): base_dirs_to_check.append(pyqt_dir) try: import PyQt4 except ImportError: pass else: pyqt4_base_dir = os.path.dirname(PyQt4.__file__) if pyqt4_base_dir != pyqt_dir: base_dirs_to_check.append(pyqt4_base_dir) if not base_dirs_to_check: log.warn("Can't find PyQt4 installation -> not including imageformat" " plugins") else: files = [] for base_dir in base_dirs_to_check: plug_dir = os.path.join(base_dir, 'plugins', 'imageformats') if os.path.isdir(plug_dir): for fname in os.listdir(plug_dir): # Include plugin dlls, but not debugging dlls fullpath = os.path.join(plug_dir, fname) if fname.endswith('.dll') and not fname.endswith('d4.dll'): files.append(fullpath) if files: data_files.append(('imageformats', files)) else: log.warn('PyQt4 was found, but we could not find any imageformat' ' plugins. Are you sure your configuration is correct?') def get_svn_py2exe_info(includes, excludes, packages): packages.append('subvertpy') packages.append('sqlite3') def get_git_py2exe_info(includes, excludes, packages): packages.append('dulwich') def get_fastimport_py2exe_info(includes, excludes, packages): # This is the python-fastimport package, not to be confused with the # brz-fastimport plugin. packages.append('fastimport') if 'bdist_wininst' in sys.argv: def find_docs(): docs = [] for root, dirs, files in os.walk('doc'): r = [] for f in files: if (os.path.splitext(f)[1] in ('.html','.css','.png','.pdf') or f == 'quick-start-summary.svg'): r.append(os.path.join(root, f)) if r: relative = root[4:] if relative: target = os.path.join('Doc\\Breezy', relative) else: target = 'Doc\\Breezy' docs.append((target, r)) return docs # python's distutils-based win32 installer ARGS = {'scripts': ['brz', 'tools/win32/brz-win32-bdist-postinstall.py'], 'ext_modules': ext_modules, # help pages 'data_files': find_docs(), # for building cython extensions 'cmdclass': command_classes, } ARGS.update(META_INFO) ARGS.update(BZRLIB) PKG_DATA['package_data']['breezy'].append('locale/*/LC_MESSAGES/*.mo') ARGS.update(PKG_DATA) setup(**ARGS) elif 'py2exe' in sys.argv: # py2exe setup import py2exe # pick real brz version import breezy version_number = [] for i in breezy.version_info[:4]: try: i = int(i) except ValueError: i = 0 version_number.append(str(i)) version_str = '.'.join(version_number) # An override to install_data used only by py2exe builds, which arranges # to byte-compile any .py files in data_files (eg, our plugins) # Necessary as we can't rely on the user having the relevant permissions # to the "Program Files" directory to generate them on the fly. class install_data_with_bytecompile(install_data): def run(self): from distutils.util import byte_compile install_data.run(self) py2exe = self.distribution.get_command_obj('py2exe', False) # GZ 2010-04-19: Setup has py2exe.optimize as 2, but give plugins # time before living with docstring stripping optimize = 1 compile_names = [f for f in self.outfiles if f.endswith('.py')] # Round mtime to nearest even second so that installing on a FAT # filesystem bytecode internal and script timestamps will match for f in compile_names: mtime = os.stat(f).st_mtime remainder = mtime % 2 if remainder: mtime -= remainder os.utime(f, (mtime, mtime)) byte_compile(compile_names, optimize=optimize, force=self.force, prefix=self.install_dir, dry_run=self.dry_run) self.outfiles.extend([f + 'o' for f in compile_names]) # end of class install_data_with_bytecompile target = py2exe.build_exe.Target(script = "brz", dest_base = "brz", icon_resources = [(0,'brz.ico')], name = META_INFO['name'], version = version_str, description = META_INFO['description'], author = META_INFO['author'], copyright = "(c) Canonical Ltd, 2005-2010", company_name = "Canonical Ltd.", comments = META_INFO['description'], ) gui_target = copy.copy(target) gui_target.dest_base = "bzrw" packages = BZRLIB['packages'] packages.remove('breezy') packages = [i for i in packages if not i.startswith('breezy.plugins')] includes = [] for i in glob.glob('breezy\\*.py'): module = i[:-3].replace('\\', '.') if module.endswith('__init__'): module = module[:-len('__init__')] includes.append(module) additional_packages = set() if sys.version.startswith('2.7'): additional_packages.add('xml.etree') else: import warnings warnings.warn('Unknown Python version.\n' 'Please check setup.py script for compatibility.') # Although we currently can't enforce it, we consider it an error for # py2exe to report any files are "missing". Such modules we know aren't # used should be listed here. excludes = """Tkinter psyco ElementPath r_hmac ImaginaryModule cElementTree elementtree.ElementTree Crypto.PublicKey._fastmath tools resource validate""".split() dll_excludes = [] # email package from std python library use lazy import, # so we need to explicitly add all package additional_packages.add('email') # And it uses funky mappings to conver to 'Oldname' to 'newname'. As # a result, packages like 'email.Parser' show as missing. Tell py2exe # to exclude them. import email for oldname in getattr(email, '_LOWERNAMES', []): excludes.append("email." + oldname) for oldname in getattr(email, '_MIMENAMES', []): excludes.append("email.MIME" + oldname) # text files for help topis text_topics = glob.glob('breezy/help_topics/en/*.txt') topics_files = [('lib/help_topics/en', text_topics)] # built-in plugins plugins_files = [] # XXX - should we consider having the concept of an 'official' build, # which hard-codes the list of plugins, gets more upset if modules are # missing, etc? plugins = None # will be a set after plugin sniffing... for root, dirs, files in os.walk('breezy/plugins'): if root == 'breezy/plugins': plugins = set(dirs) # We ship plugins as normal files on the file-system - however, # the build process can cause *some* of these plugin files to end # up in library.zip. Thus, we saw (eg) "plugins/svn/test" in # library.zip, and then saw import errors related to that as the # rest of the svn plugin wasn't. So we tell py2exe to leave the # plugins out of the .zip file excludes.extend(["breezy.plugins." + d for d in dirs]) x = [] for i in files: # Throw away files we don't want packaged. Note that plugins may # have data files with all sorts of extensions so we need to # be conservative here about what we ditch. ext = os.path.splitext(i)[1] if ext.endswith('~') or ext in [".pyc", ".swp"]: continue if i == '__init__.py' and root == 'breezy/plugins': continue x.append(os.path.join(root, i)) if x: target_dir = root[len('breezy/'):] # install to 'plugins/...' plugins_files.append((target_dir, x)) # find modules for built-in plugins import tools.package_mf mf = tools.package_mf.CustomModuleFinder() mf.run_package('breezy/plugins') packs, mods = mf.get_result() additional_packages.update(packs) includes.extend(mods) console_targets = [target, 'tools/win32/bzr_postinstall.py', ] gui_targets = [gui_target] data_files = topics_files + plugins_files + I18N_FILES if 'qbzr' in plugins: get_qbzr_py2exe_info(includes, excludes, packages, data_files) if 'svn' in plugins: get_svn_py2exe_info(includes, excludes, packages) if 'git' in plugins: get_git_py2exe_info(includes, excludes, packages) if 'fastimport' in plugins: get_fastimport_py2exe_info(includes, excludes, packages) if "TBZR" in os.environ: # TORTOISE_OVERLAYS_MSI_WIN32 must be set to the location of the # TortoiseOverlays MSI installer file. It is in the TSVN svn repo and # can be downloaded from (username=guest, blank password): # http://tortoisesvn.tigris.org/svn/tortoisesvn/TortoiseOverlays # look for: version-1.0.4/bin/TortoiseOverlays-1.0.4.11886-win32.msi # Ditto for TORTOISE_OVERLAYS_MSI_X64, pointing at *-x64.msi. for needed in ('TORTOISE_OVERLAYS_MSI_WIN32', 'TORTOISE_OVERLAYS_MSI_X64'): url = ('http://guest:@tortoisesvn.tigris.org/svn/tortoisesvn' '/TortoiseOverlays') if not os.path.isfile(os.environ.get(needed, '')): raise RuntimeError( "\nPlease set %s to the location of the relevant" "\nTortoiseOverlays .msi installer file." " The installers can be found at" "\n %s" "\ncheck in the version-X.Y.Z/bin/ subdir" % (needed, url)) get_tbzr_py2exe_info(includes, excludes, packages, console_targets, gui_targets, data_files) else: # print this warning to stderr as output is redirected, so it is seen # at build time. Also to stdout so it appears in the log for f in (sys.stderr, sys.stdout): f.write("Skipping TBZR binaries - " "please set TBZR to a directory to enable\n") # MSWSOCK.dll is a system-specific library, which py2exe accidentally pulls # in on Vista. dll_excludes.extend(["MSWSOCK.dll", "MSVCP60.dll", "MSVCP90.dll", "powrprof.dll", "SHFOLDER.dll"]) options_list = {"py2exe": {"packages": packages + list(additional_packages), "includes": includes, "excludes": excludes, "dll_excludes": dll_excludes, "dist_dir": "win32_bzr.exe", "optimize": 2, "custom_boot_script": "tools/win32/py2exe_boot_common.py", }, } # We want the libaray.zip to have optimize = 2, but the exe to have # optimize = 1, so that .py files that get compilied at run time # (e.g. user installed plugins) dont have their doc strings removed. class py2exe_no_oo_exe(py2exe.build_exe.py2exe): def build_executable(self, *args, **kwargs): self.optimize = 1 py2exe.build_exe.py2exe.build_executable(self, *args, **kwargs) self.optimize = 2 if __name__ == '__main__': command_classes['install_data'] = install_data_with_bytecompile command_classes['py2exe'] = py2exe_no_oo_exe setup(options=options_list, console=console_targets, windows=gui_targets, zipfile='lib/library.zip', data_files=data_files, cmdclass=command_classes, ) else: # ad-hoc for easy_install DATA_FILES = [] if not 'bdist_egg' in sys.argv: # generate and install brz.1 only with plain install, not the # easy_install one DATA_FILES = [('man/man1', ['brz.1'])] DATA_FILES = DATA_FILES + I18N_FILES # std setup ARGS = {'scripts': ['brz'], 'data_files': DATA_FILES, 'cmdclass': command_classes, 'ext_modules': ext_modules, } ARGS.update(META_INFO) ARGS.update(BZRLIB) ARGS.update(PKG_DATA) if __name__ == '__main__': setup(**ARGS) breezy-3.0.0~bzr6852/tools/0000755000000000000000000000000013235603346013546 5ustar 00000000000000breezy-3.0.0~bzr6852/apport/README0000644000000000000000000000061713235603346014577 0ustar 00000000000000Bazaar supports semi-automatic bug reporting through Apport . If apport is not installed, an exception is printed to stderr in the usual way. For this to work properly it's suggested that two files be installed when a package of brz is installed: ``brz.conf`` into ``/etc/apport/crashdb.conf.d`` ``source_brz.py`` into ``/usr/share/apport/package-hooks`` breezy-3.0.0~bzr6852/apport/brz-crashdb.conf0000644000000000000000000000025613235603346016766 0ustar 00000000000000brz = { # most brz bugs are upstream bugs; file them there 'impl': 'launchpad', 'project': 'brz', 'bug_pattern_base': 'http://people.canonical.com/~pitti/bugpatterns', } breezy-3.0.0~bzr6852/apport/source_brz.py0000644000000000000000000000265613235603346016453 0ustar 00000000000000'''apport package hook for Breezy''' # Copyright (c) 2009, 2010 Canonical Ltd. # Author: Matt Zimmerman # and others from apport.hookutils import * import os brz_log = os.path.expanduser('~/.brz.log') dot_brz = os.path.expanduser('~/.config/breezy') def _add_log_tail(report): # may have already been added in-process if 'BrzLogTail' in report: return brz_log_lines = open(brz_log).readlines() brz_log_lines.reverse() brz_log_tail = [] blanks = 0 for line in brz_log_lines: if line == '\n': blanks += 1 brz_log_tail.append(line) if blanks >= 2: break brz_log_tail.reverse() report['BrzLogTail'] = ''.join(brz_log_tail) def add_info(report): _add_log_tail(report) if 'BrzPlugins' not in report: # may already be present in-process report['BrzPlugins'] = command_output(['brz', 'plugins', '-v']) # by default assume brz crashes are upstream bugs; this relies on # having a brz entry under /etc/apport/crashdb.conf.d/ report['CrashDB'] = 'brz' # these may contain some sensitive info (smtp_passwords) # TODO: strip that out and attach the rest #attach_file_if_exists(report, # os.path.join(dot_brz, 'breezy.conf', 'BrzConfig') #attach_file_if_exists(report, # os.path.join(dot_brz, 'locations.conf', 'BrzLocations') # vim: expandtab shiftwidth=4 breezy-3.0.0~bzr6852/breezy/__init__.py0000644000000000000000000002233213235603346016021 0ustar 00000000000000# Copyright (C) 2005-2013, 2016, 2017 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """All of bzr. Developer documentation for Bazaar is available at http://doc.bazaar.canonical.com/bzr.dev/developers/, it should mostly also apply to Breezy. Some particularly interesting things in breezy are: * breezy.initialize -- setup the library for use * breezy.plugin.load_plugins -- load all installed plugins * breezy.branch.Branch.open -- open a branch * breezy.workingtree.WorkingTree.open -- open a working tree We hope you enjoy this library. """ from __future__ import absolute_import import time # Keep track of when breezy was first imported, so that we can give rough # timestamps relative to program start in the log file kept by breezy.trace. _start_time = time.time() import codecs import sys IGNORE_FILENAME = ".bzrignore" __copyright__ = "Copyright 2005-2012 Canonical Ltd." # same format as sys.version_info: "A tuple containing the five components of # the version number: major, minor, micro, releaselevel, and serial. All # values except releaselevel are integers; the release level is 'alpha', # 'beta', 'candidate', or 'final'. The version_info value corresponding to the # Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a # releaselevel of 'dev' for unreleased under-development code. version_info = (3, 0, 0, 'dev', 1) def _format_version_tuple(version_info): """Turn a version number 2, 3 or 5-tuple into a short string. This format matches and the typical presentation used in Python output. This also checks that the version is reasonable: the sub-release must be zero for final releases. >>> print _format_version_tuple((1, 0, 0, 'final', 0)) 1.0.0 >>> print _format_version_tuple((1, 2, 0, 'dev', 0)) 1.2.0dev >>> print _format_version_tuple((1, 2, 0, 'dev', 1)) 1.2.0dev1 >>> print _format_version_tuple((1, 1, 1, 'candidate', 2)) 1.1.1rc2 >>> print _format_version_tuple((2, 1, 0, 'beta', 1)) 2.1b1 >>> print _format_version_tuple((1, 4, 0)) 1.4.0 >>> print _format_version_tuple((1, 4)) 1.4 >>> print _format_version_tuple((2, 1, 0, 'final', 42)) 2.1.0.42 >>> print _format_version_tuple((1, 4, 0, 'wibble', 0)) 1.4.0.wibble.0 """ if len(version_info) == 2: main_version = '%d.%d' % version_info[:2] else: main_version = '%d.%d.%d' % version_info[:3] if len(version_info) <= 3: return main_version release_type = version_info[3] sub = version_info[4] if release_type == 'final' and sub == 0: sub_string = '' elif release_type == 'final': sub_string = '.' + str(sub) elif release_type == 'dev' and sub == 0: sub_string = 'dev' elif release_type == 'dev': sub_string = 'dev' + str(sub) elif release_type in ('alpha', 'beta'): if version_info[2] == 0: main_version = '%d.%d' % version_info[:2] sub_string = release_type[0] + str(sub) elif release_type == 'candidate': sub_string = 'rc' + str(sub) else: return '.'.join(map(str, version_info)) return main_version + sub_string # lazy_regex import must be done after _format_version_tuple definition # to avoid "no attribute '_format_version_tuple'" error when using # deprecated_function in the lazy_regex module. if getattr(sys, '_brz_lazy_regex', False): # The 'brz' executable sets _brz_lazy_regex. We install the lazy regex # hack as soon as possible so that as much of the standard library can # benefit, including the 'string' module. del sys._brz_lazy_regex import breezy.lazy_regex breezy.lazy_regex.install_lazy_compile() __version__ = _format_version_tuple(version_info) version_string = __version__ def _patch_filesystem_default_encoding(new_enc): """Change the Python process global encoding for filesystem names The effect is to change how open() and other builtin functions handle unicode filenames on posix systems. This should only be done near startup. The new encoding string passed to this function must survive until process termination, otherwise the interpreter may access uninitialized memory. The use of intern() may defer breakage is but is not enough, the string object should be secure against module reloading and during teardown. """ is_py3 = sys.version_info > (3,) try: import ctypes old_ptr = ctypes.c_void_p.in_dll(ctypes.pythonapi, "Py_FileSystemDefaultEncoding") if is_py3: has_enc = ctypes.c_int.in_dll(ctypes.pythonapi, "Py_HasFileSystemDefaultEncoding") as_utf8 = ctypes.PYFUNCTYPE( ctypes.POINTER(ctypes.c_char), ctypes.py_object)( ("PyUnicode_AsUTF8", ctypes.pythonapi)) except (ImportError, ValueError): return # No ctypes or not CPython implementation, do nothing if is_py3: new_enc = sys.intern(new_enc) enc_ptr = as_utf8(new_enc) has_enc.value = 1 else: new_enc = intern(new_enc) enc_ptr = ctypes.c_char_p(new_enc) old_ptr.value = ctypes.cast(enc_ptr, ctypes.c_void_p).value if sys.getfilesystemencoding() != new_enc: raise RuntimeError("Failed to change the filesystem default encoding") return new_enc # When running under the brz script, override bad filesystem default encoding. # This is not safe to do for all users of breezy, other scripts should instead # just ensure a usable locale is set via the $LANG variable on posix systems. _fs_enc = sys.getfilesystemencoding() if getattr(sys, "_brz_default_fs_enc", None) is not None: if (_fs_enc is None or codecs.lookup(_fs_enc).name == "ascii"): _fs_enc = _patch_filesystem_default_encoding(sys._brz_default_fs_enc) if _fs_enc is None: _fs_enc = "ascii" else: _fs_enc = codecs.lookup(_fs_enc).name # brz has various bits of global state that are slowly being eliminated. # This variable is intended to permit any new state-like things to be attached # to a library_state.BzrLibraryState object rather than getting new global # variables that need to be hunted down. Accessing the current BzrLibraryState # through this variable is not encouraged: it is better to pass it around as # part of the context of an operation than to look it up directly, but when # that is too hard, it is better to use this variable than to make a brand new # global variable. # If using this variable by looking it up (because it can't be easily obtained) # it is important to store the reference you get, rather than looking it up # repeatedly; that way your code will behave properly in the breezy test suite # and from programs that do use multiple library contexts. _global_state = None def initialize(setup_ui=True, stdin=None, stdout=None, stderr=None): """Set up everything needed for normal use of breezy. Most applications that embed breezy, including brz itself, should call this function to initialize various subsystems. More options may be added in future so callers should use named arguments. The object returned by this function can be used as a contex manager through the 'with' statement to automatically shut down when the process is finished with breezy. However it's not necessary to separately enter the context as well as starting brz: breezy is ready to go when this function returns. :param setup_ui: If true (default) use a terminal UI; otherwise some other ui_factory must be assigned to `breezy.ui.ui_factory` by the caller. :param stdin, stdout, stderr: If provided, use these for terminal IO; otherwise use the files in `sys`. :return: A context manager for the use of breezy. The __exit__ should be called by the caller before exiting their process or otherwise stopping use of breezy. Advanced callers can use BzrLibraryState directly. """ from breezy import library_state, trace if setup_ui: import breezy.ui stdin = stdin or sys.stdin stdout = stdout or sys.stdout stderr = stderr or sys.stderr ui_factory = breezy.ui.make_ui_for_terminal(stdin, stdout, stderr) else: ui_factory = None tracer = trace.DefaultConfig() state = library_state.BzrLibraryState(ui=ui_factory, trace=tracer) # Start automatically in case people don't realize this returns a context. state._start() return state def get_global_state(): if _global_state is None: return initialize() return _global_state def test_suite(): import tests return tests.test_suite() breezy-3.0.0~bzr6852/breezy/_annotator_py.py0000644000000000000000000003262513235603346017144 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Functionality for doing annotations in the 'optimal' way""" from __future__ import absolute_import from .lazy_import import lazy_import lazy_import(globals(), """ from breezy import ( annotate, # Must be lazy to avoid circular importing graph as _mod_graph, patiencediff, ) """) from . import ( errors, osutils, ui, ) from .sixish import ( range, viewitems, ) class Annotator(object): """Class that drives performing annotations.""" def __init__(self, vf): """Create a new Annotator from a VersionedFile.""" self._vf = vf self._parent_map = {} self._text_cache = {} # Map from key => number of nexts that will be built from this key self._num_needed_children = {} self._annotations_cache = {} self._heads_provider = None self._ann_tuple_cache = {} def _update_needed_children(self, key, parent_keys): for parent_key in parent_keys: if parent_key in self._num_needed_children: self._num_needed_children[parent_key] += 1 else: self._num_needed_children[parent_key] = 1 def _get_needed_keys(self, key): """Determine the texts we need to get from the backing vf. :return: (vf_keys_needed, ann_keys_needed) vf_keys_needed These are keys that we need to get from the vf ann_keys_needed Texts which we have in self._text_cache but we don't have annotations for. We need to yield these in the proper order so that we can get proper annotations. """ parent_map = self._parent_map # We need 1 extra copy of the node we will be looking at when we are # done self._num_needed_children[key] = 1 vf_keys_needed = set() ann_keys_needed = set() needed_keys = {key} while needed_keys: parent_lookup = [] next_parent_map = {} for key in needed_keys: if key in self._parent_map: # We don't need to lookup this key in the vf if key not in self._text_cache: # Extract this text from the vf vf_keys_needed.add(key) elif key not in self._annotations_cache: # We do need to annotate ann_keys_needed.add(key) next_parent_map[key] = self._parent_map[key] else: parent_lookup.append(key) vf_keys_needed.add(key) needed_keys = set() next_parent_map.update(self._vf.get_parent_map(parent_lookup)) for key, parent_keys in viewitems(next_parent_map): if parent_keys is None: # No graph versionedfile parent_keys = () next_parent_map[key] = () self._update_needed_children(key, parent_keys) needed_keys.update([key for key in parent_keys if key not in parent_map]) parent_map.update(next_parent_map) # _heads_provider does some graph caching, so it is only valid while # self._parent_map hasn't changed self._heads_provider = None return vf_keys_needed, ann_keys_needed def _get_needed_texts(self, key, pb=None): """Get the texts we need to properly annotate key. :param key: A Key that is present in self._vf :return: Yield (this_key, text, num_lines) 'text' is an opaque object that just has to work with whatever matcher object we are using. Currently it is always 'lines' but future improvements may change this to a simple text string. """ keys, ann_keys = self._get_needed_keys(key) if pb is not None: pb.update('getting stream', 0, len(keys)) stream = self._vf.get_record_stream(keys, 'topological', True) for idx, record in enumerate(stream): if pb is not None: pb.update('extracting', 0, len(keys)) if record.storage_kind == 'absent': raise errors.RevisionNotPresent(record.key, self._vf) this_key = record.key lines = osutils.chunks_to_lines(record.get_bytes_as('chunked')) num_lines = len(lines) self._text_cache[this_key] = lines yield this_key, lines, num_lines for key in ann_keys: lines = self._text_cache[key] num_lines = len(lines) yield key, lines, num_lines def _get_parent_annotations_and_matches(self, key, text, parent_key): """Get the list of annotations for the parent, and the matching lines. :param text: The opaque value given by _get_needed_texts :param parent_key: The key for the parent text :return: (parent_annotations, matching_blocks) parent_annotations is a list as long as the number of lines in parent matching_blocks is a list of (parent_idx, text_idx, len) tuples indicating which lines match between the two texts """ parent_lines = self._text_cache[parent_key] parent_annotations = self._annotations_cache[parent_key] # PatienceSequenceMatcher should probably be part of Policy matcher = patiencediff.PatienceSequenceMatcher(None, parent_lines, text) matching_blocks = matcher.get_matching_blocks() return parent_annotations, matching_blocks def _update_from_first_parent(self, key, annotations, lines, parent_key): """Reannotate this text relative to its first parent.""" (parent_annotations, matching_blocks) = self._get_parent_annotations_and_matches( key, lines, parent_key) for parent_idx, lines_idx, match_len in matching_blocks: # For all matching regions we copy across the parent annotations annotations[lines_idx:lines_idx + match_len] = \ parent_annotations[parent_idx:parent_idx + match_len] def _update_from_other_parents(self, key, annotations, lines, this_annotation, parent_key): """Reannotate this text relative to a second (or more) parent.""" (parent_annotations, matching_blocks) = self._get_parent_annotations_and_matches( key, lines, parent_key) last_ann = None last_parent = None last_res = None # TODO: consider making all annotations unique and then using 'is' # everywhere. Current results claim that isn't any faster, # because of the time spent deduping # deduping also saves a bit of memory. For NEWS it saves ~1MB, # but that is out of 200-300MB for extracting everything, so a # fairly trivial amount for parent_idx, lines_idx, match_len in matching_blocks: # For lines which match this parent, we will now resolve whether # this parent wins over the current annotation ann_sub = annotations[lines_idx:lines_idx + match_len] par_sub = parent_annotations[parent_idx:parent_idx + match_len] if ann_sub == par_sub: continue for idx in range(match_len): ann = ann_sub[idx] par_ann = par_sub[idx] ann_idx = lines_idx + idx if ann == par_ann: # Nothing to change continue if ann == this_annotation: # Originally claimed 'this', but it was really in this # parent annotations[ann_idx] = par_ann continue # Resolve the fact that both sides have a different value for # last modified if ann == last_ann and par_ann == last_parent: annotations[ann_idx] = last_res else: new_ann = set(ann) new_ann.update(par_ann) new_ann = tuple(sorted(new_ann)) annotations[ann_idx] = new_ann last_ann = ann last_parent = par_ann last_res = new_ann def _record_annotation(self, key, parent_keys, annotations): self._annotations_cache[key] = annotations for parent_key in parent_keys: num = self._num_needed_children[parent_key] num -= 1 if num == 0: del self._text_cache[parent_key] del self._annotations_cache[parent_key] # Do we want to clean up _num_needed_children at this point as # well? self._num_needed_children[parent_key] = num def _annotate_one(self, key, text, num_lines): this_annotation = (key,) # Note: annotations will be mutated by calls to _update_from* annotations = [this_annotation] * num_lines parent_keys = self._parent_map[key] if parent_keys: self._update_from_first_parent(key, annotations, text, parent_keys[0]) for parent in parent_keys[1:]: self._update_from_other_parents(key, annotations, text, this_annotation, parent) self._record_annotation(key, parent_keys, annotations) def add_special_text(self, key, parent_keys, text): """Add a specific text to the graph. This is used to add a text which is not otherwise present in the versioned file. (eg. a WorkingTree injecting 'current:' into the graph to annotate the edited content.) :param key: The key to use to request this text be annotated :param parent_keys: The parents of this text :param text: A string containing the content of the text """ self._parent_map[key] = parent_keys self._text_cache[key] = osutils.split_lines(text) self._heads_provider = None def annotate(self, key): """Return annotated fulltext for the given key. :param key: A tuple defining the text to annotate :return: ([annotations], [lines]) annotations is a list of tuples of keys, one for each line in lines each key is a possible source for the given line. lines the text of "key" as a list of lines """ pb = ui.ui_factory.nested_progress_bar() try: for text_key, text, num_lines in self._get_needed_texts(key, pb=pb): self._annotate_one(text_key, text, num_lines) finally: pb.finished() try: annotations = self._annotations_cache[key] except KeyError: raise errors.RevisionNotPresent(key, self._vf) return annotations, self._text_cache[key] def _get_heads_provider(self): if self._heads_provider is None: self._heads_provider = _mod_graph.KnownGraph(self._parent_map) return self._heads_provider def _resolve_annotation_tie(self, the_heads, line, tiebreaker): if tiebreaker is None: head = sorted(the_heads)[0] else: # Backwards compatibility, break up the heads into pairs and # resolve the result next_head = iter(the_heads) head = next(next_head) for possible_head in next_head: annotated_lines = ((head, line), (possible_head, line)) head = tiebreaker(annotated_lines)[0] return head def annotate_flat(self, key): """Determine the single-best-revision to source for each line. This is meant as a compatibility thunk to how annotate() used to work. :return: [(ann_key, line)] A list of tuples with a single annotation key for each line. """ custom_tiebreaker = annotate._break_annotation_tie annotations, lines = self.annotate(key) out = [] heads = self._get_heads_provider().heads append = out.append for annotation, line in zip(annotations, lines): if len(annotation) == 1: head = annotation[0] else: the_heads = heads(annotation) if len(the_heads) == 1: for head in the_heads: break # get the item out of the set else: head = self._resolve_annotation_tie(the_heads, line, custom_tiebreaker) append((head, line)) return out breezy-3.0.0~bzr6852/breezy/_annotator_pyx.pyx0000644000000000000000000003013613235603346017517 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Functionality for doing annotations in the 'optimal' way""" from __future__ import absolute_import cdef extern from "python-compat.h": pass cdef extern from "Python.h": ctypedef int Py_ssize_t ctypedef struct PyObject: pass ctypedef struct PyListObject: PyObject **ob_item int PyList_CheckExact(object) PyObject *PyList_GET_ITEM(object, Py_ssize_t o) Py_ssize_t PyList_GET_SIZE(object) int PyList_Append(object, object) except -1 int PyList_SetItem(object, Py_ssize_t o, object) except -1 int PyList_Sort(object) except -1 int PyTuple_CheckExact(object) object PyTuple_New(Py_ssize_t len) void PyTuple_SET_ITEM(object, Py_ssize_t pos, object) void PyTuple_SET_ITEM_ptr "PyTuple_SET_ITEM" (object, Py_ssize_t, PyObject *) int PyTuple_Resize(PyObject **, Py_ssize_t newlen) PyObject *PyTuple_GET_ITEM(object, Py_ssize_t o) Py_ssize_t PyTuple_GET_SIZE(object) PyObject *PyDict_GetItem(object d, object k) int PyDict_SetItem(object d, object k, object v) except -1 void Py_INCREF(object) void Py_INCREF_ptr "Py_INCREF" (PyObject *) void Py_DECREF_ptr "Py_DECREF" (PyObject *) int Py_EQ int Py_LT int PyObject_RichCompareBool(object, object, int opid) except -1 int PyObject_RichCompareBool_ptr "PyObject_RichCompareBool" ( PyObject *, PyObject *, int opid) from . import _annotator_py cdef int _check_annotations_are_lists(annotations, parent_annotations) except -1: if not PyList_CheckExact(annotations): raise TypeError('annotations must be a list') if not PyList_CheckExact(parent_annotations): raise TypeError('parent_annotations must be a list') return 0 cdef int _check_match_ranges(parent_annotations, annotations, Py_ssize_t parent_idx, Py_ssize_t lines_idx, Py_ssize_t match_len) except -1: if parent_idx + match_len > PyList_GET_SIZE(parent_annotations): raise ValueError('Match length exceeds len of' ' parent_annotations %s > %s' % (parent_idx + match_len, PyList_GET_SIZE(parent_annotations))) if lines_idx + match_len > PyList_GET_SIZE(annotations): raise ValueError('Match length exceeds len of' ' annotations %s > %s' % (lines_idx + match_len, PyList_GET_SIZE(annotations))) return 0 cdef PyObject *_next_tuple_entry(object tpl, Py_ssize_t *pos): # cannot_raise """Return the next entry from this tuple. :param tpl: The tuple we are investigating, *must* be a PyTuple :param pos: The last item we found. Will be updated to the new position. This cannot raise an exception, as it does no error checking. """ pos[0] = pos[0] + 1 if pos[0] >= PyTuple_GET_SIZE(tpl): return NULL return PyTuple_GET_ITEM(tpl, pos[0]) cdef object _combine_annotations(ann_one, ann_two, cache): """Combine the annotations from both sides.""" cdef Py_ssize_t pos_one, pos_two, len_one, len_two cdef Py_ssize_t out_pos cdef PyObject *temp, *left, *right if (PyObject_RichCompareBool(ann_one, ann_two, Py_LT)): cache_key = (ann_one, ann_two) else: cache_key = (ann_two, ann_one) temp = PyDict_GetItem(cache, cache_key) if temp != NULL: return temp if not PyTuple_CheckExact(ann_one) or not PyTuple_CheckExact(ann_two): raise TypeError('annotations must be tuples') # We know that annotations are tuples, and that both sides are already # sorted, so we can just walk and update a new list. pos_one = -1 pos_two = -1 out_pos = 0 left = _next_tuple_entry(ann_one, &pos_one) right = _next_tuple_entry(ann_two, &pos_two) new_ann = PyTuple_New(PyTuple_GET_SIZE(ann_one) + PyTuple_GET_SIZE(ann_two)) while left != NULL and right != NULL: # left == right is done by PyObject_RichCompareBool_ptr, however it # avoids a function call for a very common case. Drops 'time bzr # annotate NEWS' from 7.25s to 7.16s, so it *is* a visible impact. if (left == right or PyObject_RichCompareBool_ptr(left, right, Py_EQ)): # Identical values, step both Py_INCREF_ptr(left) PyTuple_SET_ITEM_ptr(new_ann, out_pos, left) left = _next_tuple_entry(ann_one, &pos_one) right = _next_tuple_entry(ann_two, &pos_two) elif (PyObject_RichCompareBool_ptr(left, right, Py_LT)): # left < right or right == NULL Py_INCREF_ptr(left) PyTuple_SET_ITEM_ptr(new_ann, out_pos, left) left = _next_tuple_entry(ann_one, &pos_one) else: # right < left or left == NULL Py_INCREF_ptr(right) PyTuple_SET_ITEM_ptr(new_ann, out_pos, right) right = _next_tuple_entry(ann_two, &pos_two) out_pos = out_pos + 1 while left != NULL: Py_INCREF_ptr(left) PyTuple_SET_ITEM_ptr(new_ann, out_pos, left) left = _next_tuple_entry(ann_one, &pos_one) out_pos = out_pos + 1 while right != NULL: Py_INCREF_ptr(right) PyTuple_SET_ITEM_ptr(new_ann, out_pos, right) right = _next_tuple_entry(ann_two, &pos_two) out_pos = out_pos + 1 if out_pos != PyTuple_GET_SIZE(new_ann): # Timing _PyTuple_Resize was not significantly faster that slicing # PyTuple_Resize((new_ann), out_pos) new_ann = new_ann[0:out_pos] PyDict_SetItem(cache, cache_key, new_ann) return new_ann cdef int _apply_parent_annotations(annotations, parent_annotations, matching_blocks) except -1: """Apply the annotations from parent_annotations into annotations. matching_blocks defines the ranges that match. """ cdef Py_ssize_t parent_idx, lines_idx, match_len, idx cdef PyListObject *par_list, *ann_list cdef PyObject **par_temp, **ann_temp _check_annotations_are_lists(annotations, parent_annotations) par_list = parent_annotations ann_list = annotations # For NEWS and breezy/builtins.py, over 99% of the lines are simply copied # across from the parent entry. So this routine is heavily optimized for # that. Would be interesting if we could use memcpy() but we have to incref # and decref for parent_idx, lines_idx, match_len in matching_blocks: _check_match_ranges(parent_annotations, annotations, parent_idx, lines_idx, match_len) par_temp = par_list.ob_item + parent_idx ann_temp = ann_list.ob_item + lines_idx for idx from 0 <= idx < match_len: Py_INCREF_ptr(par_temp[idx]) Py_DECREF_ptr(ann_temp[idx]) ann_temp[idx] = par_temp[idx] return 0 cdef int _merge_annotations(this_annotation, annotations, parent_annotations, matching_blocks, ann_cache) except -1: cdef Py_ssize_t parent_idx, ann_idx, lines_idx, match_len, idx cdef Py_ssize_t pos cdef PyObject *ann_temp, *par_temp _check_annotations_are_lists(annotations, parent_annotations) last_ann = None last_parent = None last_res = None for parent_idx, lines_idx, match_len in matching_blocks: _check_match_ranges(parent_annotations, annotations, parent_idx, lines_idx, match_len) # For lines which match this parent, we will now resolve whether # this parent wins over the current annotation for idx from 0 <= idx < match_len: ann_idx = lines_idx + idx ann_temp = PyList_GET_ITEM(annotations, ann_idx) par_temp = PyList_GET_ITEM(parent_annotations, parent_idx + idx) if (ann_temp == par_temp): # This is parent, do nothing # Pointer comparison is fine here. Value comparison would # be ok, but it will be handled in the final if clause by # merging the two tuples into the same tuple # Avoiding the Py_INCREF and function call to # PyObject_RichCompareBool using pointer comparison drops # timing from 215ms => 125ms continue par_ann = par_temp ann = ann_temp if (ann is this_annotation): # Originally claimed 'this', but it was really in this # parent Py_INCREF(par_ann) PyList_SetItem(annotations, ann_idx, par_ann) continue # Resolve the fact that both sides have a different value for # last modified if (ann is last_ann and par_ann is last_parent): Py_INCREF(last_res) PyList_SetItem(annotations, ann_idx, last_res) else: new_ann = _combine_annotations(ann, par_ann, ann_cache) Py_INCREF(new_ann) PyList_SetItem(annotations, ann_idx, new_ann) last_ann = ann last_parent = par_ann last_res = new_ann return 0 class Annotator(_annotator_py.Annotator): """Class that drives performing annotations.""" def _update_from_first_parent(self, key, annotations, lines, parent_key): """Reannotate this text relative to its first parent.""" (parent_annotations, matching_blocks) = self._get_parent_annotations_and_matches( key, lines, parent_key) _apply_parent_annotations(annotations, parent_annotations, matching_blocks) def _update_from_other_parents(self, key, annotations, lines, this_annotation, parent_key): """Reannotate this text relative to a second (or more) parent.""" (parent_annotations, matching_blocks) = self._get_parent_annotations_and_matches( key, lines, parent_key) _merge_annotations(this_annotation, annotations, parent_annotations, matching_blocks, self._ann_tuple_cache) def annotate_flat(self, key): """Determine the single-best-revision to source for each line. This is meant as a compatibility thunk to how annotate() used to work. """ cdef Py_ssize_t pos, num_lines from . import annotate custom_tiebreaker = annotate._break_annotation_tie annotations, lines = self.annotate(key) num_lines = len(lines) out = [] heads = self._get_heads_provider().heads for pos from 0 <= pos < num_lines: annotation = annotations[pos] line = lines[pos] if len(annotation) == 1: head = annotation[0] else: the_heads = heads(annotation) if len(the_heads) == 1: for head in the_heads: break # get the item out of the set else: # We need to resolve the ambiguity, for now just pick the # sorted smallest head = self._resolve_annotation_tie(the_heads, line, custom_tiebreaker) PyList_Append(out, (head, line)) return out breezy-3.0.0~bzr6852/breezy/_bencode_pyx.h0000644000000000000000000000173113235603346016517 0ustar 00000000000000/* Copyright (C) 2009 Canonical Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* Simple header providing some macro definitions for _bencode_pyx.pyx */ #define D_UPDATE_TAIL(self, n) (((self)->size -= (n), (self)->tail += (n))) #define E_UPDATE_TAIL(self, n) (((self)->size += (n), (self)->tail += (n))) breezy-3.0.0~bzr6852/breezy/_bencode_pyx.pyx0000644000000000000000000002777513235603346017130 0ustar 00000000000000# Copyright (C) 2007, 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Pyrex implementation for bencode coder/decoder""" from __future__ import absolute_import from cpython.bytes cimport ( PyBytes_CheckExact, PyBytes_FromStringAndSize, PyBytes_AS_STRING, PyBytes_GET_SIZE, ) from cpython.long cimport ( PyLong_CheckExact, ) from cpython.int cimport ( PyInt_CheckExact, PyInt_FromString, ) from cpython.tuple cimport ( PyTuple_CheckExact, ) from cpython.list cimport ( PyList_CheckExact, PyList_Append, ) from cpython.dict cimport ( PyDict_CheckExact, ) from cpython.bool cimport ( PyBool_Check, ) from cpython.mem cimport ( PyMem_Free, PyMem_Malloc, PyMem_Realloc, ) from libc.stdlib cimport ( strtol, ) from libc.string cimport ( memcpy, ) cdef extern from "Python.h": # There is no cython module for ceval.h for some reason int Py_GetRecursionLimit() int Py_EnterRecursiveCall(char *) void Py_LeaveRecursiveCall() cdef extern from "python-compat.h": int snprintf(char* buffer, size_t nsize, char* fmt, ...) cdef class Decoder cdef class Encoder cdef extern from "_bencode_pyx.h": void D_UPDATE_TAIL(Decoder, int n) void E_UPDATE_TAIL(Encoder, int n) from ._static_tuple_c cimport StaticTuple, StaticTuple_CheckExact, \ import_static_tuple_c import_static_tuple_c() cdef class Decoder: """Bencode decoder""" cdef readonly char *tail cdef readonly int size cdef readonly int _yield_tuples cdef object text def __init__(self, s, yield_tuples=0): """Initialize decoder engine. @param s: Python string. """ if not PyBytes_CheckExact(s): raise TypeError("bytes required") self.text = s self.tail = PyBytes_AS_STRING(s) self.size = PyBytes_GET_SIZE(s) self._yield_tuples = int(yield_tuples) def decode(self): result = self._decode_object() if self.size != 0: raise ValueError('junk in stream') return result def decode_object(self): return self._decode_object() cdef object _decode_object(self): cdef char ch if 0 == self.size: raise ValueError('stream underflow') if Py_EnterRecursiveCall("_decode_object"): raise RuntimeError("too deeply nested") try: ch = self.tail[0] if c'0' <= ch <= c'9': return self._decode_string() elif ch == c'l': D_UPDATE_TAIL(self, 1) return self._decode_list() elif ch == c'i': D_UPDATE_TAIL(self, 1) return self._decode_int() elif ch == c'd': D_UPDATE_TAIL(self, 1) return self._decode_dict() else: raise ValueError('unknown object type identifier %r' % ch) finally: Py_LeaveRecursiveCall() cdef int _read_digits(self, char stop_char) except -1: cdef int i i = 0 while ((self.tail[i] >= c'0' and self.tail[i] <= c'9') or self.tail[i] == c'-') and i < self.size: i = i + 1 if self.tail[i] != stop_char: raise ValueError("Stop character %c not found: %c" % (stop_char, self.tail[i])) if (self.tail[0] == c'0' or (self.tail[0] == c'-' and self.tail[1] == c'0')): if i == 1: return i else: raise ValueError # leading zeroes are not allowed return i cdef object _decode_int(self): cdef int i i = self._read_digits(c'e') self.tail[i] = 0 try: ret = PyInt_FromString(self.tail, NULL, 10) finally: self.tail[i] = c'e' D_UPDATE_TAIL(self, i+1) return ret cdef object _decode_string(self): cdef int n cdef char *next_tail # strtol allows leading whitespace, negatives, and leading zeros # however, all callers have already checked that '0' <= tail[0] <= '9' # or they wouldn't have called _decode_string # strtol will stop at trailing whitespace, etc n = strtol(self.tail, &next_tail, 10) if next_tail == NULL or next_tail[0] != c':': raise ValueError('string len not terminated by ":"') # strtol allows leading zeros, so validate that we don't have that if (self.tail[0] == c'0' and (n != 0 or (next_tail - self.tail != 1))): raise ValueError('leading zeros are not allowed') D_UPDATE_TAIL(self, next_tail - self.tail + 1) if n == 0: return b'' if n > self.size: raise ValueError('stream underflow') if n < 0: raise ValueError('string size below zero: %d' % n) result = PyBytes_FromStringAndSize(self.tail, n) D_UPDATE_TAIL(self, n) return result cdef object _decode_list(self): result = [] while self.size > 0: if self.tail[0] == c'e': D_UPDATE_TAIL(self, 1) if self._yield_tuples: return tuple(result) else: return result else: # As a quick shortcut, check to see if the next object is a # string, since we know that won't be creating recursion # if self.tail[0] >= c'0' and self.tail[0] <= c'9': PyList_Append(result, self._decode_object()) raise ValueError('malformed list') cdef object _decode_dict(self): cdef char ch result = {} lastkey = None while self.size > 0: ch = self.tail[0] if ch == c'e': D_UPDATE_TAIL(self, 1) return result else: # keys should be strings only if self.tail[0] < c'0' or self.tail[0] > c'9': raise ValueError('key was not a simple string.') key = self._decode_string() if lastkey is not None and lastkey >= key: raise ValueError('dict keys disordered') else: lastkey = key value = self._decode_object() result[key] = value raise ValueError('malformed dict') def bdecode(object s): """Decode string x to Python object""" return Decoder(s).decode() def bdecode_as_tuple(object s): """Decode string x to Python object, using tuples rather than lists.""" return Decoder(s, True).decode() class Bencached(object): __slots__ = ['bencoded'] def __init__(self, s): self.bencoded = s cdef enum: INITSIZE = 1024 # initial size for encoder buffer INT_BUF_SIZE = 32 cdef class Encoder: """Bencode encoder""" cdef readonly char *tail cdef readonly int size cdef readonly char *buffer cdef readonly int maxsize def __init__(self, int maxsize=INITSIZE): """Initialize encoder engine @param maxsize: initial size of internal char buffer """ cdef char *p self.maxsize = 0 self.size = 0 self.tail = NULL p = PyMem_Malloc(maxsize) if p == NULL: raise MemoryError('Not enough memory to allocate buffer ' 'for encoder') self.buffer = p self.maxsize = maxsize self.tail = p def __dealloc__(self): PyMem_Free(self.buffer) self.buffer = NULL self.maxsize = 0 def to_bytes(self): if self.buffer != NULL and self.size != 0: return PyBytes_FromStringAndSize(self.buffer, self.size) return b'' cdef int _ensure_buffer(self, int required) except 0: """Ensure that tail of CharTail buffer has enough size. If buffer is not big enough then function try to realloc buffer. """ cdef char *new_buffer cdef int new_size if self.size + required < self.maxsize: return 1 new_size = self.maxsize while new_size < self.size + required: new_size = new_size * 2 new_buffer = PyMem_Realloc(self.buffer, new_size) if new_buffer == NULL: raise MemoryError('Cannot realloc buffer for encoder') self.buffer = new_buffer self.maxsize = new_size self.tail = &new_buffer[self.size] return 1 cdef int _encode_int(self, int x) except 0: """Encode int to bencode string iNNNe @param x: value to encode """ cdef int n self._ensure_buffer(INT_BUF_SIZE) n = snprintf(self.tail, INT_BUF_SIZE, b"i%de", x) if n < 0: raise MemoryError('int %d too big to encode' % x) E_UPDATE_TAIL(self, n) return 1 cdef int _encode_long(self, x) except 0: return self._append_string(b'i%de' % x) cdef int _append_string(self, s) except 0: cdef Py_ssize_t n n = PyBytes_GET_SIZE(s) self._ensure_buffer(n) memcpy(self.tail, PyBytes_AS_STRING(s), n) E_UPDATE_TAIL(self, n) return 1 cdef int _encode_string(self, x) except 0: cdef int n cdef Py_ssize_t x_len x_len = PyBytes_GET_SIZE(x) self._ensure_buffer(x_len + INT_BUF_SIZE) n = snprintf(self.tail, INT_BUF_SIZE, b'%d:', x_len) if n < 0: raise MemoryError('string %s too big to encode' % x) memcpy((self.tail+n), PyBytes_AS_STRING(x), x_len) E_UPDATE_TAIL(self, n + x_len) return 1 cdef int _encode_list(self, x) except 0: self._ensure_buffer(1) self.tail[0] = c'l' E_UPDATE_TAIL(self, 1) for i in x: self.process(i) self._ensure_buffer(1) self.tail[0] = c'e' E_UPDATE_TAIL(self, 1) return 1 cdef int _encode_dict(self, x) except 0: self._ensure_buffer(1) self.tail[0] = c'd' E_UPDATE_TAIL(self, 1) for k in sorted(x): if not PyBytes_CheckExact(k): raise TypeError('key in dict should be string') self._encode_string(k) self.process(x[k]) self._ensure_buffer(1) self.tail[0] = c'e' E_UPDATE_TAIL(self, 1) return 1 def process(self, object x): if Py_EnterRecursiveCall("encode"): raise RuntimeError("too deeply nested") try: if PyBytes_CheckExact(x): self._encode_string(x) elif PyInt_CheckExact(x) and x.bit_length() < 32: self._encode_int(x) elif PyLong_CheckExact(x): self._encode_long(x) elif (PyList_CheckExact(x) or PyTuple_CheckExact(x) or isinstance(x, StaticTuple)): self._encode_list(x) elif PyDict_CheckExact(x): self._encode_dict(x) elif PyBool_Check(x): self._encode_int(int(x)) elif isinstance(x, Bencached): self._append_string(x.bencoded) else: raise TypeError('unsupported type %r' % x) finally: Py_LeaveRecursiveCall() def bencode(x): """Encode Python object x to string""" encoder = Encoder() encoder.process(x) return encoder.to_bytes() breezy-3.0.0~bzr6852/breezy/_chunks_to_lines_py.py0000644000000000000000000000452713235603346020326 0ustar 00000000000000# Copyright (C) 2008 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """The python implementation of chunks_to_lines""" from __future__ import absolute_import def chunks_to_lines(chunks): """Re-split chunks into simple lines. Each entry in the result should contain a single newline at the end. Except for the last entry which may not have a final newline. If chunks is already a simple list of lines, we return it directly. :param chunks: An list/tuple of strings. If chunks is already a list of lines, then we will return it as-is. :return: A list of strings. """ # Optimize for a very common case when chunks are already lines last_no_newline = False for chunk in chunks: if last_no_newline: # Only the last chunk is allowed to not have a trailing newline # Getting here means the last chunk didn't have a newline, and we # have a chunk following it break if not chunk: # Empty strings are never valid lines break elif b'\n' in chunk[:-1]: # This chunk has an extra '\n', so we will have to split it break elif chunk[-1:] != b'\n': # This chunk does not have a trailing newline last_no_newline = True else: # All of the lines (but possibly the last) have a single newline at the # end of the string. # For the last one, we allow it to not have a trailing newline, but it # is not allowed to be an empty string. return chunks # These aren't simple lines, just join and split again. from breezy import osutils return osutils._split_lines(b''.join(chunks)) breezy-3.0.0~bzr6852/breezy/_chunks_to_lines_pyx.pyx0000644000000000000000000001124313235603346020677 0ustar 00000000000000# Copyright (C) 2008 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # """Pyrex extensions for converting chunks to lines.""" from __future__ import absolute_import cdef extern from "python-compat.h": pass cdef extern from "stdlib.h": ctypedef unsigned size_t cdef extern from "Python.h": ctypedef struct PyObject: pass int PyList_Append(object lst, object item) except -1 int PyString_CheckExact(object p) char *PyString_AS_STRING(object p) Py_ssize_t PyString_GET_SIZE(object p) object PyString_FromStringAndSize(char *c_str, Py_ssize_t len) cdef extern from "string.h": void *memchr(void *s, int c, size_t n) def chunks_to_lines(chunks): """Re-split chunks into simple lines. Each entry in the result should contain a single newline at the end. Except for the last entry which may not have a final newline. If chunks is already a simple list of lines, we return it directly. :param chunks: An list/tuple of strings. If chunks is already a list of lines, then we will return it as-is. :return: A list of strings. """ cdef char *c_str cdef char *newline cdef char *c_last cdef Py_ssize_t the_len cdef int last_no_newline # Check to see if the chunks are already lines last_no_newline = 0 for chunk in chunks: if last_no_newline: # We have a chunk which followed a chunk without a newline, so this # is not a simple list of lines. break # Switching from PyString_AsStringAndSize to PyString_CheckExact and # then the macros GET_SIZE and AS_STRING saved us 40us / 470us. # It seems PyString_AsStringAndSize can actually trigger a conversion, # which we don't want anyway. if not PyString_CheckExact(chunk): raise TypeError('chunk is not a string') the_len = PyString_GET_SIZE(chunk) if the_len == 0: # An empty string is never a valid line break c_str = PyString_AS_STRING(chunk) c_last = c_str + the_len - 1 newline = memchr(c_str, c'\n', the_len) if newline != c_last: if newline == NULL: # Missing a newline. Only valid as the last line last_no_newline = 1 else: # There is a newline in the middle, we must resplit break else: # Everything was already a list of lines return chunks # We know we need to create a new list of lines lines = [] tail = None # Any remainder from the previous chunk for chunk in chunks: if tail is not None: chunk = tail + chunk tail = None if not PyString_CheckExact(chunk): raise TypeError('chunk is not a string') the_len = PyString_GET_SIZE(chunk) if the_len == 0: # An empty string is never a valid line, and we don't need to # append anything continue c_str = PyString_AS_STRING(chunk) c_last = c_str + the_len - 1 newline = memchr(c_str, c'\n', the_len) if newline == c_last: # A simple line PyList_Append(lines, chunk) elif newline == NULL: # A chunk without a newline, if this is the last entry, then we # allow it tail = chunk else: # We have a newline in the middle, loop until we've consumed all # lines while newline != NULL: line = PyString_FromStringAndSize(c_str, newline - c_str + 1) PyList_Append(lines, line) c_str = newline + 1 if c_str > c_last: # We are done break the_len = c_last - c_str + 1 newline = memchr(c_str, c'\n', the_len) if newline == NULL: tail = PyString_FromStringAndSize(c_str, the_len) break if tail is not None: PyList_Append(lines, tail) return lines breezy-3.0.0~bzr6852/breezy/_export_c_api.h0000644000000000000000000000645013235603346016677 0ustar 00000000000000/* Copyright (C) 2009 Canonical Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* This file contains helper functions for exporting a C API for a CPython * extension module. */ #ifndef _EXPORT_C_API_H_ #define _EXPORT_C_API_H_ static const char *_C_API_NAME = "_C_API"; /** * Add a C function to the modules _C_API * This wraps the function in a PyCObject, and inserts that into a dict. * The key of the dict is the function name, and the description is the * signature of the function. * This is generally called during a modules init_MODULE function. * * @param module A Python module (the one being initialized) * @param funcname The name of the function being exported * @param func A pointer to the function * @param signature The C signature of the function * @return 0 if everything is successful, -1 if there is a problem. An * exception should also be set */ static int _export_function(PyObject *module, char *funcname, void *func, char *signature) { PyObject *d = NULL; PyObject *capsule = NULL; d = PyObject_GetAttrString(module, _C_API_NAME); if (!d) { PyErr_Clear(); d = PyDict_New(); if (!d) goto bad; Py_INCREF(d); if (PyModule_AddObject(module, _C_API_NAME, d) < 0) goto bad; } capsule = PyCapsule_New(func, signature, 0); if (!capsule) goto bad; if (PyDict_SetItemString(d, funcname, capsule) < 0) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(capsule); Py_XDECREF(d); return -1; } /* Note: * It feels like more could be done here. Specifically, if you look at * _static_tuple_c.h you can see some boilerplate where we have: * #ifdef STATIC_TUPLE_MODULE // are we exporting or importing * static RETVAL FUNCNAME PROTO; * #else * static RETVAL (*FUNCNAME) PROTO; * #endif * * And then in _static_tuple_c.c we have * int setup_c_api() * { * _export_function(module, #FUNCNAME, FUNCNAME, #PROTO); * } * * And then in _static_tuple_c.h import_##MODULE * struct function_definition functions[] = { * {#FUNCNAME, (void **)&FUNCNAME, #RETVAL #PROTO}, * ... * {NULL}}; * * And some similar stuff for types. However, this would mean that we would * need a way for the C preprocessor to build up a list of definitions to be * generated, and then expand that list at the appropriate time. * I would guess there would be a way to do this, but probably not without a * lot of magic, and the end result probably wouldn't be very pretty to * maintain. Perhaps python's dynamic nature has left me jaded about writing * boilerplate.... */ #endif // _EXPORT_C_API_H_ breezy-3.0.0~bzr6852/breezy/_import_c_api.h0000644000000000000000000001320013235603346016657 0ustar 00000000000000/* Copyright (C) 2009 Canonical Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _IMPORT_C_API_H_ #define _IMPORT_C_API_H_ /** * Helper functions to eliminate some of the boilerplate when importing a C API * from a CPython extension module. * * For more information see _export_c_api.h */ static const char *_C_API_NAME = "_C_API"; /** * Import a function from the _C_API_NAME dict that is part of module. * * @param module The Python module we are importing from * the attribute _C_API_NAME will be used as a dictionary * containing the function pointer we are looking for. * @param funcname Name of the function we want to import * @param func A pointer to the function handle where we will store the * function. * @param signature The C signature of the function. This is validated * against the signature stored in the C api, to make sure * there is no versioning skew. */ static int _import_function(PyObject *module, const char *funcname, void **func, const char *signature) { PyObject *d = NULL; PyObject *capsule = NULL; void *pointer; d = PyObject_GetAttrString(module, _C_API_NAME); if (!d) { // PyObject_GetAttrString sets an appropriate exception goto bad; } capsule = PyDict_GetItemString(d, funcname); if (!capsule) { // PyDict_GetItemString does not set an exception PyErr_Format(PyExc_AttributeError, "Module %s did not export a function named %s\n", PyModule_GetName(module), funcname); goto bad; } pointer = PyCapsule_GetPointer(capsule, signature); if (!pointer) { // PyCapsule_GetPointer sets an error with a little context goto bad; } *func = pointer; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } /** * Get a pointer to an exported PyTypeObject. * * @param module The Python module we are importing from * @param class_name Attribute of the module that should reference the * Type object. Note that a PyTypeObject is the python * description of the type, not the raw C structure. * @return A Pointer to the requested type object. On error NULL will be * returned and an exception will be set. */ static PyTypeObject * _import_type(PyObject *module, const char *class_name) { PyObject *type = NULL; type = PyObject_GetAttrString(module, (char *)class_name); if (!type) { goto bad; } if (!PyType_Check(type)) { PyErr_Format(PyExc_TypeError, "%s.%s is not a type object", PyModule_GetName(module), class_name); goto bad; } return (PyTypeObject *)type; bad: Py_XDECREF(type); return NULL; } struct function_description { const char *name; void **pointer; const char *signature; }; struct type_description { const char *name; PyTypeObject **pointer; }; /** * Helper for importing several functions and types in a data-driven manner. * * @param module The name of the module we will be importing * @param functions A list of function_description objects, describing the * functions being imported. * The list should be terminated with {NULL} to indicate * there are no more functions to import. * @param types A list of type_description objects describing type * objects that we want to import. The list should be * terminated with {NULL} to indicate there are no more * types to import. * @return 0 on success, -1 on error and an exception should be set. */ static int _import_extension_module(const char *module_name, struct function_description *functions, struct type_description *types) { PyObject *module = NULL; struct function_description *cur_func; struct type_description *cur_type; int ret_code; module = PyImport_ImportModule((char *)module_name); if (!module) goto bad; if (functions != NULL) { cur_func = functions; while (cur_func->name != NULL) { ret_code = _import_function(module, cur_func->name, cur_func->pointer, cur_func->signature); if (ret_code < 0) goto bad; cur_func++; } } if (types != NULL) { PyTypeObject *type_p = NULL; cur_type = types; while (cur_type->name != NULL) { type_p = _import_type(module, cur_type->name); if (type_p == NULL) goto bad; *(cur_type->pointer) = type_p; cur_type++; } } Py_XDECREF(module); return 0; bad: Py_XDECREF(module); return -1; } #endif // _IMPORT_C_API_H_ breezy-3.0.0~bzr6852/breezy/_known_graph_py.py0000644000000000000000000003446313235603346017456 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Implementation of Graph algorithms when we have already loaded everything. """ from __future__ import absolute_import import collections from . import ( errors, revision, ) from .sixish import ( viewitems, viewvalues, ) class _KnownGraphNode(object): """Represents a single object in the known graph.""" __slots__ = ('key', 'parent_keys', 'child_keys', 'gdfo') def __init__(self, key, parent_keys): self.key = key self.parent_keys = parent_keys self.child_keys = [] # Greatest distance from origin self.gdfo = None def __repr__(self): return '%s(%s gdfo:%s par:%s child:%s)' % ( self.__class__.__name__, self.key, self.gdfo, self.parent_keys, self.child_keys) class _MergeSortNode(object): """Information about a specific node in the merge graph.""" __slots__ = ('key', 'merge_depth', 'revno', 'end_of_merge') def __init__(self, key, merge_depth, revno, end_of_merge): self.key = key self.merge_depth = merge_depth self.revno = revno self.end_of_merge = end_of_merge class KnownGraph(object): """This is a class which assumes we already know the full graph.""" def __init__(self, parent_map, do_cache=True): """Create a new KnownGraph instance. :param parent_map: A dictionary mapping key => parent_keys """ self._nodes = {} # Maps {frozenset(revision_id, revision_id): heads} self._known_heads = {} self.do_cache = do_cache self._initialize_nodes(parent_map) self._find_gdfo() def _initialize_nodes(self, parent_map): """Populate self._nodes. After this has finished: - self._nodes will have an entry for every entry in parent_map. - ghosts will have a parent_keys = None, - all nodes found will also have .child_keys populated with all known child_keys, """ nodes = self._nodes for key, parent_keys in viewitems(parent_map): if key in nodes: node = nodes[key] node.parent_keys = parent_keys else: node = _KnownGraphNode(key, parent_keys) nodes[key] = node for parent_key in parent_keys: try: parent_node = nodes[parent_key] except KeyError: parent_node = _KnownGraphNode(parent_key, None) nodes[parent_key] = parent_node parent_node.child_keys.append(key) def _find_tails(self): return [node for node in viewvalues(self._nodes) if not node.parent_keys] def _find_tips(self): return [node for node in viewvalues(self._nodes) if not node.child_keys] def _find_gdfo(self): nodes = self._nodes known_parent_gdfos = {} pending = [] for node in self._find_tails(): node.gdfo = 1 pending.append(node) while pending: node = pending.pop() for child_key in node.child_keys: child = nodes[child_key] if child_key in known_parent_gdfos: known_gdfo = known_parent_gdfos[child_key] + 1 present = True else: known_gdfo = 1 present = False if child.gdfo is None or node.gdfo + 1 > child.gdfo: child.gdfo = node.gdfo + 1 if known_gdfo == len(child.parent_keys): # We are the last parent updating that node, we can # continue from there pending.append(child) if present: del known_parent_gdfos[child_key] else: # Update known_parent_gdfos for a key we couldn't process known_parent_gdfos[child_key] = known_gdfo def add_node(self, key, parent_keys): """Add a new node to the graph. If this fills in a ghost, then the gdfos of all children will be updated accordingly. :param key: The node being added. If this is a duplicate, this is a no-op. :param parent_keys: The parents of the given node. :return: None (should we return if this was a ghost, etc?) """ nodes = self._nodes if key in nodes: node = nodes[key] if node.parent_keys is None: node.parent_keys = parent_keys # A ghost is being added, we can no-longer trust the heads # cache, so clear it self._known_heads.clear() else: # Make sure we compare a list to a list, as tuple != list. parent_keys = list(parent_keys) existing_parent_keys = list(node.parent_keys) if parent_keys == existing_parent_keys: return # Identical content else: raise ValueError('Parent key mismatch, existing node %s' ' has parents of %s not %s' % (key, existing_parent_keys, parent_keys)) else: node = _KnownGraphNode(key, parent_keys) nodes[key] = node parent_gdfo = 0 for parent_key in parent_keys: try: parent_node = nodes[parent_key] except KeyError: parent_node = _KnownGraphNode(parent_key, None) # Ghosts and roots have gdfo 1 parent_node.gdfo = 1 nodes[parent_key] = parent_node if parent_gdfo < parent_node.gdfo: parent_gdfo = parent_node.gdfo parent_node.child_keys.append(key) node.gdfo = parent_gdfo + 1 # Now fill the gdfo to all children # Note that this loop is slightly inefficient, in that we may visit the # same child (and its decendents) more than once, however, it is # 'efficient' in that we only walk to nodes that would be updated, # rather than all nodes # We use a deque rather than a simple list stack, to go for BFD rather # than DFD. So that if a longer path is possible, we walk it before we # get to the final child pending = collections.deque([node]) while pending: node = pending.popleft() next_gdfo = node.gdfo + 1 for child_key in node.child_keys: child = nodes[child_key] if child.gdfo < next_gdfo: # This child is being updated, we need to check its # children child.gdfo = next_gdfo pending.append(child) def heads(self, keys): """Return the heads from amongst keys. This is done by searching the ancestries of each key. Any key that is reachable from another key is not returned; all the others are. This operation scales with the relative depth between any two keys. It uses gdfo to avoid walking all ancestry. :param keys: An iterable of keys. :return: A set of the heads. Note that as a set there is no ordering information. Callers will need to filter their input to create order if they need it. """ candidate_nodes = dict((key, self._nodes[key]) for key in keys) if revision.NULL_REVISION in candidate_nodes: # NULL_REVISION is only a head if it is the only entry candidate_nodes.pop(revision.NULL_REVISION) if not candidate_nodes: return frozenset([revision.NULL_REVISION]) if len(candidate_nodes) < 2: # No or only one candidate return frozenset(candidate_nodes) heads_key = frozenset(candidate_nodes) # Do we have a cached result ? try: heads = self._known_heads[heads_key] return heads except KeyError: pass # Let's compute the heads seen = set() pending = [] min_gdfo = None for node in viewvalues(candidate_nodes): if node.parent_keys: pending.extend(node.parent_keys) if min_gdfo is None or node.gdfo < min_gdfo: min_gdfo = node.gdfo nodes = self._nodes while pending: node_key = pending.pop() if node_key in seen: # node already appears in some ancestry continue seen.add(node_key) node = nodes[node_key] if node.gdfo <= min_gdfo: continue if node.parent_keys: pending.extend(node.parent_keys) heads = heads_key.difference(seen) if self.do_cache: self._known_heads[heads_key] = heads return heads def topo_sort(self): """Return the nodes in topological order. All parents must occur before all children. """ for node in viewvalues(self._nodes): if node.gdfo is None: raise errors.GraphCycleError(self._nodes) pending = self._find_tails() pending_pop = pending.pop pending_append = pending.append topo_order = [] topo_order_append = topo_order.append num_seen_parents = dict.fromkeys(self._nodes, 0) while pending: node = pending_pop() if node.parent_keys is not None: # We don't include ghost parents topo_order_append(node.key) for child_key in node.child_keys: child_node = self._nodes[child_key] seen_parents = num_seen_parents[child_key] + 1 if seen_parents == len(child_node.parent_keys): # All parents have been processed, enqueue this child pending_append(child_node) # This has been queued up, stop tracking it del num_seen_parents[child_key] else: num_seen_parents[child_key] = seen_parents # We started from the parents, so we don't need to do anymore work return topo_order def gc_sort(self): """Return a reverse topological ordering which is 'stable'. There are a few constraints: 1) Reverse topological (all children before all parents) 2) Grouped by prefix 3) 'stable' sorting, so that we get the same result, independent of machine, or extra data. To do this, we use the same basic algorithm as topo_sort, but when we aren't sure what node to access next, we sort them lexicographically. """ tips = self._find_tips() # Split the tips based on prefix prefix_tips = {} for node in tips: if node.key.__class__ is str or len(node.key) == 1: prefix = '' else: prefix = node.key[0] prefix_tips.setdefault(prefix, []).append(node) num_seen_children = dict.fromkeys(self._nodes, 0) result = [] for prefix in sorted(prefix_tips): pending = sorted(prefix_tips[prefix], key=lambda n:n.key, reverse=True) while pending: node = pending.pop() if node.parent_keys is None: # Ghost node, skip it continue result.append(node.key) for parent_key in sorted(node.parent_keys, reverse=True): parent_node = self._nodes[parent_key] seen_children = num_seen_children[parent_key] + 1 if seen_children == len(parent_node.child_keys): # All children have been processed, enqueue this parent pending.append(parent_node) # This has been queued up, stop tracking it del num_seen_children[parent_key] else: num_seen_children[parent_key] = seen_children return result def merge_sort(self, tip_key): """Compute the merge sorted graph output.""" from breezy import tsort as_parent_map = dict((node.key, node.parent_keys) for node in viewvalues(self._nodes) if node.parent_keys is not None) # We intentionally always generate revnos and never force the # mainline_revisions # Strip the sequence_number that merge_sort generates return [_MergeSortNode(key, merge_depth, revno, end_of_merge) for _, key, merge_depth, revno, end_of_merge in tsort.merge_sort(as_parent_map, tip_key, mainline_revisions=None, generate_revno=True)] def get_parent_keys(self, key): """Get the parents for a key Returns a list containg the parents keys. If the key is a ghost, None is returned. A KeyError will be raised if the key is not in the graph. :param keys: Key to check (eg revision_id) :return: A list of parents """ return self._nodes[key].parent_keys def get_child_keys(self, key): """Get the children for a key Returns a list containg the children keys. A KeyError will be raised if the key is not in the graph. :param keys: Key to check (eg revision_id) :return: A list of children """ return self._nodes[key].child_keys breezy-3.0.0~bzr6852/breezy/_known_graph_pyx.pyx0000644000000000000000000011253013235603346020026 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Implementation of Graph algorithms when we have already loaded everything. """ from __future__ import absolute_import cdef extern from "python-compat.h": pass cdef extern from "Python.h": ctypedef int Py_ssize_t ctypedef struct PyObject: pass int PyString_CheckExact(object) int PyObject_RichCompareBool(object, object, int) int Py_LT int PyTuple_CheckExact(object) object PyTuple_New(Py_ssize_t n) Py_ssize_t PyTuple_GET_SIZE(object t) PyObject * PyTuple_GET_ITEM(object t, Py_ssize_t o) void PyTuple_SET_ITEM(object t, Py_ssize_t o, object v) int PyList_CheckExact(object) Py_ssize_t PyList_GET_SIZE(object l) PyObject * PyList_GET_ITEM(object l, Py_ssize_t o) int PyList_SetItem(object l, Py_ssize_t o, object l) except -1 int PyList_Append(object l, object v) except -1 int PyDict_CheckExact(object d) Py_ssize_t PyDict_Size(object d) except -1 PyObject * PyDict_GetItem(object d, object k) int PyDict_SetItem(object d, object k, object v) except -1 int PyDict_DelItem(object d, object k) except -1 int PyDict_Next(object d, Py_ssize_t *pos, PyObject **k, PyObject **v) void Py_INCREF(object) import collections import gc from . import errors, revision cdef object NULL_REVISION NULL_REVISION = revision.NULL_REVISION cdef class _KnownGraphNode: """Represents a single object in the known graph.""" cdef object key cdef object parents cdef object children cdef public long gdfo cdef int seen cdef object extra def __init__(self, key): self.key = key self.parents = None self.children = [] # Greatest distance from origin self.gdfo = -1 self.seen = 0 self.extra = None property child_keys: def __get__(self): cdef _KnownGraphNode child keys = [] for child in self.children: PyList_Append(keys, child.key) return keys property parent_keys: def __get__(self): if self.parents is None: return None cdef _KnownGraphNode parent keys = [] for parent in self.parents: PyList_Append(keys, parent.key) return keys cdef clear_references(self): self.parents = None self.children = None def __repr__(self): cdef _KnownGraphNode node parent_keys = [] if self.parents is not None: for node in self.parents: parent_keys.append(node.key) child_keys = [] if self.children is not None: for node in self.children: child_keys.append(node.key) return '%s(%s gdfo:%s par:%s child:%s)' % ( self.__class__.__name__, self.key, self.gdfo, parent_keys, child_keys) cdef _KnownGraphNode _get_list_node(lst, Py_ssize_t pos): cdef PyObject *temp_node temp_node = PyList_GET_ITEM(lst, pos) return <_KnownGraphNode>temp_node cdef _KnownGraphNode _get_tuple_node(tpl, Py_ssize_t pos): cdef PyObject *temp_node temp_node = PyTuple_GET_ITEM(tpl, pos) return <_KnownGraphNode>temp_node def get_key(node): cdef _KnownGraphNode real_node real_node = node return real_node.key cdef object _sort_list_nodes(object lst_or_tpl, int reverse): """Sort a list of _KnownGraphNode objects. If lst_or_tpl is a list, it is allowed to mutate in place. It may also just return the input list if everything is already sorted. """ cdef _KnownGraphNode node1, node2 cdef int do_swap, is_tuple cdef Py_ssize_t length is_tuple = PyTuple_CheckExact(lst_or_tpl) if not (is_tuple or PyList_CheckExact(lst_or_tpl)): raise TypeError('lst_or_tpl must be a list or tuple.') length = len(lst_or_tpl) if length == 0 or length == 1: return lst_or_tpl if length == 2: if is_tuple: node1 = _get_tuple_node(lst_or_tpl, 0) node2 = _get_tuple_node(lst_or_tpl, 1) else: node1 = _get_list_node(lst_or_tpl, 0) node2 = _get_list_node(lst_or_tpl, 1) if reverse: do_swap = PyObject_RichCompareBool(node1.key, node2.key, Py_LT) else: do_swap = PyObject_RichCompareBool(node2.key, node1.key, Py_LT) if not do_swap: return lst_or_tpl if is_tuple: return (node2, node1) else: # Swap 'in-place', since lists are mutable Py_INCREF(node1) PyList_SetItem(lst_or_tpl, 1, node1) Py_INCREF(node2) PyList_SetItem(lst_or_tpl, 0, node2) return lst_or_tpl # For all other sizes, we just use 'sorted()' if is_tuple: # Note that sorted() is just list(iterable).sort() lst_or_tpl = list(lst_or_tpl) lst_or_tpl.sort(key=get_key, reverse=reverse) return lst_or_tpl cdef class _MergeSorter cdef class KnownGraph: """This is a class which assumes we already know the full graph.""" cdef public object _nodes cdef public object _known_heads cdef public int do_cache def __init__(self, parent_map, do_cache=True): """Create a new KnownGraph instance. :param parent_map: A dictionary mapping key => parent_keys """ # tests at pre-allocating the node dict actually slowed things down self._nodes = {} # Maps {sorted(revision_id, revision_id): heads} self._known_heads = {} self.do_cache = int(do_cache) # TODO: consider disabling gc since we are allocating a lot of nodes # that won't be collectable anyway. real world testing has not # shown a specific impact, yet. self._initialize_nodes(parent_map) self._find_gdfo() def __dealloc__(self): cdef _KnownGraphNode child cdef Py_ssize_t pos cdef PyObject *temp_node while PyDict_Next(self._nodes, &pos, NULL, &temp_node): child = <_KnownGraphNode>temp_node child.clear_references() cdef _KnownGraphNode _get_or_create_node(self, key): cdef PyObject *temp_node cdef _KnownGraphNode node temp_node = PyDict_GetItem(self._nodes, key) if temp_node == NULL: node = _KnownGraphNode(key) PyDict_SetItem(self._nodes, key, node) else: node = <_KnownGraphNode>temp_node return node cdef _populate_parents(self, _KnownGraphNode node, parent_keys): cdef Py_ssize_t num_parent_keys, pos cdef _KnownGraphNode parent_node num_parent_keys = len(parent_keys) # We know how many parents, so we pre allocate the tuple parent_nodes = PyTuple_New(num_parent_keys) for pos from 0 <= pos < num_parent_keys: # Note: it costs us 10ms out of 40ms to lookup all of these # parents, it doesn't seem to be an allocation overhead, # but rather a lookup overhead. There doesn't seem to be # a way around it, and that is one reason why # KnownGraphNode maintains a direct pointer to the parent # node. # We use [] because parent_keys may be a tuple or list parent_node = self._get_or_create_node(parent_keys[pos]) # PyTuple_SET_ITEM will steal a reference, so INCREF first Py_INCREF(parent_node) PyTuple_SET_ITEM(parent_nodes, pos, parent_node) PyList_Append(parent_node.children, node) node.parents = parent_nodes def _initialize_nodes(self, parent_map): """Populate self._nodes. After this has finished: - self._nodes will have an entry for every entry in parent_map. - ghosts will have a parent_keys = None, - all nodes found will also have child_keys populated with all known child keys, """ cdef PyObject *temp_key, *temp_parent_keys, *temp_node cdef Py_ssize_t pos cdef _KnownGraphNode node cdef _KnownGraphNode parent_node if not PyDict_CheckExact(parent_map): raise TypeError('parent_map should be a dict of {key:parent_keys}') # for key, parent_keys in parent_map.iteritems(): pos = 0 while PyDict_Next(parent_map, &pos, &temp_key, &temp_parent_keys): key = temp_key parent_keys = temp_parent_keys node = self._get_or_create_node(key) self._populate_parents(node, parent_keys) def _find_tails(self): cdef PyObject *temp_node cdef _KnownGraphNode node cdef Py_ssize_t pos tails = [] pos = 0 while PyDict_Next(self._nodes, &pos, NULL, &temp_node): node = <_KnownGraphNode>temp_node if node.parents is None or PyTuple_GET_SIZE(node.parents) == 0: node.gdfo = 1 PyList_Append(tails, node) return tails def _find_tips(self): cdef PyObject *temp_node cdef _KnownGraphNode node cdef Py_ssize_t pos tips = [] pos = 0 while PyDict_Next(self._nodes, &pos, NULL, &temp_node): node = <_KnownGraphNode>temp_node if PyList_GET_SIZE(node.children) == 0: PyList_Append(tips, node) return tips def _find_gdfo(self): cdef _KnownGraphNode node cdef _KnownGraphNode child cdef PyObject *temp cdef Py_ssize_t pos cdef int replace cdef Py_ssize_t last_item cdef long next_gdfo pending = self._find_tails() last_item = PyList_GET_SIZE(pending) - 1 while last_item >= 0: # Avoid pop followed by push, instead, peek, and replace # timing shows this is 930ms => 770ms for OOo node = _get_list_node(pending, last_item) last_item = last_item - 1 next_gdfo = node.gdfo + 1 for pos from 0 <= pos < PyList_GET_SIZE(node.children): child = _get_list_node(node.children, pos) if next_gdfo > child.gdfo: child.gdfo = next_gdfo child.seen = child.seen + 1 if child.seen == PyTuple_GET_SIZE(child.parents): # This child is populated, queue it to be walked last_item = last_item + 1 if last_item < PyList_GET_SIZE(pending): Py_INCREF(child) # SetItem steals a ref PyList_SetItem(pending, last_item, child) else: PyList_Append(pending, child) # We have queued this node, we don't need to track it # anymore child.seen = 0 def add_node(self, key, parent_keys): """Add a new node to the graph. If this fills in a ghost, then the gdfos of all children will be updated accordingly. :param key: The node being added. If this is a duplicate, this is a no-op. :param parent_keys: The parents of the given node. :return: None (should we return if this was a ghost, etc?) """ cdef PyObject *maybe_node cdef _KnownGraphNode node, parent_node, child_node cdef long parent_gdfo, next_gdfo maybe_node = PyDict_GetItem(self._nodes, key) if maybe_node != NULL: node = <_KnownGraphNode>maybe_node if node.parents is None: # We are filling in a ghost self._populate_parents(node, parent_keys) # We can't trust cached heads anymore self._known_heads.clear() else: # Ensure that the parent_key list matches existing_parent_keys = [] for parent_node in node.parents: existing_parent_keys.append(parent_node.key) # Make sure we use a list for the comparison, in case it was a # tuple, etc parent_keys = list(parent_keys) if existing_parent_keys == parent_keys: # Exact match, nothing more to do return else: raise ValueError('Parent key mismatch, existing node %s' ' has parents of %s not %s' % (key, existing_parent_keys, parent_keys)) else: node = _KnownGraphNode(key) PyDict_SetItem(self._nodes, key, node) self._populate_parents(node, parent_keys) parent_gdfo = 0 for parent_node in node.parents: if parent_node.gdfo == -1: # This is a newly introduced ghost, so it gets gdfo of 1 parent_node.gdfo = 1 if parent_gdfo < parent_node.gdfo: parent_gdfo = parent_node.gdfo node.gdfo = parent_gdfo + 1 # Now fill the gdfo to all children # Note that this loop is slightly inefficient, in that we may visit the # same child (and its decendents) more than once, however, it is # 'efficient' in that we only walk to nodes that would be updated, # rather than all nodes # We use a deque rather than a simple list stack, to go for BFD rather # than DFD. So that if a longer path is possible, we walk it before we # get to the final child pending = collections.deque([node]) pending_popleft = pending.popleft pending_append = pending.append while pending: node = pending_popleft() next_gdfo = node.gdfo + 1 for child_node in node.children: if child_node.gdfo < next_gdfo: # This child is being updated, we need to check its # children child_node.gdfo = next_gdfo pending_append(child_node) def heads(self, keys): """Return the heads from amongst keys. This is done by searching the ancestries of each key. Any key that is reachable from another key is not returned; all the others are. This operation scales with the relative depth between any two keys. It uses gdfo to avoid walking all ancestry. :param keys: An iterable of keys. :return: A set of the heads. Note that as a set there is no ordering information. Callers will need to filter their input to create order if they need it. """ cdef PyObject *maybe_node cdef PyObject *maybe_heads cdef PyObject *temp_node cdef _KnownGraphNode node cdef Py_ssize_t pos, last_item cdef long min_gdfo heads_key = frozenset(keys) maybe_heads = PyDict_GetItem(self._known_heads, heads_key) if maybe_heads != NULL: return maybe_heads # Not cached, compute it ourselves candidate_nodes = {} for key in keys: maybe_node = PyDict_GetItem(self._nodes, key) if maybe_node == NULL: raise KeyError('key %s not in nodes' % (key,)) PyDict_SetItem(candidate_nodes, key, maybe_node) maybe_node = PyDict_GetItem(candidate_nodes, NULL_REVISION) if maybe_node != NULL: # NULL_REVISION is only a head if it is the only entry candidate_nodes.pop(NULL_REVISION) if not candidate_nodes: return frozenset([NULL_REVISION]) # The keys changed, so recalculate heads_key heads_key = frozenset(candidate_nodes) if PyDict_Size(candidate_nodes) < 2: return heads_key cleanup = [] pending = [] # we know a gdfo cannot be longer than a linear chain of all nodes min_gdfo = PyDict_Size(self._nodes) + 1 # Build up nodes that need to be walked, note that starting nodes are # not added to seen() pos = 0 while PyDict_Next(candidate_nodes, &pos, NULL, &temp_node): node = <_KnownGraphNode>temp_node if node.parents is not None: pending.extend(node.parents) if node.gdfo < min_gdfo: min_gdfo = node.gdfo # Now do all the real work last_item = PyList_GET_SIZE(pending) - 1 while last_item >= 0: node = _get_list_node(pending, last_item) last_item = last_item - 1 if node.seen: # node already appears in some ancestry continue PyList_Append(cleanup, node) node.seen = 1 if node.gdfo <= min_gdfo: continue if node.parents is not None and PyTuple_GET_SIZE(node.parents) > 0: for pos from 0 <= pos < PyTuple_GET_SIZE(node.parents): parent_node = _get_tuple_node(node.parents, pos) last_item = last_item + 1 if last_item < PyList_GET_SIZE(pending): Py_INCREF(parent_node) # SetItem steals a ref PyList_SetItem(pending, last_item, parent_node) else: PyList_Append(pending, parent_node) heads = [] pos = 0 while PyDict_Next(candidate_nodes, &pos, NULL, &temp_node): node = <_KnownGraphNode>temp_node if not node.seen: PyList_Append(heads, node.key) heads = frozenset(heads) for pos from 0 <= pos < PyList_GET_SIZE(cleanup): node = _get_list_node(cleanup, pos) node.seen = 0 if self.do_cache: PyDict_SetItem(self._known_heads, heads_key, heads) return heads def topo_sort(self): """Return the nodes in topological order. All parents must occur before all children. """ # This is, for the most part, the same iteration order that we used for # _find_gdfo, consider finding a way to remove the duplication # In general, we find the 'tails' (nodes with no parents), and then # walk to the children. For children that have all of their parents # yielded, we queue up the child to be yielded as well. cdef _KnownGraphNode node cdef _KnownGraphNode child cdef PyObject *temp cdef Py_ssize_t pos cdef int replace cdef Py_ssize_t last_item pending = self._find_tails() if PyList_GET_SIZE(pending) == 0 and len(self._nodes) > 0: raise errors.GraphCycleError(self._nodes) topo_order = [] last_item = PyList_GET_SIZE(pending) - 1 while last_item >= 0: # Avoid pop followed by push, instead, peek, and replace # timing shows this is 930ms => 770ms for OOo node = _get_list_node(pending, last_item) last_item = last_item - 1 if node.parents is not None: # We don't include ghost parents PyList_Append(topo_order, node.key) for pos from 0 <= pos < PyList_GET_SIZE(node.children): child = _get_list_node(node.children, pos) if child.gdfo == -1: # We know we have a graph cycle because a node has a parent # which we couldn't find raise errors.GraphCycleError(self._nodes) child.seen = child.seen + 1 if child.seen == PyTuple_GET_SIZE(child.parents): # All parents of this child have been yielded, queue this # one to be yielded as well last_item = last_item + 1 if last_item < PyList_GET_SIZE(pending): Py_INCREF(child) # SetItem steals a ref PyList_SetItem(pending, last_item, child) else: PyList_Append(pending, child) # We have queued this node, we don't need to track it # anymore child.seen = 0 # We started from the parents, so we don't need to do anymore work return topo_order def gc_sort(self): """Return a reverse topological ordering which is 'stable'. There are a few constraints: 1) Reverse topological (all children before all parents) 2) Grouped by prefix 3) 'stable' sorting, so that we get the same result, independent of machine, or extra data. To do this, we use the same basic algorithm as topo_sort, but when we aren't sure what node to access next, we sort them lexicographically. """ cdef PyObject *temp cdef Py_ssize_t pos, last_item cdef _KnownGraphNode node, node2, parent_node tips = self._find_tips() # Split the tips based on prefix prefix_tips = {} for pos from 0 <= pos < PyList_GET_SIZE(tips): node = _get_list_node(tips, pos) if PyString_CheckExact(node.key) or len(node.key) == 1: prefix = '' else: prefix = node.key[0] temp = PyDict_GetItem(prefix_tips, prefix) if temp == NULL: prefix_tips[prefix] = [node] else: tip_nodes = temp PyList_Append(tip_nodes, node) result = [] for prefix in sorted(prefix_tips): temp = PyDict_GetItem(prefix_tips, prefix) assert temp != NULL tip_nodes = temp pending = _sort_list_nodes(tip_nodes, 1) last_item = PyList_GET_SIZE(pending) - 1 while last_item >= 0: node = _get_list_node(pending, last_item) last_item = last_item - 1 if node.parents is None: # Ghost continue PyList_Append(result, node.key) # Sorting the parent keys isn't strictly necessary for stable # sorting of a given graph. But it does help minimize the # differences between graphs # For bzr.dev ancestry: # 4.73ms no sort # 7.73ms RichCompareBool sort parents = _sort_list_nodes(node.parents, 1) for pos from 0 <= pos < len(parents): if PyTuple_CheckExact(parents): parent_node = _get_tuple_node(parents, pos) else: parent_node = _get_list_node(parents, pos) # TODO: GraphCycle detection parent_node.seen = parent_node.seen + 1 if (parent_node.seen == PyList_GET_SIZE(parent_node.children)): # All children have been processed, queue up this # parent last_item = last_item + 1 if last_item < PyList_GET_SIZE(pending): Py_INCREF(parent_node) # SetItem steals a ref PyList_SetItem(pending, last_item, parent_node) else: PyList_Append(pending, parent_node) parent_node.seen = 0 return result def merge_sort(self, tip_key): """Compute the merge sorted graph output.""" cdef _MergeSorter sorter # TODO: consider disabling gc since we are allocating a lot of nodes # that won't be collectable anyway. real world testing has not # shown a specific impact, yet. sorter = _MergeSorter(self, tip_key) return sorter.topo_order() def get_parent_keys(self, key): """Get the parents for a key Returns a list containg the parents keys. If the key is a ghost, None is returned. A KeyError will be raised if the key is not in the graph. :param keys: Key to check (eg revision_id) :return: A list of parents """ return self._nodes[key].parent_keys def get_child_keys(self, key): """Get the children for a key Returns a list containg the children keys. A KeyError will be raised if the key is not in the graph. :param keys: Key to check (eg revision_id) :return: A list of children """ return self._nodes[key].child_keys cdef class _MergeSortNode: """Tracks information about a node during the merge_sort operation.""" # Public api cdef public object key cdef public long merge_depth cdef public object end_of_merge # True/False Is this the end of the current merge # Private api, used while computing the information cdef _KnownGraphNode left_parent cdef _KnownGraphNode left_pending_parent cdef object pending_parents # list of _KnownGraphNode for non-left parents cdef long _revno_first cdef long _revno_second cdef long _revno_last # TODO: turn these into flag/bit fields rather than individual members cdef int is_first_child # Is this the first child? cdef int seen_by_child # A child node has seen this parent cdef int completed # Fully Processed def __init__(self, key): self.key = key self.merge_depth = -1 self.left_parent = None self.left_pending_parent = None self.pending_parents = None self._revno_first = -1 self._revno_second = -1 self._revno_last = -1 self.is_first_child = 0 self.seen_by_child = 0 self.completed = 0 def __repr__(self): return '%s(%s depth:%s rev:%s,%s,%s first:%s seen:%s)' % ( self.__class__.__name__, self.key, self.merge_depth, self._revno_first, self._revno_second, self._revno_last, self.is_first_child, self.seen_by_child) cdef int has_pending_parents(self): # cannot_raise if self.left_pending_parent is not None or self.pending_parents: return 1 return 0 cdef object _revno(self): if self._revno_first == -1: if self._revno_second != -1: raise RuntimeError('Something wrong with: %s' % (self,)) return (self._revno_last,) else: return (self._revno_first, self._revno_second, self._revno_last) property revno: def __get__(self): return self._revno() cdef class _MergeSorter: """This class does the work of computing the merge_sort ordering. We have some small advantages, in that we get all the extra information that KnownGraph knows, like knowing the child lists, etc. """ # Current performance numbers for merge_sort(bzr_dev_parent_map): # 302ms tsort.merge_sort() # 91ms graph.KnownGraph().merge_sort() # 40ms kg.merge_sort() cdef KnownGraph graph cdef object _depth_first_stack # list cdef Py_ssize_t _last_stack_item # offset to last item on stack # cdef object _ms_nodes # dict of key => _MergeSortNode cdef object _revno_to_branch_count # {revno => num child branches} cdef object _scheduled_nodes # List of nodes ready to be yielded def __init__(self, known_graph, tip_key): cdef _KnownGraphNode node self.graph = known_graph # self._ms_nodes = {} self._revno_to_branch_count = {} self._depth_first_stack = [] self._last_stack_item = -1 self._scheduled_nodes = [] if (tip_key is not None and tip_key != NULL_REVISION and tip_key != (NULL_REVISION,)): node = self.graph._nodes[tip_key] self._push_node(node, 0) cdef _MergeSortNode _get_ms_node(self, _KnownGraphNode node): cdef PyObject *temp_node cdef _MergeSortNode ms_node if node.extra is None: ms_node = _MergeSortNode(node.key) node.extra = ms_node else: ms_node = <_MergeSortNode>node.extra return ms_node cdef _push_node(self, _KnownGraphNode node, long merge_depth): cdef _KnownGraphNode parent_node cdef _MergeSortNode ms_node, ms_parent_node cdef Py_ssize_t pos ms_node = self._get_ms_node(node) ms_node.merge_depth = merge_depth if node.parents is None: raise RuntimeError('ghost nodes should not be pushed' ' onto the stack: %s' % (node,)) if PyTuple_GET_SIZE(node.parents) > 0: parent_node = _get_tuple_node(node.parents, 0) ms_node.left_parent = parent_node if parent_node.parents is None: # left-hand ghost ms_node.left_pending_parent = None ms_node.left_parent = None else: ms_node.left_pending_parent = parent_node if PyTuple_GET_SIZE(node.parents) > 1: ms_node.pending_parents = [] for pos from 1 <= pos < PyTuple_GET_SIZE(node.parents): parent_node = _get_tuple_node(node.parents, pos) if parent_node.parents is None: # ghost continue PyList_Append(ms_node.pending_parents, parent_node) ms_node.is_first_child = 1 if ms_node.left_parent is not None: ms_parent_node = self._get_ms_node(ms_node.left_parent) if ms_parent_node.seen_by_child: ms_node.is_first_child = 0 ms_parent_node.seen_by_child = 1 self._last_stack_item = self._last_stack_item + 1 if self._last_stack_item < PyList_GET_SIZE(self._depth_first_stack): Py_INCREF(node) # SetItem steals a ref PyList_SetItem(self._depth_first_stack, self._last_stack_item, node) else: PyList_Append(self._depth_first_stack, node) cdef _pop_node(self): cdef PyObject *temp cdef _MergeSortNode ms_node, ms_parent_node, ms_prev_node cdef _KnownGraphNode node, parent_node, prev_node node = _get_list_node(self._depth_first_stack, self._last_stack_item) ms_node = <_MergeSortNode>node.extra self._last_stack_item = self._last_stack_item - 1 if ms_node.left_parent is not None: # Assign the revision number from the left-hand parent ms_parent_node = <_MergeSortNode>ms_node.left_parent.extra if ms_node.is_first_child: # First child just increments the final digit ms_node._revno_first = ms_parent_node._revno_first ms_node._revno_second = ms_parent_node._revno_second ms_node._revno_last = ms_parent_node._revno_last + 1 else: # Not the first child, make a new branch # (mainline_revno, branch_count, 1) if ms_parent_node._revno_first == -1: # Mainline ancestor, the increment is on the last digit base_revno = ms_parent_node._revno_last else: base_revno = ms_parent_node._revno_first temp = PyDict_GetItem(self._revno_to_branch_count, base_revno) if temp == NULL: branch_count = 1 else: branch_count = (temp) + 1 PyDict_SetItem(self._revno_to_branch_count, base_revno, branch_count) ms_node._revno_first = base_revno ms_node._revno_second = branch_count ms_node._revno_last = 1 else: temp = PyDict_GetItem(self._revno_to_branch_count, 0) if temp == NULL: # The first root node doesn't have a 3-digit revno root_count = 0 ms_node._revno_first = -1 ms_node._revno_second = -1 ms_node._revno_last = 1 else: root_count = (temp) + 1 ms_node._revno_first = 0 ms_node._revno_second = root_count ms_node._revno_last = 1 PyDict_SetItem(self._revno_to_branch_count, 0, root_count) ms_node.completed = 1 if PyList_GET_SIZE(self._scheduled_nodes) == 0: # The first scheduled node is always the end of merge ms_node.end_of_merge = True else: prev_node = _get_list_node(self._scheduled_nodes, PyList_GET_SIZE(self._scheduled_nodes) - 1) ms_prev_node = <_MergeSortNode>prev_node.extra if ms_prev_node.merge_depth < ms_node.merge_depth: # The previously pushed node is to our left, so this is the end # of this right-hand chain ms_node.end_of_merge = True elif (ms_prev_node.merge_depth == ms_node.merge_depth and prev_node not in node.parents): # The next node is not a direct parent of this node ms_node.end_of_merge = True else: ms_node.end_of_merge = False PyList_Append(self._scheduled_nodes, node) cdef _schedule_stack(self): cdef _KnownGraphNode last_node, next_node cdef _MergeSortNode ms_node, ms_last_node, ms_next_node cdef long next_merge_depth ordered = [] while self._last_stack_item >= 0: # Peek at the last item on the stack last_node = _get_list_node(self._depth_first_stack, self._last_stack_item) if last_node.gdfo == -1: # if _find_gdfo skipped a node, that means there is a graph # cycle, error out now raise errors.GraphCycleError(self.graph._nodes) ms_last_node = <_MergeSortNode>last_node.extra if not ms_last_node.has_pending_parents(): # Processed all parents, pop this node self._pop_node() continue while ms_last_node.has_pending_parents(): if ms_last_node.left_pending_parent is not None: # recurse depth first into the primary parent next_node = ms_last_node.left_pending_parent ms_last_node.left_pending_parent = None else: # place any merges in right-to-left order for scheduling # which gives us left-to-right order after we reverse # the scheduled queue. # Note: This has the effect of allocating common-new # revisions to the right-most subtree rather than the # left most, which will display nicely (you get # smaller trees at the top of the combined merge). next_node = ms_last_node.pending_parents.pop() ms_next_node = self._get_ms_node(next_node) if ms_next_node.completed: # this parent was completed by a child on the # call stack. skip it. continue # otherwise transfer it from the source graph into the # top of the current depth first search stack. if next_node is ms_last_node.left_parent: next_merge_depth = ms_last_node.merge_depth else: next_merge_depth = ms_last_node.merge_depth + 1 self._push_node(next_node, next_merge_depth) # and do not continue processing parents until this 'call' # has recursed. break cdef topo_order(self): cdef _MergeSortNode ms_node cdef _KnownGraphNode node cdef Py_ssize_t pos cdef PyObject *temp_key, *temp_node # Note: allocating a _MergeSortNode and deallocating it for all nodes # costs approx 8.52ms (21%) of the total runtime # We might consider moving the attributes into the base # KnownGraph object. self._schedule_stack() # We've set up the basic schedule, now we can continue processing the # output. # Note: This final loop costs us 40.0ms => 28.8ms (11ms, 25%) on # bzr.dev, to convert the internal Object representation into a # Tuple representation... # 2ms is walking the data and computing revno tuples # 7ms is computing the return tuple # 4ms is PyList_Append() ordered = [] # output the result in reverse order, and separate the generated info for pos from PyList_GET_SIZE(self._scheduled_nodes) > pos >= 0: node = _get_list_node(self._scheduled_nodes, pos) ms_node = <_MergeSortNode>node.extra PyList_Append(ordered, ms_node) node.extra = None # Clear out the scheduled nodes now that we're done self._scheduled_nodes = [] return ordered breezy-3.0.0~bzr6852/breezy/_patiencediff_c.c0000644000000000000000000011145513235603346017143 0ustar 00000000000000/* Copyright (C) 2007, 2010 Canonical Ltd This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Function equate_lines based on bdiff.c from Mercurial. Copyright (C) 2005, 2006 Matt Mackall Functions unique_lcs/recurse_matches based on _patiencediff_py.py. Copyright (C) 2005 Bram Cohen, Copyright (C) 2005, 2006 Canonical Ltd */ #include #include #include #include "python-compat.h" #if defined(__GNUC__) # define inline __inline__ #elif defined(_MSC_VER) # define inline __inline #else # define inline #endif #define MIN(a, b) (((a) > (b)) ? (b) : (a)) #define MAX(a, b) (((a) > (b)) ? (a) : (b)) #define SENTINEL -1 /* malloc returns NULL on some platforms if you try to allocate nothing, * causing and * . On glibc it passes, but * let's make it fail to aid testing. */ #define guarded_malloc(x) ( (x) ? malloc(x) : NULL ) enum { OP_EQUAL = 0, OP_INSERT, OP_DELETE, OP_REPLACE }; /* values from this array need to correspont to the order of the enum above */ static char *opcode_names[] = { "equal", "insert", "delete", "replace", }; struct line { long hash; /* hash code of the string/object */ Py_ssize_t next; /* next line from the same equivalence class */ Py_ssize_t equiv; /* equivalence class */ PyObject *data; }; struct bucket { Py_ssize_t a_head; /* first item in `a` from this equivalence class */ Py_ssize_t a_count; Py_ssize_t b_head; /* first item in `b` from this equivalence class */ Py_ssize_t b_count; Py_ssize_t a_pos; Py_ssize_t b_pos; }; struct hashtable { Py_ssize_t last_a_pos; Py_ssize_t last_b_pos; Py_ssize_t size; struct bucket *table; }; struct matching_line { Py_ssize_t a; /* index of the line in `a` */ Py_ssize_t b; /* index of the line in `b` */ }; struct matching_block { Py_ssize_t a; /* index of the first line in `a` */ Py_ssize_t b; /* index of the first line in `b` */ Py_ssize_t len; /* length of the block */ }; struct matching_blocks { struct matching_block *matches; Py_ssize_t count; }; struct opcode { int tag; Py_ssize_t i1; Py_ssize_t i2; Py_ssize_t j1; Py_ssize_t j2; }; typedef struct { PyObject_HEAD Py_ssize_t asize; Py_ssize_t bsize; struct line *a; struct line *b; struct hashtable hashtable; Py_ssize_t *backpointers; } PatienceSequenceMatcher; static inline Py_ssize_t bisect_left(Py_ssize_t *list, Py_ssize_t item, Py_ssize_t lo, Py_ssize_t hi) { while (lo < hi) { Py_ssize_t mid = lo / 2 + hi / 2 + (lo % 2 + hi % 2) / 2; if (list[mid] < item) lo = mid + 1; else hi = mid; } return lo; } static inline int compare_lines(struct line *a, struct line *b) { return ((a->hash != b->hash) || PyObject_Compare(a->data, b->data)); } static inline int find_equivalence_class(struct bucket *hashtable, Py_ssize_t hsize, struct line *lines, struct line *ref_lines, Py_ssize_t i) { Py_ssize_t j; for (j = lines[i].hash & hsize; hashtable[j].b_head != SENTINEL; j = (j + 1) & hsize) { if (!compare_lines(lines + i, ref_lines + hashtable[j].b_head)) { break; } } return j; } static int equate_lines(struct hashtable *result, struct line *lines_a, struct line *lines_b, Py_ssize_t asize, Py_ssize_t bsize) { Py_ssize_t i, j, hsize; struct bucket *hashtable; /* check for overflow, we need the table to be at least bsize+1 */ if (bsize == PY_SSIZE_T_MAX) { PyErr_SetNone(PyExc_OverflowError); return 0; } /* build a hash table of the next highest power of 2 */ hsize = 1; while (hsize < bsize + 1) hsize *= 2; /* can't be 0 */ hashtable = (struct bucket *) guarded_malloc(sizeof(struct bucket) * hsize); if (hashtable == NULL) { PyErr_NoMemory(); return 0; } /* initialise the hashtable */ for (i = 0; i < hsize; i++) { hashtable[i].a_count = 0; hashtable[i].b_count = 0; hashtable[i].a_head = SENTINEL; hashtable[i].b_head = SENTINEL; } hsize--; /* add lines from lines_b to the hash table chains. iterating backwards so the matching lines are sorted to the linked list by the line number (because we are adding new lines to the head of the list) */ for (i = bsize - 1; i >= 0; i--) { /* find the first hashtable entry, which is either empty or contains the same line as lines_b[i] */ j = find_equivalence_class(hashtable, hsize, lines_b, lines_b, i); /* set the equivalence class */ lines_b[i].equiv = j; /* add to the head of the equivalence class */ lines_b[i].next = hashtable[j].b_head; hashtable[j].b_head = i; hashtable[j].b_count++; } /* match items from lines_a to their equivalence class in lines_b. again, iterating backwards for the right order of the linked lists */ for (i = asize - 1; i >= 0; i--) { /* find the first hash entry, which is either empty or contains the same line as lines_a[i] */ j = find_equivalence_class(hashtable, hsize, lines_a, lines_b, i); /* set the equivalence class, even if we are not interested in this line, because the values are not pre-filled */ lines_a[i].equiv = j; /* we are not interested in lines which are not also in lines_b */ if (hashtable[j].b_head == SENTINEL) continue; /* add to the head of the equivalence class */ lines_a[i].next = hashtable[j].a_head; hashtable[j].a_head = i; hashtable[j].a_count++; } result->last_a_pos = -1; result->last_b_pos = -1; result->size = hsize + 1; result->table = hashtable; return 1; } /* Finds longest common subsequence of unique lines in a[alo:ahi] and b[blo:bhi]. Parameter backpointers must have allocated memory for at least 4 * (bhi - blo) ints. */ Py_ssize_t unique_lcs(struct matching_line *answer, struct hashtable *hashtable, Py_ssize_t *backpointers, struct line *lines_a, struct line *lines_b, Py_ssize_t alo, Py_ssize_t blo, Py_ssize_t ahi, Py_ssize_t bhi) { Py_ssize_t i, k, equiv, apos, bpos, norm_apos, norm_bpos, bsize, stacksize; Py_ssize_t *stacks, *lasts, *btoa; struct bucket *h; k = 0; stacksize = 0; bsize = bhi - blo; h = hashtable->table; /* "unpack" the allocated memory */ stacks = backpointers + bsize; lasts = stacks + bsize; btoa = lasts + bsize; /* initialise the backpointers */ for (i = 0; i < bsize; i++) backpointers[i] = SENTINEL; if (hashtable->last_a_pos == -1 || hashtable->last_a_pos > alo) for (i = 0; i < hashtable->size; i++) h[i].a_pos = h[i].a_head; hashtable->last_a_pos = alo; if (hashtable->last_b_pos == -1 || hashtable->last_b_pos > blo) for (i = 0; i < hashtable->size; i++) h[i].b_pos = h[i].b_head; hashtable->last_b_pos = blo; for (bpos = blo; bpos < bhi; bpos++) { equiv = lines_b[bpos].equiv; /* no lines in a or b */ if (h[equiv].a_count == 0 || h[equiv].b_count == 0) continue; /* find an unique line in lines_a that matches lines_b[bpos] if we find more than one line within the range alo:ahi, jump to the next line from lines_b immediately */ apos = SENTINEL; /* loop through all lines in the linked list */ for (i = h[equiv].a_pos; i != SENTINEL; i = lines_a[i].next) { /* the index is lower than alo, continue to the next line */ if (i < alo) { h[equiv].a_pos = i; continue; } /* the index is higher than ahi, stop searching */ if (i >= ahi) break; /* if the line is within our range, check if it's a duplicate */ if (apos != SENTINEL) goto nextb; /* save index to the line */ apos = i; } /* this line has no equivalent in lines_a[alo:ahi] */ if (apos == SENTINEL) goto nextb; /* check for duplicates of this line in lines_b[blo:bhi] */ /* loop through all lines in the linked list */ for (i = h[equiv].b_pos; i != SENTINEL; i = lines_b[i].next) { /* the index is lower than blo, continue to the next line */ if (i < blo) { h[equiv].b_pos = i; continue; } /* the index is higher than bhi, stop searching */ if (i >= bhi) break; /* if this isn't the line with started with and it's within our range, it's a duplicate */ if (i != bpos) goto nextb; } /* use normalised indexes ([0,ahi-alo) instead of [alo,ahi)) for the patience sorting algorithm */ norm_bpos = bpos - blo; norm_apos = apos - alo; btoa[norm_bpos] = norm_apos; /* Ok, how does this work... We have a list of matching lines from two lists, a and b. These matches are stored in variable `btoa`. As we are iterating over this table by bpos, the lines from b already form an increasing sequence. We need to "sort" also the lines from a using the patience sorting algorithm, ignoring the lines which would need to be swapped. http://en.wikipedia.org/wiki/Patience_sorting For each pair of lines, we need to place the line from a on either an existing pile that has higher value on the top or create a new pile. Variable `stacks` represents the tops of these piles and in variable `lasts` we store the lines from b, that correspond to the lines from a in `stacks`. Whenever we place a new line on top of a pile, we store a backpointer to the line (b) from top of the previous pile. This means that after the loop, variable `backpointers` will contain an index to the previous matching lines that forms an increasing sequence (over both indexes a and b) with the current matching lines. If either index a or b of the previous matching lines would be higher than indexes of the current one or if the indexes of the current one are 0, it will contain SENTINEL. To construct the LCS, we will just need to follow these backpointers from the top of the last pile and stop when we reach SENTINEL. */ /* as an optimization, check if the next line comes at the end, because it usually does */ if (stacksize && stacks[stacksize - 1] < norm_apos) k = stacksize; /* as an optimization, check if the next line comes right after the previous line, because usually it does */ else if (stacksize && (stacks[k] < norm_apos) && (k == stacksize - 1 || stacks[k + 1] > norm_apos)) k += 1; else k = bisect_left(stacks, norm_apos, 0, stacksize); if (k > 0) backpointers[norm_bpos] = lasts[k - 1]; if (k < stacksize) { stacks[k] = norm_apos; lasts[k] = norm_bpos; } else { stacks[stacksize] = norm_apos; lasts[stacksize] = norm_bpos; stacksize += 1; } nextb: ; } if (stacksize == 0) return 0; /* backtrace the structures to find the LCS */ i = 0; k = lasts[stacksize - 1]; while (k != SENTINEL) { answer[i].a = btoa[k]; answer[i].b = k; k = backpointers[k]; i++; } return i; } /* Adds a new line to the list of matching blocks, either extending the current block or adding a new one. */ static inline void add_matching_line(struct matching_blocks *answer, Py_ssize_t a, Py_ssize_t b) { Py_ssize_t last_index = answer->count - 1; if ((last_index >= 0) && (a == answer->matches[last_index].a + answer->matches[last_index].len) && (b == answer->matches[last_index].b + answer->matches[last_index].len)) { /* enlarge the last block */ answer->matches[last_index].len++; } else { /* create a new block */ last_index++; answer->matches[last_index].a = a; answer->matches[last_index].b = b; answer->matches[last_index].len = 1; answer->count++; } } static int recurse_matches(struct matching_blocks *answer, struct hashtable *hashtable, Py_ssize_t *backpointers, struct line *a, struct line *b, Py_ssize_t alo, Py_ssize_t blo, Py_ssize_t ahi, Py_ssize_t bhi, int maxrecursion) { int res; Py_ssize_t new, last_a_pos, last_b_pos, lcs_size, nahi, nbhi, i, apos, bpos; struct matching_line *lcs; if (maxrecursion < 0) return 1; if (alo == ahi || blo == bhi) return 1; new = 0; last_a_pos = alo - 1; last_b_pos = blo - 1; lcs = (struct matching_line *)guarded_malloc(sizeof(struct matching_line) * (bhi - blo)); if (lcs == NULL) return 0; lcs_size = unique_lcs(lcs, hashtable, backpointers, a, b, alo, blo, ahi, bhi); /* recurse between lines which are unique in each file and match */ for (i = lcs_size - 1; i >= 0; i--) { apos = alo + lcs[i].a; bpos = blo + lcs[i].b; if (last_a_pos + 1 != apos || last_b_pos + 1 != bpos) { res = recurse_matches(answer, hashtable, backpointers, a, b, last_a_pos + 1, last_b_pos + 1, apos, bpos, maxrecursion - 1); if (!res) goto error; } last_a_pos = apos; last_b_pos = bpos; add_matching_line(answer, apos, bpos); new = 1; } free(lcs); lcs = NULL; /* find matches between the last match and the end */ if (new > 0) { res = recurse_matches(answer, hashtable, backpointers, a, b, last_a_pos + 1, last_b_pos + 1, ahi, bhi, maxrecursion - 1); if (!res) goto error; } /* find matching lines at the very beginning */ else if (a[alo].equiv == b[blo].equiv) { while (alo < ahi && blo < bhi && a[alo].equiv == b[blo].equiv) add_matching_line(answer, alo++, blo++); res = recurse_matches(answer, hashtable, backpointers, a, b, alo, blo, ahi, bhi, maxrecursion - 1); if (!res) goto error; } /* find matching lines at the very end */ else if (a[ahi - 1].equiv == b[bhi - 1].equiv) { nahi = ahi - 1; nbhi = bhi - 1; while (nahi > alo && nbhi > blo && a[nahi - 1].equiv == b[nbhi - 1].equiv) { nahi--; nbhi--; } res = recurse_matches(answer, hashtable, backpointers, a, b, last_a_pos + 1, last_b_pos + 1, nahi, nbhi, maxrecursion - 1); if (!res) goto error; for (i = 0; i < ahi - nahi; i++) add_matching_line(answer, nahi + i, nbhi + i); } return 1; error: free(lcs); return 0; } static void delete_lines(struct line *lines, Py_ssize_t size) { struct line *line = lines; while (size-- > 0) { Py_XDECREF(line->data); line++; } free(lines); } static Py_ssize_t load_lines(PyObject *orig, struct line **lines) { Py_ssize_t size, i; struct line *line; PyObject *seq, *item; seq = PySequence_Fast(orig, "sequence expected"); if (seq == NULL) { return -1; } size = PySequence_Fast_GET_SIZE(seq); if (size == 0) { Py_DECREF(seq); return 0; } /* Allocate a memory block for line data, initialized to 0 */ line = *lines = (struct line *)calloc(size, sizeof(struct line)); if (line == NULL) { PyErr_NoMemory(); Py_DECREF(seq); return -1; } for (i = 0; i < size; i++) { item = PySequence_Fast_GET_ITEM(seq, i); Py_INCREF(item); line->data = item; line->hash = PyObject_Hash(item); if (line->hash == (-1)) { /* Propogate the hash exception */ size = -1; goto cleanup; } line->next = SENTINEL; line++; } cleanup: Py_DECREF(seq); if (size == -1) { /* Error -- cleanup unused object references */ delete_lines(*lines, i); *lines = NULL; } return size; } static PyObject * py_unique_lcs(PyObject *self, PyObject *args) { PyObject *aseq, *bseq, *res, *item; Py_ssize_t asize, bsize, i, nmatches, *backpointers = NULL; struct line *a = NULL, *b = NULL; struct matching_line *matches = NULL; struct hashtable hashtable; if (!PyArg_ParseTuple(args, "OO", &aseq, &bseq)) return NULL; hashtable.table = NULL; asize = load_lines(aseq, &a); bsize = load_lines(bseq, &b); if (asize == -1 || bsize == -1) goto error; if (!equate_lines(&hashtable, a, b, asize, bsize)) goto error; if (bsize > 0) { matches = (struct matching_line *)guarded_malloc(sizeof(struct matching_line) * bsize); if (matches == NULL) goto error; backpointers = (Py_ssize_t *)guarded_malloc(sizeof(Py_ssize_t) * bsize * 4); if (backpointers == NULL) goto error; } nmatches = unique_lcs(matches, &hashtable, backpointers, a, b, 0, 0, asize, bsize); res = PyList_New(nmatches); for (i = 0; i < nmatches; i++) { item = Py_BuildValue("nn", matches[nmatches - i - 1].a, matches[nmatches - i - 1].b); if (item == NULL) goto error; if (PyList_SetItem(res, i, item) != 0) goto error; } free(backpointers); free(matches); free(hashtable.table); delete_lines(b, bsize); delete_lines(a, asize); return res; error: free(backpointers); free(matches); free(hashtable.table); delete_lines(b, bsize); delete_lines(a, asize); return NULL; } static PyObject * py_recurse_matches(PyObject *self, PyObject *args) { PyObject *aseq, *bseq, *item, *answer; int maxrecursion, res; Py_ssize_t i, j, asize, bsize, alo, blo, ahi, bhi; Py_ssize_t *backpointers = NULL; struct line *a = NULL, *b = NULL; struct hashtable hashtable; struct matching_blocks matches; if (!PyArg_ParseTuple(args, "OOnnnnOi", &aseq, &bseq, &alo, &blo, &ahi, &bhi, &answer, &maxrecursion)) return NULL; hashtable.table = NULL; matches.matches = NULL; asize = load_lines(aseq, &a); bsize = load_lines(bseq, &b); if (asize == -1 || bsize == -1) goto error; if (!equate_lines(&hashtable, a, b, asize, bsize)) goto error; matches.count = 0; if (bsize > 0) { matches.matches = (struct matching_block *)guarded_malloc(sizeof(struct matching_block) * bsize); if (matches.matches == NULL) goto error; backpointers = (Py_ssize_t *)guarded_malloc(sizeof(Py_ssize_t) * bsize * 4); if (backpointers == NULL) goto error; } else { matches.matches = NULL; backpointers = NULL; } res = recurse_matches(&matches, &hashtable, backpointers, a, b, alo, blo, ahi, bhi, maxrecursion); if (!res) goto error; for (i = 0; i < matches.count; i++) { for (j = 0; j < matches.matches[i].len; j++) { item = Py_BuildValue("nn", matches.matches[i].a + j, matches.matches[i].b + j); if (item == NULL) goto error; if (PyList_Append(answer, item) != 0) goto error; } } free(backpointers); free(matches.matches); free(hashtable.table); delete_lines(b, bsize); delete_lines(a, asize); Py_RETURN_NONE; error: free(backpointers); free(matches.matches); free(hashtable.table); delete_lines(b, bsize); delete_lines(a, asize); return NULL; } static PyObject * PatienceSequenceMatcher_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { PyObject *junk, *a, *b; PatienceSequenceMatcher *self; self = (PatienceSequenceMatcher *)type->tp_alloc(type, 0); if (self != NULL) { if (!PyArg_ParseTuple(args, "OOO", &junk, &a, &b)) { Py_DECREF(self); return NULL; } self->asize = load_lines(a, &(self->a)); self->bsize = load_lines(b, &(self->b)); if (self->asize == -1 || self->bsize == -1) { Py_DECREF(self); return NULL; } if (!equate_lines(&self->hashtable, self->a, self->b, self->asize, self->bsize)) { Py_DECREF(self); return NULL; } if (self->bsize > 0) { self->backpointers = (Py_ssize_t *)guarded_malloc(sizeof(Py_ssize_t) * self->bsize * 4); if (self->backpointers == NULL) { Py_DECREF(self); PyErr_NoMemory(); return NULL; } } else { self->backpointers = NULL; } } return (PyObject *)self; } static void PatienceSequenceMatcher_dealloc(PatienceSequenceMatcher* self) { free(self->backpointers); free(self->hashtable.table); delete_lines(self->b, self->bsize); delete_lines(self->a, self->asize); self->ob_type->tp_free((PyObject *)self); } static char PatienceSequenceMatcher_get_matching_blocks_doc[] = "Return list of triples describing matching subsequences.\n" "\n" "Each triple is of the form (i, j, n), and means that\n" "a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in\n" "i and in j.\n" "\n" "The last triple is a dummy, (len(a), len(b), 0), and is the only\n" "triple with n==0.\n" "\n" ">>> s = PatienceSequenceMatcher(None, \"abxcd\", \"abcd\")\n" ">>> s.get_matching_blocks()\n" "[(0, 0, 2), (3, 2, 2), (5, 4, 0)]\n"; static PyObject * PatienceSequenceMatcher_get_matching_blocks(PatienceSequenceMatcher* self) { PyObject *answer, *item; int res; Py_ssize_t i; struct matching_blocks matches; matches.count = 0; if (self->bsize > 0) { matches.matches = (struct matching_block *) guarded_malloc(sizeof(struct matching_block) * self->bsize); if (matches.matches == NULL) return PyErr_NoMemory(); } else matches.matches = NULL; res = recurse_matches(&matches, &self->hashtable, self->backpointers, self->a, self->b, 0, 0, self->asize, self->bsize, 10); if (!res) { free(matches.matches); return PyErr_NoMemory(); } answer = PyList_New(matches.count + 1); if (answer == NULL) { free(matches.matches); return NULL; } for (i = 0; i < matches.count; i++) { item = Py_BuildValue("nnn", matches.matches[i].a, matches.matches[i].b, matches.matches[i].len); if (item == NULL) goto error; if (PyList_SetItem(answer, i, item) != 0) goto error; } item = Py_BuildValue("nnn", self->asize, self->bsize, 0); if (item == NULL) goto error; if (PyList_SetItem(answer, i, item) != 0) goto error; free(matches.matches); return answer; error: free(matches.matches); Py_DECREF(answer); return NULL; } static char PatienceSequenceMatcher_get_opcodes_doc[] = "Return list of 5-tuples describing how to turn a into b.\n" "\n" "Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple\n" "has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the\n" "tuple preceding it, and likewise for j1 == the previous j2.\n" "\n" "The tags are strings, with these meanings:\n" "\n" "'replace': a[i1:i2] should be replaced by b[j1:j2]\n" "'delete': a[i1:i2] should be deleted.\n" " Note that j1==j2 in this case.\n" "'insert': b[j1:j2] should be inserted at a[i1:i1].\n" " Note that i1==i2 in this case.\n" "'equal': a[i1:i2] == b[j1:j2]\n" "\n" ">>> a = \"qabxcd\"\n" ">>> b = \"abycdf\"\n" ">>> s = PatienceSequenceMatcher(None, a, b)\n" ">>> for tag, i1, i2, j1, j2 in s.get_opcodes():\n" "... print (\"%7s a[%d:%d] (%s) b[%d:%d] (%s)\" %\n" "... (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))\n" " delete a[0:1] (q) b[0:0] ()\n" " equal a[1:3] (ab) b[0:2] (ab)\n" "replace a[3:4] (x) b[2:3] (y)\n" " equal a[4:6] (cd) b[3:5] (cd)\n" " insert a[6:6] () b[5:6] (f)\n"; static PyObject * PatienceSequenceMatcher_get_opcodes(PatienceSequenceMatcher* self) { PyObject *answer, *item; Py_ssize_t i, j, k, ai, bj; int tag, res; struct matching_blocks matches; matches.count = 0; matches.matches = (struct matching_block *)guarded_malloc(sizeof(struct matching_block) * (self->bsize + 1)); if (matches.matches == NULL) return PyErr_NoMemory(); res = recurse_matches(&matches, &self->hashtable, self->backpointers, self->a, self->b, 0, 0, self->asize, self->bsize, 10); if (!res) { free(matches.matches); return PyErr_NoMemory(); } matches.matches[matches.count].a = self->asize; matches.matches[matches.count].b = self->bsize; matches.matches[matches.count].len = 0; matches.count++; answer = PyList_New(0); if (answer == NULL) { free(matches.matches); return NULL; } i = j = 0; for (k = 0; k < matches.count; k++) { ai = matches.matches[k].a; bj = matches.matches[k].b; tag = -1; if (i < ai && j < bj) tag = OP_REPLACE; else if (i < ai) tag = OP_DELETE; else if (j < bj) tag = OP_INSERT; if (tag != -1) { item = Py_BuildValue("snnnn", opcode_names[tag], i, ai, j, bj); if (item == NULL) goto error; if (PyList_Append(answer, item) != 0) goto error; } i = ai + matches.matches[k].len; j = bj + matches.matches[k].len; if (matches.matches[k].len > 0) { item = Py_BuildValue("snnnn", opcode_names[OP_EQUAL], ai, i, bj, j); if (item == NULL) goto error; if (PyList_Append(answer, item) != 0) goto error; } } free(matches.matches); return answer; error: free(matches.matches); Py_DECREF(answer); return NULL; } static char PatienceSequenceMatcher_get_grouped_opcodes_doc[] = "Isolate change clusters by eliminating ranges with no changes.\n" "\n" "Return a list of groups with upto n lines of context.\n" "Each group is in the same format as returned by get_opcodes().\n" "\n" ">>> from pprint import pprint\n" ">>> a = map(str, range(1,40))\n" ">>> b = a[:]\n" ">>> b[8:8] = ['i'] # Make an insertion\n" ">>> b[20] += 'x' # Make a replacement\n" ">>> b[23:28] = [] # Make a deletion\n" ">>> b[30] += 'y' # Make another replacement\n" ">>> pprint(PatienceSequenceMatcher(None,a,b).get_grouped_opcodes())\n" "[[('equal', 5, 8, 5, 8), ('insert', 8, 8, 8, 9), ('equal', 8, 11, 9, 12)],\n" " [('equal', 16, 19, 17, 20),\n" " ('replace', 19, 20, 20, 21),\n" " ('equal', 20, 22, 21, 23),\n" " ('delete', 22, 27, 23, 23),\n" " ('equal', 27, 30, 23, 26)],\n" " [('equal', 31, 34, 27, 30),\n" " ('replace', 34, 35, 30, 31),\n" " ('equal', 35, 38, 31, 34)]]\n"; static PyObject * PatienceSequenceMatcher_get_grouped_opcodes(PatienceSequenceMatcher* self, PyObject *args) { PyObject *answer, *group, *item; Py_ssize_t i, j, k, ai, bj, size, ncodes, tag; Py_ssize_t i1, i2, j1, j2; int n = 3, nn, res; struct matching_blocks matches; struct opcode *codes; if (!PyArg_ParseTuple(args, "|i", &n)) return NULL; matches.count = 0; matches.matches = (struct matching_block *)guarded_malloc(sizeof(struct matching_block) * (self->bsize + 1)); if (matches.matches == NULL) return PyErr_NoMemory(); res = recurse_matches(&matches, &self->hashtable, self->backpointers, self->a, self->b, 0, 0, self->asize, self->bsize, 10); if (!res) { free(matches.matches); return PyErr_NoMemory(); } matches.matches[matches.count].a = self->asize; matches.matches[matches.count].b = self->bsize; matches.matches[matches.count].len = 0; matches.count++; ncodes = 0; codes = (struct opcode *)guarded_malloc(sizeof(struct opcode) * matches.count * 2); if (codes == NULL) { free(matches.matches); return PyErr_NoMemory(); } i = j = 0; for (k = 0; k < matches.count; k++) { ai = matches.matches[k].a; bj = matches.matches[k].b; tag = -1; if (i < ai && j < bj) tag = OP_REPLACE; else if (i < ai) tag = OP_DELETE; else if (j < bj) tag = OP_INSERT; if (tag != -1) { codes[ncodes].tag = tag; codes[ncodes].i1 = i; codes[ncodes].i2 = ai; codes[ncodes].j1 = j; codes[ncodes].j2 = bj; ncodes++; } i = ai + matches.matches[k].len; j = bj + matches.matches[k].len; if (matches.matches[k].len > 0) { codes[ncodes].tag = OP_EQUAL; codes[ncodes].i1 = ai; codes[ncodes].i2 = i; codes[ncodes].j1 = bj; codes[ncodes].j2 = j; ncodes++; } } if (ncodes == 0) { codes[ncodes].tag = OP_EQUAL; codes[ncodes].i1 = 0; codes[ncodes].i2 = 1; codes[ncodes].j1 = 0; codes[ncodes].j2 = 1; ncodes++; } /* fixup leading and trailing groups if they show no changes. */ if (codes[0].tag == OP_EQUAL) { codes[0].i1 = MAX(codes[0].i1, codes[0].i2 - n); codes[0].j1 = MAX(codes[0].j1, codes[0].j2 - n); } if (codes[ncodes - 1].tag == OP_EQUAL) { codes[ncodes - 1].i2 = MIN(codes[ncodes - 1].i2, codes[ncodes - 1].i1 + n); codes[ncodes - 1].j2 = MIN(codes[ncodes - 1].j2, codes[ncodes - 1].j1 + n); } group = NULL; answer = PyList_New(0); if (answer == NULL) goto error; group = PyList_New(0); if (group == NULL) goto error; nn = n + n; tag = -1; for (i = 0; i < ncodes; i++) { tag = codes[i].tag; i1 = codes[i].i1; i2 = codes[i].i2; j1 = codes[i].j1; j2 = codes[i].j2; /* end the current group and start a new one whenever there is a large range with no changes. */ if (tag == OP_EQUAL && i2 - i1 > nn) { item = Py_BuildValue("snnnn", opcode_names[tag], i1, MIN(i2, i1 + n), j1, MIN(j2, j1 + n)); if (item == NULL) goto error; if (PyList_Append(group, item) != 0) goto error; if (PyList_Append(answer, group) != 0) goto error; group = PyList_New(0); if (group == NULL) goto error; i1 = MAX(i1, i2 - n); j1 = MAX(j1, j2 - n); } item = Py_BuildValue("snnnn", opcode_names[tag], i1, i2, j1 ,j2); if (item == NULL) goto error; if (PyList_Append(group, item) != 0) goto error; } size = PyList_Size(group); if (size > 0 && !(size == 1 && tag == OP_EQUAL)) { if (PyList_Append(answer, group) != 0) goto error; } else Py_DECREF(group); free(codes); free(matches.matches); return answer; error: free(codes); free(matches.matches); Py_DECREF(group); Py_DECREF(answer); return NULL; } static PyMethodDef PatienceSequenceMatcher_methods[] = { {"get_matching_blocks", (PyCFunction)PatienceSequenceMatcher_get_matching_blocks, METH_NOARGS, PatienceSequenceMatcher_get_matching_blocks_doc}, {"get_opcodes", (PyCFunction)PatienceSequenceMatcher_get_opcodes, METH_NOARGS, PatienceSequenceMatcher_get_opcodes_doc}, {"get_grouped_opcodes", (PyCFunction)PatienceSequenceMatcher_get_grouped_opcodes, METH_VARARGS, PatienceSequenceMatcher_get_grouped_opcodes_doc}, {NULL} }; static char PatienceSequenceMatcher_doc[] = "C implementation of PatienceSequenceMatcher"; static PyTypeObject PatienceSequenceMatcherType = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ "PatienceSequenceMatcher", /* tp_name */ sizeof(PatienceSequenceMatcher), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)PatienceSequenceMatcher_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags*/ PatienceSequenceMatcher_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ PatienceSequenceMatcher_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ PatienceSequenceMatcher_new, /* tp_new */ }; static PyMethodDef cpatiencediff_methods[] = { {"unique_lcs_c", py_unique_lcs, METH_VARARGS}, {"recurse_matches_c", py_recurse_matches, METH_VARARGS}, {NULL, NULL} }; PyMODINIT_FUNC init_patiencediff_c(void) { PyObject* m; if (PyType_Ready(&PatienceSequenceMatcherType) < 0) return; m = Py_InitModule3("_patiencediff_c", cpatiencediff_methods, "C implementation of PatienceSequenceMatcher"); if (m == NULL) return; Py_INCREF(&PatienceSequenceMatcherType); PyModule_AddObject(m, "PatienceSequenceMatcher_c", (PyObject *)&PatienceSequenceMatcherType); } /* vim: sw=4 et */ breezy-3.0.0~bzr6852/breezy/_patiencediff_py.py0000755000000000000000000002170613235603346017561 0ustar 00000000000000#!/usr/bin/env python # Copyright (C) 2005 Bram Cohen, Copyright (C) 2005, 2006 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA from __future__ import absolute_import from bisect import bisect import difflib from .trace import mutter __all__ = ['PatienceSequenceMatcher', 'unified_diff', 'unified_diff_files'] def unique_lcs_py(a, b): """Find the longest common subset for unique lines. :param a: An indexable object (such as string or list of strings) :param b: Another indexable object (such as string or list of strings) :return: A list of tuples, one for each line which is matched. [(line_in_a, line_in_b), ...] This only matches lines which are unique on both sides. This helps prevent common lines from over influencing match results. The longest common subset uses the Patience Sorting algorithm: http://en.wikipedia.org/wiki/Patience_sorting """ # set index[line in a] = position of line in a unless # a is a duplicate, in which case it's set to None index = {} for i, line in enumerate(a): if line in index: index[line] = None else: index[line]= i # make btoa[i] = position of line i in a, unless # that line doesn't occur exactly once in both, # in which case it's set to None btoa = [None] * len(b) index2 = {} for pos, line in enumerate(b): next = index.get(line) if next is not None: if line in index2: # unset the previous mapping, which we now know to # be invalid because the line isn't unique btoa[index2[line]] = None del index[line] else: index2[line] = pos btoa[pos] = next # this is the Patience sorting algorithm # see http://en.wikipedia.org/wiki/Patience_sorting backpointers = [None] * len(b) stacks = [] lasts = [] k = 0 for bpos, apos in enumerate(btoa): if apos is None: continue # as an optimization, check if the next line comes at the end, # because it usually does if stacks and stacks[-1] < apos: k = len(stacks) # as an optimization, check if the next line comes right after # the previous line, because usually it does elif stacks and stacks[k] < apos and (k == len(stacks) - 1 or stacks[k+1] > apos): k += 1 else: k = bisect(stacks, apos) if k > 0: backpointers[bpos] = lasts[k-1] if k < len(stacks): stacks[k] = apos lasts[k] = bpos else: stacks.append(apos) lasts.append(bpos) if len(lasts) == 0: return [] result = [] k = lasts[-1] while k is not None: result.append((btoa[k], k)) k = backpointers[k] result.reverse() return result def recurse_matches_py(a, b, alo, blo, ahi, bhi, answer, maxrecursion): """Find all of the matching text in the lines of a and b. :param a: A sequence :param b: Another sequence :param alo: The start location of a to check, typically 0 :param ahi: The start location of b to check, typically 0 :param ahi: The maximum length of a to check, typically len(a) :param bhi: The maximum length of b to check, typically len(b) :param answer: The return array. Will be filled with tuples indicating [(line_in_a, line_in_b)] :param maxrecursion: The maximum depth to recurse. Must be a positive integer. :return: None, the return value is in the parameter answer, which should be a list """ if maxrecursion < 0: mutter('max recursion depth reached') # this will never happen normally, this check is to prevent DOS attacks return oldlength = len(answer) if alo == ahi or blo == bhi: return last_a_pos = alo-1 last_b_pos = blo-1 for apos, bpos in unique_lcs_py(a[alo:ahi], b[blo:bhi]): # recurse between lines which are unique in each file and match apos += alo bpos += blo # Most of the time, you will have a sequence of similar entries if last_a_pos+1 != apos or last_b_pos+1 != bpos: recurse_matches_py(a, b, last_a_pos+1, last_b_pos+1, apos, bpos, answer, maxrecursion - 1) last_a_pos = apos last_b_pos = bpos answer.append((apos, bpos)) if len(answer) > oldlength: # find matches between the last match and the end recurse_matches_py(a, b, last_a_pos+1, last_b_pos+1, ahi, bhi, answer, maxrecursion - 1) elif a[alo] == b[blo]: # find matching lines at the very beginning while alo < ahi and blo < bhi and a[alo] == b[blo]: answer.append((alo, blo)) alo += 1 blo += 1 recurse_matches_py(a, b, alo, blo, ahi, bhi, answer, maxrecursion - 1) elif a[ahi - 1] == b[bhi - 1]: # find matching lines at the very end nahi = ahi - 1 nbhi = bhi - 1 while nahi > alo and nbhi > blo and a[nahi - 1] == b[nbhi - 1]: nahi -= 1 nbhi -= 1 recurse_matches_py(a, b, last_a_pos+1, last_b_pos+1, nahi, nbhi, answer, maxrecursion - 1) for i in range(ahi - nahi): answer.append((nahi + i, nbhi + i)) def _collapse_sequences(matches): """Find sequences of lines. Given a sequence of [(line_in_a, line_in_b),] find regions where they both increment at the same time """ answer = [] start_a = start_b = None length = 0 for i_a, i_b in matches: if (start_a is not None and (i_a == start_a + length) and (i_b == start_b + length)): length += 1 else: if start_a is not None: answer.append((start_a, start_b, length)) start_a = i_a start_b = i_b length = 1 if length != 0: answer.append((start_a, start_b, length)) return answer def _check_consistency(answer): # For consistency sake, make sure all matches are only increasing next_a = -1 next_b = -1 for (a, b, match_len) in answer: if a < next_a: raise ValueError('Non increasing matches for a') if b < next_b: raise ValueError('Non increasing matches for b') next_a = a + match_len next_b = b + match_len class PatienceSequenceMatcher_py(difflib.SequenceMatcher): """Compare a pair of sequences using longest common subset.""" _do_check_consistency = True def __init__(self, isjunk=None, a='', b=''): if isjunk is not None: raise NotImplementedError('Currently we do not support' ' isjunk for sequence matching') difflib.SequenceMatcher.__init__(self, isjunk, a, b) def get_matching_blocks(self): """Return list of triples describing matching subsequences. Each triple is of the form (i, j, n), and means that a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in i and in j. The last triple is a dummy, (len(a), len(b), 0), and is the only triple with n==0. >>> s = PatienceSequenceMatcher(None, "abxcd", "abcd") >>> s.get_matching_blocks() [(0, 0, 2), (3, 2, 2), (5, 4, 0)] """ # jam 20060525 This is the python 2.4.1 difflib get_matching_blocks # implementation which uses __helper. 2.4.3 got rid of helper for # doing it inline with a queue. # We should consider doing the same for recurse_matches if self.matching_blocks is not None: return self.matching_blocks matches = [] recurse_matches_py(self.a, self.b, 0, 0, len(self.a), len(self.b), matches, 10) # Matches now has individual line pairs of # line A matches line B, at the given offsets self.matching_blocks = _collapse_sequences(matches) self.matching_blocks.append( (len(self.a), len(self.b), 0) ) if PatienceSequenceMatcher_py._do_check_consistency: if __debug__: _check_consistency(self.matching_blocks) return self.matching_blocks breezy-3.0.0~bzr6852/breezy/_readdir_py.py0000644000000000000000000000301713235603346016542 0ustar 00000000000000# Copyright (C) 2006, 2008 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Python implementation of readdir interface.""" from __future__ import absolute_import import stat _directory = 'directory' _chardev = 'chardev' _block = 'block' _file = 'file' _fifo = 'fifo' _symlink = 'symlink' _socket = 'socket' _unknown = 'unknown' _formats = { stat.S_IFDIR: 'directory', stat.S_IFCHR: 'chardev', stat.S_IFBLK: 'block', stat.S_IFREG: 'file', stat.S_IFIFO: 'fifo', stat.S_IFLNK: 'symlink', stat.S_IFSOCK: 'socket', } def _kind_from_mode(stat_mode, _formats=_formats, _unknown='unknown'): """Generate a file kind from a stat mode. This is used in walkdirs. It's performance is critical: Do not mutate without careful benchmarking. """ try: return _formats[stat_mode & 0o170000] except KeyError: return _unknown breezy-3.0.0~bzr6852/breezy/_readdir_pyx.pyx0000644000000000000000000003006713235603346017127 0ustar 00000000000000# Copyright (C) 2006, 2008, 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Wrapper for readdir which returns files ordered by inode.""" from __future__ import absolute_import import os import sys cdef extern from "python-compat.h": pass cdef extern from 'errno.h': int ENOENT int ENOTDIR int EAGAIN int EINTR char *strerror(int errno) # not necessarily a real variable, but this should be close enough int errno cdef extern from 'unistd.h': int chdir(char *path) int close(int fd) int fchdir(int fd) char *getcwd(char *, int size) cdef extern from 'stdlib.h': void *malloc(int) void free(void *) cdef extern from 'sys/types.h': ctypedef long ssize_t ctypedef unsigned long size_t ctypedef long time_t ctypedef unsigned long ino_t ctypedef unsigned long long off_t ctypedef int mode_t cdef extern from 'sys/stat.h': cdef struct stat: int st_mode off_t st_size int st_dev ino_t st_ino int st_mtime int st_ctime int lstat(char *path, stat *buf) int S_ISDIR(int mode) int S_ISCHR(int mode) int S_ISBLK(int mode) int S_ISREG(int mode) int S_ISFIFO(int mode) int S_ISLNK(int mode) int S_ISSOCK(int mode) cdef extern from 'fcntl.h': int O_RDONLY int open(char *pathname, int flags, mode_t mode) cdef extern from 'Python.h': int PyErr_CheckSignals() except -1 char * PyString_AS_STRING(object) ctypedef struct PyObject: pass Py_ssize_t PyString_Size(object s) object PyList_GetItem(object lst, Py_ssize_t index) void *PyList_GetItem_object_void "PyList_GET_ITEM" (object lst, int index) int PyList_Append(object lst, object item) except -1 void *PyTuple_GetItem_void_void "PyTuple_GET_ITEM" (void* tpl, int index) int PyTuple_SetItem(void *, Py_ssize_t pos, object item) except -1 int PyTuple_SetItem_obj "PyTuple_SetItem" (void *, Py_ssize_t pos, PyObject * item) except -1 void Py_INCREF(object o) void Py_DECREF(object o) void PyString_Concat(PyObject **string, object newpart) cdef extern from 'dirent.h': ctypedef struct dirent: char d_name[256] ino_t d_ino # the opaque C library DIR type. ctypedef struct DIR # should be DIR *, pyrex barfs. DIR * opendir(char * name) int closedir(DIR * dir) dirent *readdir(DIR *dir) cdef object _directory _directory = 'directory' cdef object _chardev _chardev = 'chardev' cdef object _block _block = 'block' cdef object _file _file = 'file' cdef object _fifo _fifo = 'fifo' cdef object _symlink _symlink = 'symlink' cdef object _socket _socket = 'socket' cdef object _unknown _unknown = 'unknown' # add a typedef struct dirent dirent to workaround pyrex cdef extern from 'readdir.h': pass cdef class _Stat: """Represent a 'stat' result.""" cdef stat _st property st_dev: def __get__(self): return self._st.st_dev property st_ino: def __get__(self): return self._st.st_ino property st_mode: def __get__(self): return self._st.st_mode property st_ctime: def __get__(self): return self._st.st_ctime property st_mtime: def __get__(self): return self._st.st_mtime property st_size: def __get__(self): return self._st.st_size def __repr__(self): """Repr is the same as a Stat object. (mode, ino, dev, nlink, uid, gid, size, None(atime), mtime, ctime) """ return repr((self.st_mode, 0, 0, 0, 0, 0, self.st_size, None, self.st_mtime, self.st_ctime)) from . import osutils cdef object _safe_utf8 _safe_utf8 = osutils.safe_utf8 cdef class UTF8DirReader: """A dir reader for utf8 file systems.""" def kind_from_mode(self, int mode): """Get the kind of a path from a mode status.""" return self._kind_from_mode(mode) cdef _kind_from_mode(self, int mode): # Files and directories are the most common - check them first. if S_ISREG(mode): return _file if S_ISDIR(mode): return _directory if S_ISCHR(mode): return _chardev if S_ISBLK(mode): return _block if S_ISLNK(mode): return _symlink if S_ISFIFO(mode): return _fifo if S_ISSOCK(mode): return _socket return _unknown def top_prefix_to_starting_dir(self, top, prefix=""): """See DirReader.top_prefix_to_starting_dir.""" return (_safe_utf8(prefix), None, None, None, _safe_utf8(top)) def read_dir(self, prefix, top): """Read a single directory from a utf8 file system. All paths in and out are utf8. This sub-function is called when we know the filesystem is already in utf8 encoding. So we don't need to transcode filenames. See DirReader.read_dir for details. """ #cdef char *_prefix = prefix #cdef char *_top = top # Use C accelerated directory listing. cdef object newval cdef int index cdef int length cdef void * atuple cdef object name cdef PyObject * new_val_obj if PyString_Size(prefix): relprefix = prefix + '/' else: relprefix = '' top_slash = top + '/' # read_dir supplies in should-stat order. # for _, name in sorted(_listdir(top)): result = _read_dir(top) length = len(result) # result.sort() for index from 0 <= index < length: atuple = PyList_GetItem_object_void(result, index) name = PyTuple_GetItem_void_void(atuple, 1) # We have a tuple with (inode, name, None, statvalue, None) # Now edit it: # inode -> path_from_top # direct concat - faster than operator +. new_val_obj = relprefix Py_INCREF(relprefix) PyString_Concat(&new_val_obj, name) if NULL == new_val_obj: # PyString_Concat will have setup an exception, but how to get # at it? raise Exception("failed to strcat") PyTuple_SetItem_obj(atuple, 0, new_val_obj) # 1st None -> kind newval = self._kind_from_mode( (<_Stat>PyTuple_GetItem_void_void(atuple, 3)).st_mode) Py_INCREF(newval) PyTuple_SetItem(atuple, 2, newval) # 2nd None -> abspath # for all - the caller may need to stat files # etc. # direct concat - faster than operator +. new_val_obj = top_slash Py_INCREF(top_slash) PyString_Concat(&new_val_obj, name) if NULL == new_val_obj: # PyString_Concat will have setup an exception, but how to get # at it? raise Exception("failed to strcat") PyTuple_SetItem_obj(atuple, 4, new_val_obj) return result cdef raise_os_error(int errnum, char *msg_prefix, path): if errnum == EINTR: PyErr_CheckSignals() raise OSError(errnum, msg_prefix + strerror(errnum), path) cdef _read_dir(path): """Like os.listdir, this reads the contents of a directory. :param path: the directory to list. :return: a list of single-owner (the list) tuples ready for editing into the result tuples walkdirs needs to yield. They contain (inode, name, None, statvalue, None). """ cdef DIR *the_dir # currently this needs a fixup - the C code says 'dirent' but should say # 'struct dirent' cdef dirent * entry cdef dirent sentinel cdef char *name cdef int stat_result cdef _Stat statvalue global errno cdef int orig_dir_fd # Avoid chdir('') because it causes problems on Sun OS, and avoid this if # staying in . if path != "" and path != '.': # we change into the requested directory before reading, and back at the # end, because that turns out to make the stat calls measurably faster than # passing full paths every time. orig_dir_fd = open(".", O_RDONLY, 0) if orig_dir_fd == -1: raise_os_error(errno, "open: ", ".") if -1 == chdir(path): # Ignore the return value, because we are already raising an # exception close(orig_dir_fd) raise_os_error(errno, "chdir: ", path) else: orig_dir_fd = -1 try: the_dir = opendir(".") if NULL == the_dir: raise_os_error(errno, "opendir: ", path) try: result = [] entry = &sentinel while entry != NULL: # Unlike most libc functions, readdir needs errno set to 0 # beforehand so that eof can be distinguished from errors. See # while True: errno = 0 entry = readdir(the_dir) if entry == NULL and (errno == EAGAIN or errno == EINTR): if errno == EINTR: PyErr_CheckSignals() # try again continue else: break if entry == NULL: if errno == ENOTDIR or errno == 0: # We see ENOTDIR at the end of a normal directory. # As ENOTDIR for read_dir(file) is triggered on opendir, # we consider ENOTDIR to be 'no error'. continue else: raise_os_error(errno, "readdir: ", path) name = entry.d_name if not (name[0] == c"." and ( (name[1] == 0) or (name[1] == c"." and name[2] == 0)) ): statvalue = _Stat() stat_result = lstat(entry.d_name, &statvalue._st) if stat_result != 0: if errno != ENOENT: raise_os_error(errno, "lstat: ", path + "/" + entry.d_name) else: # the file seems to have disappeared after being # seen by readdir - perhaps a transient temporary # file. there's no point returning it. continue # We append a 5-tuple that can be modified in-place by the C # api: # inode to sort on (to replace with top_path) # name (to keep) # kind (None, to set) # statvalue (to keep) # abspath (None, to set) PyList_Append(result, (entry.d_ino, entry.d_name, None, statvalue, None)) finally: if -1 == closedir(the_dir): raise_os_error(errno, "closedir: ", path) finally: if -1 != orig_dir_fd: failed = False if -1 == fchdir(orig_dir_fd): # try to close the original directory anyhow failed = True if -1 == close(orig_dir_fd) or failed: raise_os_error(errno, "return to orig_dir: ", "") return result # vim: tw=79 ai expandtab sw=4 sts=4 breezy-3.0.0~bzr6852/breezy/_rio_py.py0000644000000000000000000000523313235603346015723 0ustar 00000000000000# Copyright (C) 2009 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Python implementation of _read_stanza_*.""" from __future__ import absolute_import import re from .rio import ( Stanza, ) _tag_re = re.compile(r'^[-a-zA-Z0-9_]+$') def _valid_tag(tag): if not isinstance(tag, str): raise TypeError(tag) return bool(_tag_re.match(tag)) def _read_stanza_utf8(line_iter): def iter_unicode_lines(): for line in line_iter: if not isinstance(line, bytes): raise TypeError(line) yield line.decode('utf-8') return _read_stanza_unicode(iter_unicode_lines()) def _read_stanza_unicode(unicode_iter): stanza = Stanza() tag = None accum_value = None # TODO: jam 20060922 This code should raise real errors rather than # using 'assert' to process user input, or raising ValueError # rather than a more specific error. for line in unicode_iter: if line is None or line == u'': break # end of file if line == u'\n': break # end of stanza real_l = line if line[0] == u'\t': # continues previous value if tag is None: raise ValueError('invalid continuation line %r' % real_l) accum_value.append(u'\n' + line[1:-1]) else: # new tag:value line if tag is not None: stanza.add(tag, u''.join(accum_value)) try: colon_index = line.index(u': ') except ValueError: raise ValueError('tag/value separator not found in line %r' % real_l) tag = str(line[:colon_index]) if not _valid_tag(tag): raise ValueError("invalid rio tag %r" % (tag,)) accum_value = [line[colon_index+2:-1]] if tag is not None: # add last tag-value stanza.add(tag, u''.join(accum_value)) return stanza else: # didn't see any content return None breezy-3.0.0~bzr6852/breezy/_rio_pyx.pyx0000644000000000000000000002074613235603346016311 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Pyrex implementation of _read_stanza_*.""" from __future__ import absolute_import cdef extern from "python-compat.h": pass from cpython.bytes cimport ( PyBytes_CheckExact, PyBytes_FromStringAndSize, PyBytes_AS_STRING, PyBytes_GET_SIZE, ) from cpython.unicode cimport ( PyUnicode_CheckExact, PyUnicode_DecodeUTF8, # Deprecated after PEP 393 changes PyUnicode_AS_UNICODE, PyUnicode_FromUnicode, PyUnicode_GET_SIZE, ) from cpython.list cimport ( PyList_Append, ) from cpython.mem cimport ( PyMem_Free, PyMem_Malloc, PyMem_Realloc, ) from cpython.version cimport ( PY_MAJOR_VERSION, ) cdef extern from "Python.h": ctypedef int Py_UNICODE object PyUnicode_EncodeASCII(Py_UNICODE *, int, char *) int Py_UNICODE_ISLINEBREAK(Py_UNICODE) # GZ 2017-09-11: Not sure why cython unicode module lacks this? object PyUnicode_FromStringAndSize(const char *u, Py_ssize_t size) # Python 3.3 or later unicode handling char* PyUnicode_AsUTF8AndSize(object unicode, Py_ssize_t *size) from libc.string cimport ( memcpy, ) from .rio import Stanza cdef int _valid_tag_char(char c): # cannot_raise return (c == c'_' or c == c'-' or (c >= c'a' and c <= c'z') or (c >= c'A' and c <= c'Z') or (c >= c'0' and c <= c'9')) def _valid_tag(tag): cdef char *c_tag cdef Py_ssize_t c_len cdef int i # GZ 2017-09-11: Encapsulate native string as ascii tag somewhere neater if PY_MAJOR_VERSION >= 3: if not PyUnicode_CheckExact(tag): raise TypeError(tag) c_tag = PyUnicode_AsUTF8AndSize(tag, &c_len) else: if not PyBytes_CheckExact(tag): raise TypeError(tag) c_tag = PyBytes_AS_STRING(tag) c_len = PyBytes_GET_SIZE(tag) if c_len < 1: return False for i from 0 <= i < c_len: if not _valid_tag_char(c_tag[i]): return False return True cdef object _split_first_line_utf8(char *line, int len, char *value, Py_ssize_t *value_len): cdef int i for i from 0 <= i < len: if line[i] == c':': if line[i+1] != c' ': raise ValueError("invalid tag in line %r" % line) memcpy(value, line+i+2, len-i-2) value_len[0] = len-i-2 if PY_MAJOR_VERSION >= 3: return PyUnicode_FromStringAndSize(line, i) return PyBytes_FromStringAndSize(line, i) raise ValueError('tag/value separator not found in line %r' % line) cdef object _split_first_line_unicode(Py_UNICODE *line, int len, Py_UNICODE *value, Py_ssize_t *value_len): cdef int i for i from 0 <= i < len: if line[i] == c':': if line[i+1] != c' ': raise ValueError("invalid tag in line %r" % PyUnicode_FromUnicode(line, len)) memcpy(value, &line[i+2], (len-i-2) * sizeof(Py_UNICODE)) value_len[0] = len-i-2 if PY_MAJOR_VERSION >= 3: return PyUnicode_FromUnicode(line, i) return PyUnicode_EncodeASCII(line, i, "strict") raise ValueError("tag/value separator not found in line %r" % PyUnicode_FromUnicode(line, len)) def _read_stanza_utf8(line_iter): cdef char *c_line cdef Py_ssize_t c_len cdef char *accum_value, *new_accum_value cdef Py_ssize_t accum_len, accum_size pairs = [] tag = None accum_len = 0 accum_size = 4096 accum_value = PyMem_Malloc(accum_size) if accum_value == NULL: raise MemoryError try: for line in line_iter: if line is None: break # end of file if not PyBytes_CheckExact(line): raise TypeError("%r is not a plain string" % line) c_line = PyBytes_AS_STRING(line) c_len = PyBytes_GET_SIZE(line) if c_len < 1: break # end of file if c_len == 1 and c_line[0] == c"\n": break # end of stanza if accum_len + c_len > accum_size: accum_size = (accum_len + c_len) new_accum_value = PyMem_Realloc(accum_value, accum_size) if new_accum_value == NULL: raise MemoryError else: accum_value = new_accum_value if c_line[0] == c'\t': # continues previous value if tag is None: raise ValueError('invalid continuation line %r' % line) memcpy(accum_value+accum_len, c_line+1, c_len-1) accum_len = accum_len + c_len-1 else: # new tag:value line if tag is not None: PyList_Append(pairs, (tag, PyUnicode_DecodeUTF8(accum_value, accum_len-1, "strict"))) tag = _split_first_line_utf8(c_line, c_len, accum_value, &accum_len) if not _valid_tag(tag): raise ValueError("invalid rio tag %r" % (tag,)) if tag is not None: # add last tag-value PyList_Append(pairs, (tag, PyUnicode_DecodeUTF8(accum_value, accum_len-1, "strict"))) return Stanza.from_pairs(pairs) else: # didn't see any content return None finally: PyMem_Free(accum_value) def _read_stanza_unicode(unicode_iter): cdef Py_UNICODE *c_line cdef int c_len cdef Py_UNICODE *accum_value, *new_accum_value cdef Py_ssize_t accum_len, accum_size pairs = [] tag = None accum_len = 0 accum_size = 4096 accum_value = PyMem_Malloc(accum_size*sizeof(Py_UNICODE)) if accum_value == NULL: raise MemoryError try: for line in unicode_iter: if line is None: break # end of file if not PyUnicode_CheckExact(line): raise TypeError("%r is not a unicode string" % line) c_line = PyUnicode_AS_UNICODE(line) c_len = PyUnicode_GET_SIZE(line) if c_len < 1: break # end of file if Py_UNICODE_ISLINEBREAK(c_line[0]): break # end of stanza if accum_len + c_len > accum_size: accum_size = accum_len + c_len new_accum_value = PyMem_Realloc(accum_value, accum_size*sizeof(Py_UNICODE)) if new_accum_value == NULL: raise MemoryError else: accum_value = new_accum_value if c_line[0] == c'\t': # continues previous value, if tag is None: raise ValueError('invalid continuation line %r' % line) memcpy(&accum_value[accum_len], &c_line[1], (c_len-1)*sizeof(Py_UNICODE)) accum_len = accum_len + (c_len-1) else: # new tag:value line if tag is not None: PyList_Append(pairs, (tag, PyUnicode_FromUnicode(accum_value, accum_len-1))) tag = _split_first_line_unicode(c_line, c_len, accum_value, &accum_len) if not _valid_tag(tag): raise ValueError("invalid rio tag %r" % (tag,)) if tag is not None: # add last tag-value PyList_Append(pairs, (tag, PyUnicode_FromUnicode(accum_value, accum_len-1))) return Stanza.from_pairs(pairs) else: # didn't see any content return None finally: PyMem_Free(accum_value) breezy-3.0.0~bzr6852/breezy/_simple_set_pyx.pxd0000644000000000000000000001043213235603346017626 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Interface definition of a class like PySet but without caching the hash. This is generally useful when you want to 'intern' objects, etc. Note that this differs from Set in that we: 1) Don't have all of the .intersection, .difference, etc functions 2) Do return the object from the set via queries eg. SimpleSet.add(key) => saved_key and SimpleSet[key] => saved_key """ from cpython.object cimport PyObject cdef public api class SimpleSet [object SimpleSetObject, type SimpleSet_Type]: """A class similar to PySet, but with simpler implementation. The main advantage is that this class uses only 2N memory to store N objects rather than 4N memory. The main trade-off is that we do not cache the hash value of saved objects. As such, it is assumed that computing the hash will be cheap (such as strings or tuples of strings, etc.) This also differs in that you can get back the objects that are stored (like a dict), but we also don't implement the complete list of 'set' operations (difference, intersection, etc). """ # Data structure definition: # This is a basic hash table using open addressing. # http://en.wikipedia.org/wiki/Open_addressing # Basically that means we keep an array of pointers to Python objects # (called a table). Each location in the array is called a 'slot'. # # An empty slot holds a NULL pointer, a slot where there was an item # which was then deleted will hold a pointer to _dummy, and a filled slot # points at the actual object which fills that slot. # # The table is always a power of two, and the default location where an # object is inserted is at hash(object) & (table_size - 1) # # If there is a collision, then we search for another location. The # specific algorithm is in _lookup. We search until we: # find the object # find an equivalent object (by tp_richcompare(obj1, obj2, Py_EQ)) # find a NULL slot # # When an object is deleted, we set its slot to _dummy. this way we don't # have to track whether there was a collision, and find the corresponding # keys. (The collision resolution algorithm makes that nearly impossible # anyway, because it depends on the upper bits of the hash.) # The main effect of this, is that if we find _dummy, then we can insert # an object there, but we have to keep searching until we find NULL to # know that the object is not present elsewhere. cdef Py_ssize_t _used # active cdef Py_ssize_t _fill # active + dummy cdef Py_ssize_t _mask # Table contains (mask+1) slots, a power of 2 cdef PyObject **_table # Pyrex/Cython doesn't support arrays to 'object' # so we manage it manually cdef PyObject *_get(self, object key) except? NULL cpdef object add(self, key) cpdef bint discard(self, key) except -1 cdef int _insert_clean(self, PyObject *key) except -1 cdef Py_ssize_t _resize(self, Py_ssize_t min_unused) except -1 # TODO: might want to export the C api here, though it is all available from # the class object... cdef api SimpleSet SimpleSet_New() cdef api object SimpleSet_Add(object self, object key) cdef api int SimpleSet_Contains(object self, object key) except -1 cdef api int SimpleSet_Discard(object self, object key) except -1 cdef api PyObject *SimpleSet_Get(SimpleSet self, object key) except? NULL cdef api Py_ssize_t SimpleSet_Size(object self) except -1 cdef api int SimpleSet_Next(object self, Py_ssize_t *pos, PyObject **key) except -1 breezy-3.0.0~bzr6852/breezy/_simple_set_pyx.pyx0000644000000000000000000004767013235603346017671 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Definition of a class that is similar to Set with some small changes.""" from __future__ import absolute_import from cpython.object cimport ( hashfunc, Py_EQ, PyObject_Hash, PyTypeObject, Py_TYPE, richcmpfunc, traverseproc, visitproc, ) from cpython.mem cimport ( PyMem_Malloc, PyMem_Free, ) from cpython.ref cimport ( Py_INCREF, Py_DECREF, ) from libc.string cimport memset # Dummy is an object used to mark nodes that have been deleted. Since # collisions require us to move a node to an alternative location, if we just # set an entry to NULL on delete, we won't find any relocated nodes. # We have to use _dummy_obj because we need to keep a refcount to it, but we # also use _dummy as a pointer, because it avoids having to put all # over the code base. cdef object _dummy_obj cdef PyObject *_dummy _dummy_obj = object() _dummy = _dummy_obj cdef object _NotImplemented _NotImplemented = NotImplemented cdef int _is_equal(object this, long this_hash, object other) except -1: cdef long other_hash other_hash = PyObject_Hash(other) if other_hash != this_hash: return 0 # This implements a subset of the PyObject_RichCompareBool functionality. # Namely it: # 1) Doesn't try to do anything with old-style classes # 2) Assumes that both objects have a tp_richcompare implementation, and # that if that is not enough to compare equal, then they are not # equal. (It doesn't try to cast them both to some intermediate form # that would compare equal.) res = Py_TYPE(this).tp_richcompare(this, other, Py_EQ) if res is _NotImplemented: res = Py_TYPE(other).tp_richcompare(other, this, Py_EQ) if res is _NotImplemented: return 0 if res: return 1 return 0 cdef public api class SimpleSet [object SimpleSetObject, type SimpleSet_Type]: """This class can be used to track canonical forms for objects. It is similar in function to the interned dictionary that is used by strings. However: 1) It assumes that hash(obj) is cheap, so does not need to inline a copy of it 2) It only stores one reference to the object, rather than 2 (key vs key:value) As such, it uses 1/3rd the amount of memory to store a pointer to the interned object. """ # Attributes are defined in the .pxd file DEF DEFAULT_SIZE=1024 def __init__(self): cdef Py_ssize_t size, n_bytes size = DEFAULT_SIZE self._mask = size - 1 self._used = 0 self._fill = 0 n_bytes = sizeof(PyObject*) * size; self._table = PyMem_Malloc(n_bytes) if self._table == NULL: raise MemoryError() memset(self._table, 0, n_bytes) def __sizeof__(self): # Note: Pyrex doesn't allow sizeof(class) so we re-implement it here. # Bits are: # 1: PyObject # 2: vtable * # 3: 3 Py_ssize_t # 4: PyObject** # Note that we might get alignment, etc, wrong, but at least this is # better than no estimate at all # return sizeof(SimpleSet) + (self._mask + 1) * (sizeof(PyObject*)) return (sizeof(PyObject) + sizeof(void*) + 3*sizeof(Py_ssize_t) + sizeof(PyObject**) + (self._mask + 1) * sizeof(PyObject*)) def __dealloc__(self): if self._table != NULL: PyMem_Free(self._table) self._table = NULL property used: def __get__(self): return self._used property fill: def __get__(self): return self._fill property mask: def __get__(self): return self._mask def _memory_size(self): """Return the number of bytes of memory consumed by this class.""" return sizeof(self) + (sizeof(PyObject*)*(self._mask + 1)) def __len__(self): return self._used def _test_lookup(self, key): cdef PyObject **slot slot = _lookup(self, key) if slot[0] == NULL: res = '' elif slot[0] == _dummy: res = '' else: res = slot[0] return (slot - self._table), res def __contains__(self, key): """Is key present in this SimpleSet.""" cdef PyObject **slot slot = _lookup(self, key) if slot[0] == NULL or slot[0] == _dummy: return False return True cdef PyObject *_get(self, object key) except? NULL: """Return the object (or nothing) define at the given location.""" cdef PyObject **slot slot = _lookup(self, key) if slot[0] == NULL or slot[0] == _dummy: return NULL return slot[0] def __getitem__(self, key): """Return a stored item that is equivalent to key.""" cdef PyObject *py_val py_val = self._get(key) if py_val == NULL: raise KeyError("Key %s is not present" % key) val = (py_val) return val cdef int _insert_clean(self, PyObject *key) except -1: """Insert a key into self.table. This is only meant to be used during times like '_resize', as it makes a lot of assuptions about keys not already being present, and there being no dummy entries. """ cdef size_t i, n_lookup cdef long the_hash cdef PyObject **table cdef PyObject **slot cdef Py_ssize_t mask mask = self._mask table = self._table the_hash = PyObject_Hash(key) i = the_hash for n_lookup from 0 <= n_lookup <= mask: # Don't loop forever slot = &table[i & mask] if slot[0] == NULL: slot[0] = key self._fill = self._fill + 1 self._used = self._used + 1 return 1 i = i + 1 + n_lookup raise RuntimeError('ran out of slots.') def _py_resize(self, min_used): """Do not use this directly, it is only exposed for testing.""" return self._resize(min_used) cdef Py_ssize_t _resize(self, Py_ssize_t min_used) except -1: """Resize the internal table. The final table will be big enough to hold at least min_used entries. We will copy the data from the existing table over, leaving out dummy entries. :return: The new size of the internal table """ cdef Py_ssize_t new_size, n_bytes, remaining cdef PyObject **new_table cdef PyObject **old_table cdef PyObject **slot new_size = DEFAULT_SIZE while new_size <= min_used and new_size > 0: new_size = new_size << 1 # We rolled over our signed size field if new_size <= 0: raise MemoryError() # Even if min_used == self._mask + 1, and we aren't changing the actual # size, we will still run the algorithm so that dummy entries are # removed # TODO: Test this # if new_size < self._used: # raise RuntimeError('cannot shrink SimpleSet to something' # ' smaller than the number of used slots.') n_bytes = sizeof(PyObject*) * new_size; new_table = PyMem_Malloc(n_bytes) if new_table == NULL: raise MemoryError() old_table = self._table self._table = new_table memset(self._table, 0, n_bytes) self._mask = new_size - 1 self._used = 0 remaining = self._fill self._fill = 0 # Moving everything to the other table is refcount neutral, so we don't # worry about it. slot = old_table while remaining > 0: if slot[0] == NULL: # unused slot pass elif slot[0] == _dummy: # dummy slot remaining = remaining - 1 else: # active slot remaining = remaining - 1 self._insert_clean(slot[0]) slot = slot + 1 PyMem_Free(old_table) return new_size cpdef object add(self, key): """Similar to set.add(), start tracking this key. There is one small difference, which is that we return the object that is stored at the given location. (which is closer to the dict.setdefault() functionality.) """ cdef PyObject **slot cdef bint added if (Py_TYPE(key).tp_richcompare == NULL or Py_TYPE(key).tp_hash == NULL): raise TypeError('Types added to SimpleSet must implement' ' both tp_richcompare and tp_hash') added = 0 # We need at least one empty slot assert self._used < self._mask slot = _lookup(self, key) if (slot[0] == NULL): Py_INCREF(key) self._fill = self._fill + 1 self._used = self._used + 1 slot[0] = key added = 1 elif (slot[0] == _dummy): Py_INCREF(key) self._used = self._used + 1 slot[0] = key added = 1 # No else: clause. If _lookup returns a pointer to # a live object, then we already have a value at this location. retval = (slot[0]) # PySet and PyDict use a 2-3rds full algorithm, we'll follow suit if added and (self._fill * 3) >= ((self._mask + 1) * 2): # However, we always work for a load factor of 2:1 self._resize(self._used * 2) # Even if we resized and ended up moving retval into a different slot, # it is still the value that is held at the slot equivalent to 'key', # so we can still return it return retval cpdef bint discard(self, key) except -1: """Remove key from the set, whether it exists or not. :return: False if the item did not exist, True if it did """ cdef PyObject **slot slot = _lookup(self, key) if slot[0] == NULL or slot[0] == _dummy: return 0 self._used = self._used - 1 Py_DECREF(slot[0]) slot[0] = _dummy # PySet uses the heuristic: If more than 1/5 are dummies, then resize # them away # if ((so->_fill - so->_used) * 5 < so->mask) # However, we are planning on using this as an interning structure, in # which we will be putting a lot of objects. And we expect that large # groups of them are going to have the same lifetime. # Dummy entries hurt a little bit because they cause the lookup to keep # searching, but resizing is also rather expensive # For now, we'll just use their algorithm, but we may want to revisit # it if ((self._fill - self._used) * 5 > self._mask): self._resize(self._used * 2) return 1 def __iter__(self): return _SimpleSet_iterator(self) cdef class _SimpleSet_iterator: """Iterator over the SimpleSet structure.""" cdef Py_ssize_t pos cdef SimpleSet set cdef Py_ssize_t _used # track if things have been mutated while iterating cdef Py_ssize_t len # number of entries left def __init__(self, obj): self.set = obj self.pos = 0 self._used = self.set._used self.len = self.set._used def __iter__(self): return self def __next__(self): cdef Py_ssize_t mask, i cdef PyObject *key if self.set is None: raise StopIteration if self.set._used != self._used: # Force this exception to continue to be raised self._used = -1 raise RuntimeError("Set size changed during iteration") if not SimpleSet_Next(self.set, &self.pos, &key): self.set = None raise StopIteration # we found something the_key = key # INCREF self.len = self.len - 1 return the_key def __length_hint__(self): if self.set is not None and self._used == self.set._used: return self.len return 0 cdef api SimpleSet SimpleSet_New(): """Create a new SimpleSet object.""" return SimpleSet() cdef SimpleSet _check_self(object self): """Check that the parameter is not None. Pyrex/Cython will do type checking, but only to ensure that an object is either the right type or None. You can say "object foo not None" for pure python functions, but not for C functions. So this is just a helper for all the apis that need to do the check. """ cdef SimpleSet true_self if self is None: raise TypeError('self must not be None') true_self = self return true_self cdef PyObject **_lookup(SimpleSet self, object key) except NULL: """Find the slot where 'key' would fit. This is the same as a dicts 'lookup' function. :param key: An object we are looking up :param hash: The hash for key :return: The location in self.table where key should be put. location == NULL is an exception, but (*location) == NULL just indicates the slot is empty and can be used. """ # This uses Quadratic Probing: # http://en.wikipedia.org/wiki/Quadratic_probing # with c1 = c2 = 1/2 # This leads to probe locations at: # h0 = hash(k1) # h1 = h0 + 1 # h2 = h0 + 3 = h1 + 1 + 1 # h3 = h0 + 6 = h2 + 1 + 2 # h4 = h0 + 10 = h2 + 1 + 3 # Note that all of these are '& mask', but that is computed *after* the # offset. # This differs from the algorithm used by Set and Dict. Which, effectively, # use double-hashing, and a step size that starts large, but dwindles to # stepping one-by-one. # This gives more 'locality' in that if you have a collision at offset X, # the first fallback is X+1, which is fast to check. However, that means # that an object w/ hash X+1 will also check there, and then X+2 next. # However, for objects with differing hashes, their chains are different. # The former checks X, X+1, X+3, ... the latter checks X+1, X+2, X+4, ... # So different hashes diverge quickly. # A bigger problem is that we *only* ever use the lowest bits of the hash # So all integers (x + SIZE*N) will resolve into the same bucket, and all # use the same collision resolution. We may want to try to find a way to # incorporate the upper bits of the hash with quadratic probing. (For # example, X, X+1, X+3+some_upper_bits, X+6+more_upper_bits, etc.) cdef size_t i, n_lookup cdef Py_ssize_t mask cdef long key_hash cdef PyObject **table cdef PyObject **slot cdef PyObject *cur cdef PyObject **free_slot key_hash = PyObject_Hash(key) i = key_hash mask = self._mask table = self._table free_slot = NULL for n_lookup from 0 <= n_lookup <= mask: # Don't loop forever slot = &table[i & mask] cur = slot[0] if cur == NULL: # Found a blank spot if free_slot != NULL: # Did we find an earlier _dummy entry? return free_slot else: return slot if cur == key: # Found an exact pointer to the key return slot if cur == _dummy: if free_slot == NULL: free_slot = slot elif _is_equal(key, key_hash, cur): # Both py_key and cur belong in this slot, return it return slot i = i + 1 + n_lookup raise AssertionError('should never get here') cdef api PyObject **_SimpleSet_Lookup(object self, object key) except NULL: """Find the slot where 'key' would fit. This is the same as a dicts 'lookup' function. This is a private api because mutating what you get without maintaing the other invariants is a 'bad thing'. :param key: An object we are looking up :param hash: The hash for key :return: The location in self._table where key should be put should never be NULL, but may reference a NULL (PyObject*) """ return _lookup(_check_self(self), key) cdef api object SimpleSet_Add(object self, object key): """Add a key to the SimpleSet (set). :param self: The SimpleSet to add the key to. :param key: The key to be added. If the key is already present, self will not be modified :return: The current key stored at the location defined by 'key'. This may be the same object, or it may be an equivalent object. (consider dict.setdefault(key, key)) """ return _check_self(self).add(key) cdef api int SimpleSet_Contains(object self, object key) except -1: """Is key present in self?""" return (key in _check_self(self)) cdef api int SimpleSet_Discard(object self, object key) except -1: """Remove the object referenced at location 'key'. :param self: The SimpleSet being modified :param key: The key we are checking on :return: 1 if there was an object present, 0 if there was not, and -1 on error. """ return _check_self(self).discard(key) cdef api PyObject *SimpleSet_Get(SimpleSet self, object key) except? NULL: """Get a pointer to the object present at location 'key'. This returns an object which is equal to key which was previously added to self. This returns a borrowed reference, as it may also return NULL if no value is present at that location. :param key: The value we are looking for :return: The object present at that location """ return _check_self(self)._get(key) cdef api Py_ssize_t SimpleSet_Size(object self) except -1: """Get the number of active entries in 'self'""" return _check_self(self)._used cdef api int SimpleSet_Next(object self, Py_ssize_t *pos, PyObject **key) except -1: """Walk over items in a SimpleSet. :param pos: should be initialized to 0 by the caller, and will be updated by this function :param key: Will return a borrowed reference to key :return: 0 if nothing left, 1 if we are returning a new value """ cdef Py_ssize_t i, mask cdef SimpleSet true_self cdef PyObject **table true_self = _check_self(self) i = pos[0] if (i < 0): return 0 mask = true_self._mask table= true_self._table while (i <= mask and (table[i] == NULL or table[i] == _dummy)): i = i + 1 pos[0] = i + 1 if (i > mask): return 0 # All done if (key != NULL): key[0] = table[i] return 1 cdef int SimpleSet_traverse(SimpleSet self, visitproc visit, void *arg) except -1: """This is an implementation of 'tp_traverse' that hits the whole table. Cython/Pyrex don't seem to let you define a tp_traverse, and they only define one for you if you have an 'object' attribute. Since they don't support C arrays of objects, we access the PyObject * directly. """ cdef Py_ssize_t pos cdef PyObject *next_key cdef int ret pos = 0 while SimpleSet_Next(self, &pos, &next_key): ret = visit(next_key, arg) if ret: return ret return 0 # It is a little bit ugly to do this, but it works, and means that Meliae can # dump the total memory consumed by all child objects. (SimpleSet).tp_traverse = SimpleSet_traverse breezy-3.0.0~bzr6852/breezy/_static_tuple_c.c0000644000000000000000000007220313235603346017217 0ustar 00000000000000/* Copyright (C) 2009, 2010 Canonical Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* Must be defined before importing _static_tuple_c.h so that we get the right * linkage. */ #define STATIC_TUPLE_MODULE #include #include "python-compat.h" #include "_static_tuple_c.h" #include "_export_c_api.h" #include "_simple_set_pyx_api.h" #if defined(__GNUC__) # define inline __inline__ #elif defined(_MSC_VER) # define inline __inline #else # define inline #endif /* The one and only StaticTuple with no values */ static StaticTuple *_empty_tuple = NULL; static PyObject *_interned_tuples = NULL; static inline int _StaticTuple_is_interned(StaticTuple *self) { return self->flags & STATIC_TUPLE_INTERNED_FLAG; } static PyObject * StaticTuple_as_tuple(StaticTuple *self) { PyObject *tpl = NULL, *obj = NULL; int i, len; len = self->size; tpl = PyTuple_New(len); if (!tpl) { /* Malloc failure */ return NULL; } for (i = 0; i < len; ++i) { obj = (PyObject *)self->items[i]; Py_INCREF(obj); PyTuple_SET_ITEM(tpl, i, obj); } return tpl; } static char StaticTuple_as_tuple_doc[] = "as_tuple() => tuple"; static StaticTuple * StaticTuple_Intern(StaticTuple *self) { PyObject *canonical_tuple = NULL; if (_interned_tuples == NULL || _StaticTuple_is_interned(self)) { Py_INCREF(self); return self; } /* SimpleSet_Add returns whatever object is present at self * or the new object if it needs to add it. */ canonical_tuple = SimpleSet_Add(_interned_tuples, (PyObject *)self); if (!canonical_tuple) { // Some sort of exception, propogate it. return NULL; } if (canonical_tuple != (PyObject *)self) { // There was already a tuple with that value return (StaticTuple *)canonical_tuple; } self->flags |= STATIC_TUPLE_INTERNED_FLAG; // The two references in the dict do not count, so that the StaticTuple // object does not become immortal just because it was interned. Py_REFCNT(self) -= 1; return self; } static char StaticTuple_Intern_doc[] = "intern() => unique StaticTuple\n" "Return a 'canonical' StaticTuple object.\n" "Similar to intern() for strings, this makes sure there\n" "is only one StaticTuple object for a given value\n." "Common usage is:\n" " key = StaticTuple('foo', 'bar').intern()\n"; static void StaticTuple_dealloc(StaticTuple *self) { int i, len; if (_StaticTuple_is_interned(self)) { /* revive dead object temporarily for Discard */ Py_REFCNT(self) = 2; if (SimpleSet_Discard(_interned_tuples, (PyObject*)self) != 1) Py_FatalError("deletion of interned StaticTuple failed"); self->flags &= ~STATIC_TUPLE_INTERNED_FLAG; } len = self->size; for (i = 0; i < len; ++i) { Py_XDECREF(self->items[i]); } Py_TYPE(self)->tp_free((PyObject *)self); } /* Similar to PyTuple_New() */ static StaticTuple * StaticTuple_New(Py_ssize_t size) { StaticTuple *stuple; if (size < 0 || size > 255) { /* Too big or too small */ PyErr_SetString(PyExc_ValueError, "StaticTuple(...)" " takes from 0 to 255 items"); return NULL; } if (size == 0 && _empty_tuple != NULL) { Py_INCREF(_empty_tuple); return _empty_tuple; } /* Note that we use PyObject_NewVar because we want to allocate a variable * width entry. However we *aren't* truly a PyVarObject because we don't * use a long for ob_size. Instead we use a plain 'size' that is an int, * and will be overloaded with flags in the future. * As such we do the alloc, and then have to clean up anything it does * incorrectly. */ stuple = PyObject_NewVar(StaticTuple, &StaticTuple_Type, size); if (stuple == NULL) { return NULL; } stuple->size = size; stuple->flags = 0; stuple->_unused0 = 0; stuple->_unused1 = 0; if (size > 0) { memset(stuple->items, 0, sizeof(PyObject *) * size); } #if STATIC_TUPLE_HAS_HASH stuple->hash = -1; #endif return stuple; } static StaticTuple * StaticTuple_FromSequence(PyObject *sequence) { StaticTuple *new = NULL; PyObject *as_tuple = NULL; PyObject *item; Py_ssize_t i, size; if (StaticTuple_CheckExact(sequence)) { Py_INCREF(sequence); return (StaticTuple *)sequence; } if (!PySequence_Check(sequence)) { as_tuple = PySequence_Tuple(sequence); if (as_tuple == NULL) goto done; sequence = as_tuple; } size = PySequence_Size(sequence); if (size == -1) { goto done; } new = StaticTuple_New(size); if (new == NULL) { goto done; } for (i = 0; i < size; ++i) { // This returns a new reference, which we then 'steal' with // StaticTuple_SET_ITEM item = PySequence_GetItem(sequence, i); if (item == NULL) { Py_DECREF(new); new = NULL; goto done; } StaticTuple_SET_ITEM(new, i, item); } done: Py_XDECREF(as_tuple); return (StaticTuple *)new; } static StaticTuple * StaticTuple_from_sequence(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *sequence; if (!PyArg_ParseTuple(args, "O", &sequence)) return NULL; return StaticTuple_FromSequence(sequence); } /* Check that all items we point to are 'valid' */ static int StaticTuple_check_items(StaticTuple *self) { int i; PyObject *obj; for (i = 0; i < self->size; ++i) { obj = self->items[i]; if (obj == NULL) { PyErr_SetString(PyExc_RuntimeError, "StaticTuple(...)" " should not have a NULL entry."); return 0; } if (PyBytes_CheckExact(obj) || StaticTuple_CheckExact(obj) || obj == Py_None || PyBool_Check(obj) #if PY_MAJOR_VERSION >= 3 #else || PyInt_CheckExact(obj) #endif || PyLong_CheckExact(obj) || PyFloat_CheckExact(obj) || PyUnicode_CheckExact(obj) ) continue; PyErr_Format(PyExc_TypeError, "StaticTuple(...)" " requires that all items are one of" " str, StaticTuple, None, bool, int, long, float, or unicode" " not %s.", Py_TYPE(obj)->tp_name); return 0; } return 1; } static PyObject * StaticTuple_new_constructor(PyTypeObject *type, PyObject *args, PyObject *kwds) { StaticTuple *self; PyObject *obj = NULL; Py_ssize_t i, len = 0; if (type != &StaticTuple_Type) { PyErr_SetString(PyExc_TypeError, "we only support creating StaticTuple"); return NULL; } if (!PyTuple_CheckExact(args)) { PyErr_SetString(PyExc_TypeError, "args must be a tuple"); return NULL; } len = PyTuple_GET_SIZE(args); if (len < 0 || len > 255) { /* Check the length here so we can raise a TypeError instead of * StaticTuple_New's ValueError. */ PyErr_SetString(PyExc_TypeError, "StaticTuple(...)" " takes from 0 to 255 items"); return NULL; } self = (StaticTuple *)StaticTuple_New(len); if (self == NULL) { return NULL; } for (i = 0; i < len; ++i) { obj = PyTuple_GET_ITEM(args, i); Py_INCREF(obj); self->items[i] = obj; } if (!StaticTuple_check_items(self)) { type->tp_dealloc((PyObject *)self); return NULL; } return (PyObject *)self; } static PyObject * StaticTuple_repr(StaticTuple *self) { PyObject *as_tuple, *tuple_repr, *result; as_tuple = StaticTuple_as_tuple(self); if (as_tuple == NULL) { return NULL; } tuple_repr = PyObject_Repr(as_tuple); Py_DECREF(as_tuple); if (tuple_repr == NULL) { return NULL; } #if PY_MAJOR_VERSION >= 3 result = PyUnicode_FromFormat("StaticTuple%U", tuple_repr); #else result = PyString_FromFormat("StaticTuple%s", PyString_AsString(tuple_repr)); #endif return result; } static long StaticTuple_hash(StaticTuple *self) { /* adapted from tuplehash(), is the specific hash value considered * 'stable'? */ register long x, y; Py_ssize_t len = self->size; PyObject **p; long mult = 1000003L; #if STATIC_TUPLE_HAS_HASH if (self->hash != -1) { return self->hash; } #endif x = 0x345678L; p = self->items; // TODO: We could set specific flags if we know that, for example, all the // items are strings. I haven't seen a real-world benefit to that // yet, though. while (--len >= 0) { y = PyObject_Hash(*p++); if (y == -1) /* failure */ return -1; x = (x ^ y) * mult; /* the cast might truncate len; that doesn't change hash stability */ mult += (long)(82520L + len + len); } x += 97531L; if (x == -1) x = -2; #if STATIC_TUPLE_HAS_HASH self->hash = x; #endif return x; } static PyObject * StaticTuple_richcompare_to_tuple(StaticTuple *v, PyObject *wt, int op) { PyObject *vt; PyObject *result = NULL; vt = StaticTuple_as_tuple((StaticTuple *)v); if (vt == NULL) { goto done; } if (!PyTuple_Check(wt)) { PyErr_BadInternalCall(); goto done; } /* Now we have 2 tuples to compare, do it */ result = PyTuple_Type.tp_richcompare(vt, wt, op); done: Py_XDECREF(vt); return result; } /** Compare two objects to determine if they are equivalent. * The basic flow is as follows * 1) First make sure that both objects are StaticTuple instances. If they * aren't then cast self to a tuple, and have the tuple do the comparison. * 2) Special case comparison to Py_None, because it happens to occur fairly * often in the test suite. * 3) Special case when v and w are the same pointer. As we know the answer to * all queries without walking individual items. * 4) For all operations, we then walk the items to find the first paired * items that are not equal. * 5) If all items found are equal, we then check the length of self and * other to determine equality. * 6) If an item differs, then we apply "op" to those last two items. (eg. * StaticTuple(A, B) > StaticTuple(A, C) iff B > C) */ static PyObject * StaticTuple_richcompare(PyObject *v, PyObject *w, int op) { StaticTuple *v_st, *w_st; Py_ssize_t vlen, wlen, min_len, i; PyObject *v_obj, *w_obj; richcmpfunc string_richcompare; if (!StaticTuple_CheckExact(v)) { /* This has never triggered, according to python-dev it seems this * might trigger if '__op__' is defined but '__rop__' is not, sort of * case. Such as "None == StaticTuple()" */ fprintf(stderr, "self is not StaticTuple\n"); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } v_st = (StaticTuple *)v; if (StaticTuple_CheckExact(w)) { /* The most common case */ w_st = (StaticTuple*)w; } else if (PyTuple_Check(w)) { /* One of v or w is a tuple, so we go the 'slow' route and cast up to * tuples to compare. */ /* TODO: This seems to be triggering more than I thought it would... * We probably want to optimize comparing self to other when * other is a tuple. */ return StaticTuple_richcompare_to_tuple(v_st, w, op); } else if (w == Py_None) { // None is always less than the object switch (op) { case Py_NE: #if PY_MAJOR_VERSION >= 3 #else case Py_GT:case Py_GE: #endif Py_INCREF(Py_True); return Py_True; case Py_EQ: #if PY_MAJOR_VERSION >= 3 #else case Py_LT:case Py_LE: #endif Py_INCREF(Py_False); return Py_False; default: // Should only happen on Python 3 return Py_NotImplemented; } } else { /* We don't special case this comparison, we just let python handle * it. */ Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } /* Now we know that we have 2 StaticTuple objects, so let's compare them. * This code is inspired from tuplerichcompare, except we know our * objects are limited in scope, so we can inline some comparisons. */ if (v == w) { /* Identical pointers, we can shortcut this easily. */ switch (op) { case Py_EQ:case Py_LE:case Py_GE: Py_INCREF(Py_True); return Py_True; case Py_NE:case Py_LT:case Py_GT: Py_INCREF(Py_False); return Py_False; } } if (op == Py_EQ && _StaticTuple_is_interned(v_st) && _StaticTuple_is_interned(w_st)) { /* If both objects are interned, we know they are different if the * pointer is not the same, which would have been handled by the * previous if. No need to compare the entries. */ Py_INCREF(Py_False); return Py_False; } /* The only time we are likely to compare items of different lengths is in * something like the interned_keys set. However, the hash is good enough * that it is rare. Note that 'tuple_richcompare' also does not compare * lengths here. */ vlen = v_st->size; wlen = w_st->size; min_len = (vlen < wlen) ? vlen : wlen; string_richcompare = PyBytes_Type.tp_richcompare; for (i = 0; i < min_len; i++) { PyObject *result = NULL; v_obj = StaticTuple_GET_ITEM(v_st, i); w_obj = StaticTuple_GET_ITEM(w_st, i); if (v_obj == w_obj) { /* Shortcut case, these must be identical */ continue; } if (PyBytes_CheckExact(v_obj) && PyBytes_CheckExact(w_obj)) { result = string_richcompare(v_obj, w_obj, Py_EQ); } else if (StaticTuple_CheckExact(v_obj) && StaticTuple_CheckExact(w_obj)) { /* Both are StaticTuple types, so recurse */ result = StaticTuple_richcompare(v_obj, w_obj, Py_EQ); } else { /* Fall back to generic richcompare */ result = PyObject_RichCompare(v_obj, w_obj, Py_EQ); } if (result == NULL) { return NULL; /* There seems to be an error */ } if (result == Py_False) { // This entry is not identical, Shortcut for Py_EQ if (op == Py_EQ) { return result; } Py_DECREF(result); break; } if (result != Py_True) { /* We don't know *what* richcompare is returning, but it * isn't something we recognize */ PyErr_BadInternalCall(); Py_DECREF(result); return NULL; } Py_DECREF(result); } if (i >= min_len) { /* We walked off one of the lists, but everything compared equal so * far. Just compare the size. */ int cmp; PyObject *res; switch (op) { case Py_LT: cmp = vlen < wlen; break; case Py_LE: cmp = vlen <= wlen; break; case Py_EQ: cmp = vlen == wlen; break; case Py_NE: cmp = vlen != wlen; break; case Py_GT: cmp = vlen > wlen; break; case Py_GE: cmp = vlen >= wlen; break; default: return NULL; /* cannot happen */ } if (cmp) res = Py_True; else res = Py_False; Py_INCREF(res); return res; } /* The last item differs, shortcut the Py_NE case */ if (op == Py_NE) { Py_INCREF(Py_True); return Py_True; } /* It is some other comparison, go ahead and do the real check. */ if (PyBytes_CheckExact(v_obj) && PyBytes_CheckExact(w_obj)) { return string_richcompare(v_obj, w_obj, op); } else if (StaticTuple_CheckExact(v_obj) && StaticTuple_CheckExact(w_obj)) { /* Both are StaticTuple types, so recurse */ return StaticTuple_richcompare(v_obj, w_obj, op); } else { return PyObject_RichCompare(v_obj, w_obj, op); } } static Py_ssize_t StaticTuple_length(StaticTuple *self) { return self->size; } static PyObject * StaticTuple__is_interned(StaticTuple *self) { if (_StaticTuple_is_interned(self)) { Py_INCREF(Py_True); return Py_True; } Py_INCREF(Py_False); return Py_False; } static char StaticTuple__is_interned_doc[] = "_is_interned() => True/False\n" "Check to see if this tuple has been interned.\n"; static PyObject * StaticTuple_reduce(StaticTuple *self) { PyObject *result = NULL, *as_tuple = NULL; result = PyTuple_New(2); if (!result) { return NULL; } as_tuple = StaticTuple_as_tuple(self); if (as_tuple == NULL) { Py_DECREF(result); return NULL; } Py_INCREF(&StaticTuple_Type); PyTuple_SET_ITEM(result, 0, (PyObject *)&StaticTuple_Type); PyTuple_SET_ITEM(result, 1, as_tuple); return result; } static char StaticTuple_reduce_doc[] = "__reduce__() => tuple\n"; static PyObject * StaticTuple_add(PyObject *v, PyObject *w) { Py_ssize_t i, len_v, len_w; PyObject *item; StaticTuple *result; /* StaticTuples and plain tuples may be added (concatenated) to * StaticTuples. */ if (StaticTuple_CheckExact(v)) { len_v = ((StaticTuple*)v)->size; } else if (PyTuple_Check(v)) { len_v = PyTuple_GET_SIZE(v); } else { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } if (StaticTuple_CheckExact(w)) { len_w = ((StaticTuple*)w)->size; } else if (PyTuple_Check(w)) { len_w = PyTuple_GET_SIZE(w); } else { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = StaticTuple_New(len_v + len_w); if (result == NULL) return NULL; for (i = 0; i < len_v; ++i) { // This returns a new reference, which we then 'steal' with // StaticTuple_SET_ITEM item = PySequence_GetItem(v, i); if (item == NULL) { Py_DECREF(result); return NULL; } StaticTuple_SET_ITEM(result, i, item); } for (i = 0; i < len_w; ++i) { item = PySequence_GetItem(w, i); if (item == NULL) { Py_DECREF(result); return NULL; } StaticTuple_SET_ITEM(result, i+len_v, item); } if (!StaticTuple_check_items(result)) { Py_DECREF(result); return NULL; } return (PyObject *)result; } static PyObject * StaticTuple_item(StaticTuple *self, Py_ssize_t offset) { PyObject *obj; /* We cast to (int) to avoid worrying about whether Py_ssize_t is a * long long, etc. offsets should never be >2**31 anyway. */ if (offset < 0) { PyErr_Format(PyExc_IndexError, "StaticTuple_item does not support" " negative indices: %d\n", (int)offset); } else if (offset >= self->size) { PyErr_Format(PyExc_IndexError, "StaticTuple index out of range" " %d >= %d", (int)offset, (int)self->size); return NULL; } obj = (PyObject *)self->items[offset]; Py_INCREF(obj); return obj; } #if PY_MAJOR_VERSION >= 3 #else static PyObject * StaticTuple_slice(StaticTuple *self, Py_ssize_t ilow, Py_ssize_t ihigh) { PyObject *as_tuple, *result; as_tuple = StaticTuple_as_tuple(self); if (as_tuple == NULL) { return NULL; } result = PyTuple_Type.tp_as_sequence->sq_slice(as_tuple, ilow, ihigh); Py_DECREF(as_tuple); return result; } #endif static PyObject * StaticTuple_subscript(StaticTuple *self, PyObject *key) { PyObject *as_tuple, *result; as_tuple = StaticTuple_as_tuple(self); if (as_tuple == NULL) { return NULL; } result = PyTuple_Type.tp_as_mapping->mp_subscript(as_tuple, key); Py_DECREF(as_tuple); return result; } static int StaticTuple_traverse(StaticTuple *self, visitproc visit, void *arg) { Py_ssize_t i; for (i = self->size; --i >= 0;) { Py_VISIT(self->items[i]); } return 0; } static PyObject * StaticTuple_sizeof(StaticTuple *self) { Py_ssize_t res; res = _PyObject_SIZE(&StaticTuple_Type) + (int)self->size * sizeof(void*); return PyInt_FromSsize_t(res); } static char StaticTuple_doc[] = "C implementation of a StaticTuple structure." "\n This is used as StaticTuple(item1, item2, item3)" "\n This is similar to tuple, less flexible in what it" "\n supports, but also lighter memory consumption." "\n Note that the constructor mimics the () form of tuples" "\n Rather than the 'tuple()' constructor." "\n eg. StaticTuple(a, b) == (a, b) == tuple((a, b))"; static PyMethodDef StaticTuple_methods[] = { {"as_tuple", (PyCFunction)StaticTuple_as_tuple, METH_NOARGS, StaticTuple_as_tuple_doc}, {"intern", (PyCFunction)StaticTuple_Intern, METH_NOARGS, StaticTuple_Intern_doc}, {"_is_interned", (PyCFunction)StaticTuple__is_interned, METH_NOARGS, StaticTuple__is_interned_doc}, {"from_sequence", (PyCFunction)StaticTuple_from_sequence, METH_STATIC | METH_VARARGS, "Create a StaticTuple from a given sequence. This functions" " the same as the tuple() constructor."}, {"__reduce__", (PyCFunction)StaticTuple_reduce, METH_NOARGS, StaticTuple_reduce_doc}, {"__sizeof__", (PyCFunction)StaticTuple_sizeof, METH_NOARGS}, {NULL, NULL} /* sentinel */ }; static PyNumberMethods StaticTuple_as_number = { (binaryfunc) StaticTuple_add, /* nb_add */ 0, /* nb_subtract */ 0, /* nb_multiply */ 0, /* nb_divide */ 0, /* nb_remainder */ 0, /* nb_divmod */ 0, /* nb_power */ 0, /* nb_negative */ 0, /* nb_positive */ 0, /* nb_absolute */ 0, /* nb_nonzero */ 0, /* nb_invert */ 0, /* nb_lshift */ 0, /* nb_rshift */ 0, /* nb_and */ 0, /* nb_xor */ 0, /* nb_or */ 0, /* nb_coerce */ }; static PySequenceMethods StaticTuple_as_sequence = { (lenfunc)StaticTuple_length, /* sq_length */ 0, /* sq_concat */ 0, /* sq_repeat */ (ssizeargfunc)StaticTuple_item, /* sq_item */ #if PY_MAJOR_VERSION >= 3 #else (ssizessizeargfunc)StaticTuple_slice, /* sq_slice */ #endif 0, /* sq_ass_item */ 0, /* sq_ass_slice */ 0, /* sq_contains */ #if PY_MAJOR_VERSION >= 3 0, /* sq_inplace_concat */ 0, /* sq_inplace_repeat */ #endif }; static PyMappingMethods StaticTuple_as_mapping = { (lenfunc)StaticTuple_length, /* mp_length */ (binaryfunc)StaticTuple_subscript, /* mp_subscript */ 0, /* mp_ass_subscript */ }; PyTypeObject StaticTuple_Type = { PyVarObject_HEAD_INIT(NULL, 0) "breezy._static_tuple_c.StaticTuple", /* tp_name */ sizeof(StaticTuple), /* tp_basicsize */ sizeof(PyObject *), /* tp_itemsize */ (destructor)StaticTuple_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ (reprfunc)StaticTuple_repr, /* tp_repr */ &StaticTuple_as_number, /* tp_as_number */ &StaticTuple_as_sequence, /* tp_as_sequence */ &StaticTuple_as_mapping, /* tp_as_mapping */ (hashfunc)StaticTuple_hash, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ /* Py_TPFLAGS_CHECKTYPES tells the number operations that they shouldn't * try to 'coerce' but instead stuff like 'add' will check it arguments. */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_CHECKTYPES, /* tp_flags*/ StaticTuple_doc, /* tp_doc */ /* gc.get_referents checks the IS_GC flag before it calls tp_traverse * And we don't include this object in the garbage collector because we * know it doesn't create cycles. However, 'meliae' will follow * tp_traverse, even if the object isn't GC, and we want that. */ (traverseproc)StaticTuple_traverse, /* tp_traverse */ 0, /* tp_clear */ StaticTuple_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ // without implementing tp_iter, Python will fall back to PySequence* // which seems to work ok, we may need something faster/lighter in the // future. 0, /* tp_iter */ 0, /* tp_iternext */ StaticTuple_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ StaticTuple_new_constructor, /* tp_new */ }; static PyMethodDef static_tuple_c_methods[] = { {NULL, NULL} }; static void setup_interned_tuples(PyObject *m) { _interned_tuples = (PyObject *)SimpleSet_New(); if (_interned_tuples != NULL) { Py_INCREF(_interned_tuples); PyModule_AddObject(m, "_interned_tuples", _interned_tuples); } } static void setup_empty_tuple(PyObject *m) { StaticTuple *stuple; if (_interned_tuples == NULL) { fprintf(stderr, "You need to call setup_interned_tuples() before" " setup_empty_tuple, because we intern it.\n"); } // We need to create the empty tuple stuple = (StaticTuple *)StaticTuple_New(0); _empty_tuple = StaticTuple_Intern(stuple); assert(_empty_tuple == stuple); // At this point, refcnt is 2: 1 from New(), and 1 from the return from // intern(). We will keep 1 for the _empty_tuple global, and use the other // for the module reference. PyModule_AddObject(m, "_empty_tuple", (PyObject *)_empty_tuple); } static int _StaticTuple_CheckExact(PyObject *obj) { return StaticTuple_CheckExact(obj); } static void setup_c_api(PyObject *m) { _export_function(m, "StaticTuple_New", StaticTuple_New, "StaticTuple *(Py_ssize_t)"); _export_function(m, "StaticTuple_Intern", StaticTuple_Intern, "StaticTuple *(StaticTuple *)"); _export_function(m, "StaticTuple_FromSequence", StaticTuple_FromSequence, "StaticTuple *(PyObject *)"); _export_function(m, "_StaticTuple_CheckExact", _StaticTuple_CheckExact, "int(PyObject *)"); } PYMOD_INIT_FUNC(_static_tuple_c) { PyObject* m; StaticTuple_Type.tp_getattro = PyObject_GenericGetAttr; if (PyType_Ready(&StaticTuple_Type) < 0) { return PYMOD_ERROR; } PYMOD_CREATE(m, "_static_tuple_c", "C implementation of a StaticTuple structure", static_tuple_c_methods); if (m == NULL) { return PYMOD_ERROR; } Py_INCREF(&StaticTuple_Type); PyModule_AddObject(m, "StaticTuple", (PyObject *)&StaticTuple_Type); if (import_breezy___simple_set_pyx() == -1) { return PYMOD_ERROR; } setup_interned_tuples(m); setup_empty_tuple(m); setup_c_api(m); return PYMOD_SUCCESS(m); } // vim: tabstop=4 sw=4 expandtab breezy-3.0.0~bzr6852/breezy/_static_tuple_c.h0000644000000000000000000001015613235603346017223 0ustar 00000000000000/* Copyright (C) 2009, 2010 Canonical Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _STATIC_TUPLE_H_ #define _STATIC_TUPLE_H_ #include #include #define STATIC_TUPLE_HAS_HASH 0 /* Caching the hash adds memory, but allows us to save a little time during * lookups. TIMEIT hash(key) shows it as * 0.108usec w/ hash * 0.160usec w/o hash * Note that the entries themselves are strings, which already cache their * hashes. So while there is a 1.5:1 difference in the time for hash(), it is * already a function which is quite fast. Probably the only reason we might * want to do so, is if we customized SimpleSet to the point that the item * pointers were exactly certain types, and then accessed table[i]->hash * directly. So far StaticTuple_hash() is fast enough to not warrant the memory * difference. */ /* This defines a single variable-width key. * It is basically the same as a tuple, but * 1) Lighter weight in memory * 2) Only supports strings or other static types (that don't reference other * objects.) */ #define STATIC_TUPLE_INTERNED_FLAG 0x01 typedef struct { PyObject_HEAD // We could go with unsigned short here, and support 64k width tuples // without any memory impact, might be worthwhile unsigned char size; unsigned char flags; unsigned char _unused0; unsigned char _unused1; // Note that on 64-bit, we actually have 4-more unused bytes // because items will always be aligned to a 64-bit boundary #if STATIC_TUPLE_HAS_HASH long hash; #endif PyObject *items[0]; } StaticTuple; extern PyTypeObject StaticTuple_Type; typedef struct { PyObject_VAR_HEAD PyObject *table[0]; } KeyIntern; #define StaticTuple_SET_ITEM(key, offset, val) \ ((((StaticTuple*)(key))->items[(offset)]) = ((PyObject *)(val))) #define StaticTuple_GET_ITEM(key, offset) (((StaticTuple*)key)->items[offset]) #define StaticTuple_GET_SIZE(key) (((StaticTuple*)key)->size) #ifdef STATIC_TUPLE_MODULE /* Used when compiling _static_tuple_c.c */ static StaticTuple * StaticTuple_New(Py_ssize_t); static StaticTuple * StaticTuple_Intern(StaticTuple *self); static StaticTuple * StaticTuple_FromSequence(PyObject *); #define StaticTuple_CheckExact(op) (Py_TYPE(op) == &StaticTuple_Type) #else /* Used as the foreign api */ #include "_import_c_api.h" static StaticTuple *(*StaticTuple_New)(Py_ssize_t); static StaticTuple *(*StaticTuple_Intern)(StaticTuple *); static StaticTuple *(*StaticTuple_FromSequence)(PyObject *); static PyTypeObject *_p_StaticTuple_Type; #define StaticTuple_CheckExact(op) (Py_TYPE(op) == _p_StaticTuple_Type) static int (*_StaticTuple_CheckExact)(PyObject *); /* Return -1 and set exception on error, 0 on success */ static int import_static_tuple_c(void) { struct function_description functions[] = { {"StaticTuple_New", (void **)&StaticTuple_New, "StaticTuple *(Py_ssize_t)"}, {"StaticTuple_Intern", (void **)&StaticTuple_Intern, "StaticTuple *(StaticTuple *)"}, {"StaticTuple_FromSequence", (void **)&StaticTuple_FromSequence, "StaticTuple *(PyObject *)"}, {"_StaticTuple_CheckExact", (void **)&_StaticTuple_CheckExact, "int(PyObject *)"}, {NULL}}; struct type_description types[] = { {"StaticTuple", &_p_StaticTuple_Type}, {NULL}}; return _import_extension_module("breezy._static_tuple_c", functions, types); } #endif // !STATIC_TUPLE_MODULE #endif // !_STATIC_TUPLE_H_ breezy-3.0.0~bzr6852/breezy/_static_tuple_c.pxd0000644000000000000000000000366313235603346017574 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """The interface definition file for the StaticTuple class.""" cdef extern from "Python.h": ctypedef struct PyObject: pass cdef extern from "_static_tuple_c.h": ctypedef class breezy._static_tuple_c.StaticTuple [object StaticTuple]: cdef unsigned char size cdef unsigned char flags cdef PyObject *items[0] # Must be called before using any of the C api, as it sets the function # pointers in memory. int import_static_tuple_c() except -1 StaticTuple StaticTuple_New(Py_ssize_t) StaticTuple StaticTuple_Intern(StaticTuple) StaticTuple StaticTuple_FromSequence(object) # Steals a reference and val must be a valid type, no checking is done void StaticTuple_SET_ITEM(StaticTuple key, Py_ssize_t offset, object val) # We would normally use PyObject * here. However it seems that cython/pyrex # treat the PyObject defined in this header as something different than one # defined in a .pyx file. And since we don't INCREF, we need a raw pointer, # not an 'object' return value. void *StaticTuple_GET_ITEM(StaticTuple key, Py_ssize_t offset) int StaticTuple_CheckExact(object) Py_ssize_t StaticTuple_GET_SIZE(StaticTuple key) breezy-3.0.0~bzr6852/breezy/_static_tuple_py.py0000644000000000000000000000550613235603346017635 0ustar 00000000000000# Copyright (C) 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """The pure-python implementation of the StaticTuple type. Note that it is generally just implemented as using tuples of tuples of strings. """ from __future__ import absolute_import import sys class StaticTuple(tuple): """A static type, similar to a tuple of strings.""" __slots__ = () def __new__(cls, *args): # Make the empty StaticTuple a singleton if not args and _empty_tuple is not None: return _empty_tuple return tuple.__new__(cls, args) def __init__(self, *args): """Create a new 'StaticTuple'""" num_keys = len(args) if num_keys < 0 or num_keys > 255: raise TypeError('StaticTuple(...) takes from 0 to 255 items') for bit in args: if type(bit) not in _valid_types: raise TypeError('StaticTuple can only point to' ' StaticTuple, str, unicode, int, float, bool, or' ' None not %s' % (type(bit),)) # We don't need to pass args to tuple.__init__, because that was # already handled in __new__. tuple.__init__(self) def __repr__(self): return '%s%s' % (self.__class__.__name__, tuple.__repr__(self)) def __reduce__(self): return (StaticTuple, tuple(self)) def __add__(self, other): """Concatenate self with other""" return StaticTuple.from_sequence(tuple.__add__(self, other)) def as_tuple(self): return tuple(self) def intern(self): return _interned_tuples.setdefault(self, self) @staticmethod def from_sequence(seq): """Convert a sequence object into a StaticTuple instance.""" if isinstance(seq, StaticTuple): # it already is return seq return StaticTuple(*seq) _valid_types = (bytes, str, StaticTuple, int, float, None.__class__, bool) if sys.version_info < (3,): _valid_types += (long, unicode) # Have to set it to None first, so that __new__ can determine whether # the _empty_tuple singleton has been created yet or not. _empty_tuple = None _empty_tuple = StaticTuple() _interned_tuples = {} breezy-3.0.0~bzr6852/breezy/_termcolor.py0000644000000000000000000000374713235603346016440 0ustar 00000000000000# Copyright (C) 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA from __future__ import absolute_import import os import sys class FG(object): """Unix terminal foreground color codes (16-color).""" RED = '\033[31m' GREEN = '\033[32m' YELLOW = '\033[33m' BLUE = '\033[34m' MAGENTA = '\033[35m' CYAN = '\033[36m' WHITE = '\033[37m' # Bold Foreground BOLD_RED = '\033[1;31m' BOLD_GREEN = '\033[1;32m' BOLD_YELLOW = '\033[1;33m' BOLD_BLUE = '\033[1;34m' BOLD_MAGENTA = '\033[1;35m' BOLD_CYAN = '\033[1;36m' BOLD_WHITE = '\033[1;37m' NONE = '\033[0m' class BG(object): """Unix terminal background color codes (16-color).""" BLACK = '\033[40m' RED = '\033[41m' GREEN = '\033[42m' YELLOW = '\033[43m' BLUE = '\033[44m' MAGENTA = '\033[45m' CYAN = '\033[46m' WHITE = '\033[47m' NONE = '\033[0m' def color_string(s, fg, bg=''): return fg + bg + s + FG.NONE def re_color_string(compiled_pattern, s, fg): return compiled_pattern.sub(fg + r'\1' + FG.NONE, s) def allow_color(): if os.name != 'posix': return False if not sys.stdout.isatty(): return False try: import curses curses.setupterm() return curses.tigetnum('colors') > 2 except curses.error: return False breezy-3.0.0~bzr6852/breezy/_walkdirs_win32.pyx0000644000000000000000000002365213235603346017461 0ustar 00000000000000# Copyright (C) 2008-2012 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Helper functions for Walkdirs on win32.""" from __future__ import absolute_import cdef extern from "python-compat.h": struct _HANDLE: pass ctypedef _HANDLE *HANDLE ctypedef unsigned long DWORD ctypedef long long __int64 ctypedef unsigned short WCHAR struct _FILETIME: DWORD dwHighDateTime DWORD dwLowDateTime ctypedef _FILETIME FILETIME struct _WIN32_FIND_DATAW: DWORD dwFileAttributes FILETIME ftCreationTime FILETIME ftLastAccessTime FILETIME ftLastWriteTime DWORD nFileSizeHigh DWORD nFileSizeLow # Some reserved stuff here WCHAR cFileName[260] # MAX_PATH WCHAR cAlternateFilename[14] # We have to use the typedef trick, otherwise pyrex uses: # struct WIN32_FIND_DATAW # which fails due to 'incomplete type' ctypedef _WIN32_FIND_DATAW WIN32_FIND_DATAW HANDLE INVALID_HANDLE_VALUE HANDLE FindFirstFileW(WCHAR *path, WIN32_FIND_DATAW *data) int FindNextFileW(HANDLE search, WIN32_FIND_DATAW *data) int FindClose(HANDLE search) DWORD FILE_ATTRIBUTE_READONLY DWORD FILE_ATTRIBUTE_DIRECTORY int ERROR_NO_MORE_FILES int GetLastError() # Wide character functions DWORD wcslen(WCHAR *) cdef extern from "Python.h": WCHAR *PyUnicode_AS_UNICODE(object) Py_ssize_t PyUnicode_GET_SIZE(object) object PyUnicode_FromUnicode(WCHAR *, Py_ssize_t) int PyList_Append(object, object) except -1 object PyUnicode_AsUTF8String(object) import operator import os import stat from . import _readdir_py cdef object osutils osutils = None cdef class _Win32Stat: """Represent a 'stat' result generated from WIN32_FIND_DATA""" cdef readonly int st_mode cdef readonly double st_ctime cdef readonly double st_mtime cdef readonly double st_atime # We can't just declare this as 'readonly' because python2.4 doesn't define # T_LONGLONG as a structure member. So instead we just use a property that # will convert it correctly anyway. cdef __int64 _st_size property st_size: def __get__(self): return self._st_size # os.stat always returns 0, so we hard code it here property st_dev: def __get__(self): return 0 property st_ino: def __get__(self): return 0 # st_uid and st_gid required for some external tools like bzr-git & dulwich property st_uid: def __get__(self): return 0 property st_gid: def __get__(self): return 0 def __repr__(self): """Repr is the same as a Stat object. (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) """ return repr((self.st_mode, 0, 0, 0, 0, 0, self.st_size, self.st_atime, self.st_mtime, self.st_ctime)) cdef object _get_name(WIN32_FIND_DATAW *data): """Extract the Unicode name for this file/dir.""" return PyUnicode_FromUnicode(data.cFileName, wcslen(data.cFileName)) cdef int _get_mode_bits(WIN32_FIND_DATAW *data): # cannot_raise cdef int mode_bits mode_bits = 0100666 # writeable file, the most common if data.dwFileAttributes & FILE_ATTRIBUTE_READONLY == FILE_ATTRIBUTE_READONLY: mode_bits = mode_bits ^ 0222 # remove the write bits if data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY == FILE_ATTRIBUTE_DIRECTORY: # Remove the FILE bit, set the DIR bit, and set the EXEC bits mode_bits = mode_bits ^ 0140111 return mode_bits cdef __int64 _get_size(WIN32_FIND_DATAW *data): # cannot_raise # Pyrex casts a DWORD into a PyLong anyway, so it is safe to do << 32 # on a DWORD return ((<__int64>data.nFileSizeHigh) << 32) + data.nFileSizeLow cdef double _ftime_to_timestamp(FILETIME *ft): # cannot_raise """Convert from a FILETIME struct into a floating point timestamp. The fields of a FILETIME structure are the hi and lo part of a 64-bit value expressed in 100 nanosecond units. 1e7 is one second in such units; 1e-7 the inverse. 429.4967296 is 2**32 / 1e7 or 2**32 * 1e-7. It also uses the epoch 1601-01-01 rather than 1970-01-01 (taken from posixmodule.c) """ cdef __int64 val # NB: This gives slightly different results versus casting to a 64-bit # integer and doing integer math before casting into a floating # point number. But the difference is in the sub millisecond range, # which doesn't seem critical here. # secs between epochs: 11,644,473,600 val = ((<__int64>ft.dwHighDateTime) << 32) + ft.dwLowDateTime return (val * 1.0e-7) - 11644473600.0 cdef int _should_skip(WIN32_FIND_DATAW *data): # cannot_raise """Is this '.' or '..' so we should skip it?""" if (data.cFileName[0] != c'.'): return 0 if data.cFileName[1] == c'\0': return 1 if data.cFileName[1] == c'.' and data.cFileName[2] == c'\0': return 1 return 0 cdef class Win32ReadDir: """Read directories on win32.""" cdef object _directory_kind cdef object _file_kind def __init__(self): self._directory_kind = _readdir_py._directory self._file_kind = _readdir_py._file def top_prefix_to_starting_dir(self, top, prefix=""): """See DirReader.top_prefix_to_starting_dir.""" global osutils if osutils is None: from . import osutils return (osutils.safe_utf8(prefix), None, None, None, osutils.safe_unicode(top)) cdef object _get_kind(self, WIN32_FIND_DATAW *data): if data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY: return self._directory_kind return self._file_kind cdef _Win32Stat _get_stat_value(self, WIN32_FIND_DATAW *data): """Get the filename and the stat information.""" cdef _Win32Stat statvalue statvalue = _Win32Stat() statvalue.st_mode = _get_mode_bits(data) statvalue.st_ctime = _ftime_to_timestamp(&data.ftCreationTime) statvalue.st_mtime = _ftime_to_timestamp(&data.ftLastWriteTime) statvalue.st_atime = _ftime_to_timestamp(&data.ftLastAccessTime) statvalue._st_size = _get_size(data) return statvalue def read_dir(self, prefix, top): """Win32 implementation of DirReader.read_dir. :seealso: DirReader.read_dir """ cdef WIN32_FIND_DATAW search_data cdef HANDLE hFindFile cdef int last_err cdef WCHAR *query cdef int result if prefix: relprefix = prefix + '/' else: relprefix = '' top_slash = top + '/' top_star = top_slash + '*' dirblock = [] query = PyUnicode_AS_UNICODE(top_star) hFindFile = FindFirstFileW(query, &search_data) if hFindFile == INVALID_HANDLE_VALUE: # Raise an exception? This path doesn't seem to exist raise WindowsError(GetLastError(), top_star) try: result = 1 while result: # Skip '.' and '..' if _should_skip(&search_data): result = FindNextFileW(hFindFile, &search_data) continue name_unicode = _get_name(&search_data) name_utf8 = PyUnicode_AsUTF8String(name_unicode) PyList_Append(dirblock, (relprefix + name_utf8, name_utf8, self._get_kind(&search_data), self._get_stat_value(&search_data), top_slash + name_unicode)) result = FindNextFileW(hFindFile, &search_data) # FindNextFileW sets GetLastError() == ERROR_NO_MORE_FILES when it # actually finishes. If we have anything else, then we have a # genuine problem last_err = GetLastError() if last_err != ERROR_NO_MORE_FILES: raise WindowsError(last_err) finally: result = FindClose(hFindFile) if result == 0: last_err = GetLastError() # TODO: We should probably raise an exception if FindClose # returns an error, however, I don't want to supress an # earlier Exception, so for now, I'm ignoring this dirblock.sort(key=operator.itemgetter(1)) return dirblock def lstat(path): """Equivalent to os.lstat, except match Win32ReadDir._get_stat_value. """ return wrap_stat(os.lstat(path)) def fstat(fd): """Like os.fstat, except match Win32ReadDir._get_stat_value :seealso: wrap_stat """ return wrap_stat(os.fstat(fd)) def wrap_stat(st): """Return a _Win32Stat object, based on the given stat result. On Windows, os.fstat(open(fname).fileno()) != os.lstat(fname). This is generally because os.lstat and os.fstat differ in what they put into st_ino and st_dev. What gets set where seems to also be dependent on the python version. So we always set it to 0 to avoid worrying about it. """ cdef _Win32Stat statvalue statvalue = _Win32Stat() statvalue.st_mode = st.st_mode statvalue.st_ctime = st.st_ctime statvalue.st_mtime = st.st_mtime statvalue.st_atime = st.st_atime statvalue._st_size = st.st_size return statvalue breezy-3.0.0~bzr6852/breezy/add.py0000644000000000000000000001233113235603346015010 0ustar 00000000000000# Copyright (C) 2005-2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Helper functions for adding files to working trees.""" from __future__ import absolute_import import sys import os from . import ( osutils, ui, ) from .i18n import gettext class AddAction(object): """A class which defines what action to take when adding a file.""" def __init__(self, to_file=None, should_print=None): """Initialize an action which prints added files to an output stream. :param to_file: The stream to write into. This is expected to take Unicode paths. If not supplied, it will default to ``sys.stdout``. :param should_print: If False, printing will be suppressed. """ self._to_file = to_file if to_file is None: self._to_file = sys.stdout self.should_print = False if should_print is not None: self.should_print = should_print def __call__(self, inv, parent_ie, path, kind, _quote=osutils.quotefn): """Add path to inventory. The default action does nothing. :param inv: The inventory we are working with. :param path: The FastPath being added :param kind: The kind of the object being added. """ if self.should_print: self._to_file.write('adding %s\n' % _quote(path)) return None def skip_file(self, tree, path, kind, stat_value = None): """Test whether the given file should be skipped or not. The default action never skips. Note this is only called during recursive adds :param tree: The tree we are working in :param path: The path being added :param kind: The kind of object being added. :param stat: Stat result for this file, if available already :return bool. True if the file should be skipped (not added) """ return False class AddWithSkipLargeAction(AddAction): """A class that can decide to skip a file if it's considered too large""" _maxSize = None def skip_file(self, tree, path, kind, stat_value = None): if kind != 'file': return False opt_name = 'add.maximum_file_size' if self._maxSize is None: config = tree.get_config_stack() self._maxSize = config.get(opt_name) if stat_value is None: file_size = os.path.getsize(path); else: file_size = stat_value.st_size; if self._maxSize > 0 and file_size > self._maxSize: ui.ui_factory.show_warning(gettext( "skipping {0} (larger than {1} of {2} bytes)").format( path, opt_name, self._maxSize)) return True return False class AddFromBaseAction(AddAction): """This class will try to extract file ids from another tree.""" def __init__(self, base_tree, base_path, to_file=None, should_print=None): super(AddFromBaseAction, self).__init__(to_file=to_file, should_print=should_print) self.base_tree = base_tree self.base_path = base_path def __call__(self, inv, parent_ie, path, kind): # Place the parent call # Now check to see if we can extract an id for this file file_id, base_path = self._get_base_file_id(path, parent_ie) if file_id is not None: if self.should_print: self._to_file.write('adding %s w/ file id from %s\n' % (path, base_path)) else: # we aren't doing anything special, so let the default # reporter happen file_id = super(AddFromBaseAction, self).__call__( inv, parent_ie, path, kind) return file_id def _get_base_file_id(self, path, parent_ie): """Look for a file id in the base branch. First, if the base tree has the parent directory, we look for a file with the same name in that directory. Else, we look for an entry in the base tree with the same path. """ if self.base_tree.has_id(parent_ie.file_id): base_path = osutils.pathjoin( self.base_tree.id2path(parent_ie.file_id), osutils.basename(path)) base_id = self.base_tree.path2id(base_path) if base_id is not None: return (base_id, base_path) full_base_path = osutils.pathjoin(self.base_path, path) # This may return None, but it is our last attempt return self.base_tree.path2id(full_base_path), full_base_path breezy-3.0.0~bzr6852/breezy/annotate.py0000644000000000000000000004460513235603346016102 0ustar 00000000000000# Copyright (C) 2005-2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """File annotate based on weave storage""" from __future__ import absolute_import # TODO: Choice of more or less verbose formats: # # interposed: show more details between blocks of modified lines # TODO: Show which revision caused a line to merge into the parent # TODO: perhaps abbreviate timescales depending on how recent they are # e.g. "3:12 Tue", "13 Oct", "Oct 2005", etc. import sys import time from .lazy_import import lazy_import lazy_import(globals(), """ from breezy import ( patiencediff, tsort, ) """) from . import ( errors, osutils, ) from .config import ( NoEmailInUsername, NoWhoami, extract_email_address, ) from .repository import _strip_NULL_ghosts from .revision import ( CURRENT_REVISION, Revision, ) def annotate_file_tree(tree, path, to_file, verbose=False, full=False, show_ids=False, branch=None, file_id=None): """Annotate file_id in a tree. The tree should already be read_locked() when annotate_file_tree is called. :param tree: The tree to look for revision numbers and history from. :param path: The path to annotate :param to_file: The file to output the annotation to. :param verbose: Show all details rather than truncating to ensure reasonable text width. :param full: XXXX Not sure what this does. :param show_ids: Show revision ids in the annotation output. :param file_id: The file_id to annotate (must match file path) :param branch: Branch to use for revision revno lookups """ if branch is None: branch = tree.branch if to_file is None: to_file = sys.stdout # Handle the show_ids case annotations = list(tree.annotate_iter(path, file_id)) if show_ids: return _show_id_annotations(annotations, to_file, full) if not getattr(tree, "get_revision_id", False): # Create a virtual revision to represent the current tree state. # Should get some more pending commit attributes, like pending tags, # bugfixes etc. current_rev = Revision(CURRENT_REVISION) current_rev.parent_ids = tree.get_parent_ids() try: current_rev.committer = branch.get_config_stack().get('email') except NoWhoami: current_rev.committer = 'local user' current_rev.message = "?" current_rev.timestamp = round(time.time(), 3) current_rev.timezone = osutils.local_time_offset() else: current_rev = None annotation = list(_expand_annotations(annotations, branch, current_rev)) _print_annotations(annotation, verbose, to_file, full) def _print_annotations(annotation, verbose, to_file, full): """Print annotations to to_file. :param to_file: The file to output the annotation to. :param verbose: Show all details rather than truncating to ensure reasonable text width. :param full: XXXX Not sure what this does. """ if len(annotation) == 0: max_origin_len = max_revno_len = max_revid_len = 0 else: max_origin_len = max(len(x[1]) for x in annotation) max_revno_len = max(len(x[0]) for x in annotation) max_revid_len = max(len(x[3]) for x in annotation) if not verbose: max_revno_len = min(max_revno_len, 12) max_revno_len = max(max_revno_len, 3) # Output the annotations prevanno = '' for (revno_str, author, date_str, line_rev_id, text) in annotation: if verbose: anno = '%-*s %-*s %8s ' % (max_revno_len, revno_str, max_origin_len, author, date_str) else: if len(revno_str) > max_revno_len: revno_str = revno_str[:max_revno_len-1] + '>' anno = "%-*s %-7s " % (max_revno_len, revno_str, author[:7]) if anno.lstrip() == "" and full: anno = prevanno # GZ 2017-05-21: Writing both unicode annotation and bytes from file # which the given to_file must cope with. to_file.write(anno) to_file.write('| %s\n' % (text,)) prevanno = anno def _show_id_annotations(annotations, to_file, full): if not annotations: return last_rev_id = None max_origin_len = max(len(origin) for origin, text in annotations) for origin, text in annotations: if full or last_rev_id != origin: this = origin else: this = '' to_file.write('%*s | %s' % (max_origin_len, this, text)) last_rev_id = origin return def _expand_annotations(annotations, branch, current_rev=None): """Expand a file's annotations into command line UI ready tuples. Each tuple includes detailed information, such as the author name, and date string for the commit, rather than just the revision id. :param annotations: The annotations to expand. :param revision_id_to_revno: A map from id to revision numbers. :param branch: A locked branch to query for revision details. """ repository = branch.repository if current_rev is not None: # This can probably become a function on MutableTree, get_revno_map # there, or something. last_revision = current_rev.revision_id # XXX: Partially Cloned from branch, uses the old_get_graph, eep. # XXX: The main difficulty is that we need to inject a single new node # (current_rev) into the graph before it gets numbered, etc. # Once KnownGraph gets an 'add_node()' function, we can use # VF.get_known_graph_ancestry(). graph = repository.get_graph() revision_graph = dict(((key, value) for key, value in graph.iter_ancestry(current_rev.parent_ids) if value is not None)) revision_graph = _strip_NULL_ghosts(revision_graph) revision_graph[last_revision] = current_rev.parent_ids merge_sorted_revisions = tsort.merge_sort( revision_graph, last_revision, None, generate_revno=True) revision_id_to_revno = dict((rev_id, revno) for seq_num, rev_id, depth, revno, end_of_merge in merge_sorted_revisions) else: revision_id_to_revno = branch.get_revision_id_to_revno_map() last_origin = None revision_ids = set(o for o, t in annotations) revisions = {} if CURRENT_REVISION in revision_ids: revision_id_to_revno[CURRENT_REVISION] = ( "%d?" % (branch.revno() + 1),) revisions[CURRENT_REVISION] = current_rev revisions.update( entry for entry in repository.iter_revisions(revision_ids) if entry[1] is not None) for origin, text in annotations: text = text.rstrip('\r\n') if origin == last_origin: (revno_str, author, date_str) = ('', '', '') else: last_origin = origin if origin not in revisions: (revno_str, author, date_str) = ('?', '?', '?') else: revno_str = '.'.join(str(i) for i in revision_id_to_revno[origin]) rev = revisions[origin] tz = rev.timezone or 0 date_str = time.strftime('%Y%m%d', time.gmtime(rev.timestamp + tz)) # a lazy way to get something like the email address # TODO: Get real email address author = rev.get_apparent_authors()[0] try: author = extract_email_address(author) except NoEmailInUsername: pass # use the whole name yield (revno_str, author, date_str, origin, text) def reannotate(parents_lines, new_lines, new_revision_id, _left_matching_blocks=None, heads_provider=None): """Create a new annotated version from new lines and parent annotations. :param parents_lines: List of annotated lines for all parents :param new_lines: The un-annotated new lines :param new_revision_id: The revision-id to associate with new lines (will often be CURRENT_REVISION) :param left_matching_blocks: a hint about which areas are common between the text and its left-hand-parent. The format is the SequenceMatcher.get_matching_blocks format (start_left, start_right, length_of_match). :param heads_provider: An object which provides a .heads() call to resolve if any revision ids are children of others. If None, then any ancestry disputes will be resolved with new_revision_id """ if len(parents_lines) == 0: lines = [(new_revision_id, line) for line in new_lines] elif len(parents_lines) == 1: lines = _reannotate(parents_lines[0], new_lines, new_revision_id, _left_matching_blocks) elif len(parents_lines) == 2: left = _reannotate(parents_lines[0], new_lines, new_revision_id, _left_matching_blocks) lines = _reannotate_annotated(parents_lines[1], new_lines, new_revision_id, left, heads_provider) else: reannotations = [_reannotate(parents_lines[0], new_lines, new_revision_id, _left_matching_blocks)] reannotations.extend(_reannotate(p, new_lines, new_revision_id) for p in parents_lines[1:]) lines = [] for annos in zip(*reannotations): origins = set(a for a, l in annos) if len(origins) == 1: # All the parents agree, so just return the first one lines.append(annos[0]) else: line = annos[0][1] if len(origins) == 2 and new_revision_id in origins: origins.remove(new_revision_id) if len(origins) == 1: lines.append((origins.pop(), line)) else: lines.append((new_revision_id, line)) return lines def _reannotate(parent_lines, new_lines, new_revision_id, matching_blocks=None): new_cur = 0 if matching_blocks is None: plain_parent_lines = [l for r, l in parent_lines] matcher = patiencediff.PatienceSequenceMatcher(None, plain_parent_lines, new_lines) matching_blocks = matcher.get_matching_blocks() lines = [] for i, j, n in matching_blocks: for line in new_lines[new_cur:j]: lines.append((new_revision_id, line)) lines.extend(parent_lines[i:i+n]) new_cur = j + n return lines def _get_matching_blocks(old, new): matcher = patiencediff.PatienceSequenceMatcher(None, old, new) return matcher.get_matching_blocks() _break_annotation_tie = None def _old_break_annotation_tie(annotated_lines): """Chose an attribution between several possible ones. :param annotated_lines: A list of tuples ((file_id, rev_id), line) where the lines are identical but the revids different while no parent relation exist between them :return : The "winning" line. This must be one with a revid that guarantees that further criss-cross merges will converge. Failing to do so have performance implications. """ # sort lexicographically so that we always get a stable result. # TODO: while 'sort' is the easiest (and nearly the only possible solution) # with the current implementation, chosing the oldest revision is known to # provide better results (as in matching user expectations). The most # common use case being manual cherry-pick from an already existing # revision. return sorted(annotated_lines)[0] def _find_matching_unannotated_lines(output_lines, plain_child_lines, child_lines, start_child, end_child, right_lines, start_right, end_right, heads_provider, revision_id): """Find lines in plain_right_lines that match the existing lines. :param output_lines: Append final annotated lines to this list :param plain_child_lines: The unannotated new lines for the child text :param child_lines: Lines for the child text which have been annotated for the left parent :param start_child: Position in plain_child_lines and child_lines to start the match searching :param end_child: Last position in plain_child_lines and child_lines to search for a match :param right_lines: The annotated lines for the whole text for the right parent :param start_right: Position in right_lines to start the match :param end_right: Last position in right_lines to search for a match :param heads_provider: When parents disagree on the lineage of a line, we need to check if one side supersedes the other :param revision_id: The label to give if a line should be labeled 'tip' """ output_extend = output_lines.extend output_append = output_lines.append # We need to see if any of the unannotated lines match plain_right_subset = [l for a, l in right_lines[start_right:end_right]] plain_child_subset = plain_child_lines[start_child:end_child] match_blocks = _get_matching_blocks(plain_right_subset, plain_child_subset) last_child_idx = 0 for right_idx, child_idx, match_len in match_blocks: # All the lines that don't match are just passed along if child_idx > last_child_idx: output_extend(child_lines[start_child + last_child_idx :start_child + child_idx]) for offset in range(match_len): left = child_lines[start_child+child_idx+offset] right = right_lines[start_right+right_idx+offset] if left[0] == right[0]: # The annotations match, just return the left one output_append(left) elif left[0] == revision_id: # The left parent marked this as unmatched, so let the # right parent claim it output_append(right) else: # Left and Right both claim this line if heads_provider is None: output_append((revision_id, left[1])) else: heads = heads_provider.heads((left[0], right[0])) if len(heads) == 1: output_append((next(iter(heads)), left[1])) else: # Both claim different origins, get a stable result. # If the result is not stable, there is a risk a # performance degradation as criss-cross merges will # flip-flop the attribution. if _break_annotation_tie is None: output_append( _old_break_annotation_tie([left, right])) else: output_append(_break_annotation_tie([left, right])) last_child_idx = child_idx + match_len def _reannotate_annotated(right_parent_lines, new_lines, new_revision_id, annotated_lines, heads_provider): """Update the annotations for a node based on another parent. :param right_parent_lines: A list of annotated lines for the right-hand parent. :param new_lines: The unannotated new lines. :param new_revision_id: The revision_id to attribute to lines which are not present in either parent. :param annotated_lines: A list of annotated lines. This should be the annotation of new_lines based on parents seen so far. :param heads_provider: When parents disagree on the lineage of a line, we need to check if one side supersedes the other. """ if len(new_lines) != len(annotated_lines): raise AssertionError("mismatched new_lines and annotated_lines") # First compare the newly annotated lines with the right annotated lines. # Lines which were not changed in left or right should match. This tends to # be the bulk of the lines, and they will need no further processing. lines = [] lines_extend = lines.extend last_right_idx = 0 # The line just after the last match from the right side last_left_idx = 0 matching_left_and_right = _get_matching_blocks(right_parent_lines, annotated_lines) for right_idx, left_idx, match_len in matching_left_and_right: # annotated lines from last_left_idx to left_idx did not match the # lines from last_right_idx to right_idx, the raw lines should be # compared to determine what annotations need to be updated if last_right_idx == right_idx or last_left_idx == left_idx: # One of the sides is empty, so this is a pure insertion lines_extend(annotated_lines[last_left_idx:left_idx]) else: # We need to see if any of the unannotated lines match _find_matching_unannotated_lines(lines, new_lines, annotated_lines, last_left_idx, left_idx, right_parent_lines, last_right_idx, right_idx, heads_provider, new_revision_id) last_right_idx = right_idx + match_len last_left_idx = left_idx + match_len # If left and right agree on a range, just push that into the output lines_extend(annotated_lines[left_idx:left_idx + match_len]) return lines try: from breezy._annotator_pyx import Annotator except ImportError as e: osutils.failed_to_load_extension(e) from breezy._annotator_py import Annotator breezy-3.0.0~bzr6852/breezy/atomicfile.py0000644000000000000000000000711613235603346016401 0ustar 00000000000000# Copyright (C) 2005, 2006, 2008, 2009, 2010 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA from __future__ import absolute_import import os from .lazy_import import lazy_import lazy_import(globals(), """ import stat import warnings from breezy import ( errors, osutils, ) """) # not forksafe - but we dont fork. _pid = os.getpid() _hostname = None class AtomicFile(object): """A file that does an atomic-rename to move into place. This also causes hardlinks to break when it's written out. Open this as for a regular file, then use commit() to move into place or abort() to cancel. """ __slots__ = ['tmpfilename', 'realfilename', '_fd'] def __init__(self, filename, mode='wb', new_mode=None): global _hostname self._fd = None if _hostname is None: _hostname = osutils.get_host_name() self.tmpfilename = '%s.%d.%s.%s.tmp' % (filename, _pid, _hostname, osutils.rand_chars(10)) self.realfilename = filename flags = os.O_EXCL | os.O_CREAT | os.O_WRONLY | osutils.O_NOINHERIT if mode == 'wb': flags |= osutils.O_BINARY elif mode != 'wt': raise ValueError("invalid AtomicFile mode %r" % mode) if new_mode is not None: local_mode = new_mode else: local_mode = 0o666 # Use a low level fd operation to avoid chmodding later. # This may not succeed, but it should help most of the time self._fd = os.open(self.tmpfilename, flags, local_mode) if new_mode is not None: # Because of umask issues, we may need to chmod anyway # the common case is that we won't, though. st = os.fstat(self._fd) if stat.S_IMODE(st.st_mode) != new_mode: osutils.chmod_if_possible(self.tmpfilename, new_mode) def __repr__(self): return '%s(%r)' % (self.__class__.__name__, self.realfilename) def write(self, data): """Write some data to the file. Like file.write()""" os.write(self._fd, data) def _close_tmpfile(self, func_name): """Close the local temp file in preparation for commit or abort""" if self._fd is None: raise errors.AtomicFileAlreadyClosed(path=self.realfilename, function=func_name) fd = self._fd self._fd = None os.close(fd) def commit(self): """Close the file and move to final name.""" self._close_tmpfile('commit') osutils.rename(self.tmpfilename, self.realfilename) def abort(self): """Discard temporary file without committing changes.""" self._close_tmpfile('abort') os.remove(self.tmpfilename) def close(self): """Discard the file unless already committed.""" if self._fd is not None: self.abort() breezy-3.0.0~bzr6852/breezy/bencode.py0000644000000000000000000000211613235603346015657 0ustar 00000000000000# Copyright (C) 2007, 2009 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """Wrapper around the bencode pyrex and python implementation""" from __future__ import absolute_import from . import osutils try: from ._bencode_pyx import bdecode, bdecode_as_tuple, bencode, Bencached except ImportError as e: osutils.failed_to_load_extension(e) from .util._bencode_py import bdecode, bdecode_as_tuple, bencode, Bencached breezy-3.0.0~bzr6852/breezy/bisect.py0000644000000000000000000004052513235603346015537 0ustar 00000000000000# Copyright (C) 2006-2011 Canonical Ltd # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """bisect command implementations.""" from __future__ import absolute_import import sys from .controldir import ControlDir from . import revision as _mod_revision from .commands import Command from .errors import BzrCommandError from .option import Option from .sixish import ( text_type, ) from .trace import note BISECT_INFO_PATH = "bisect" BISECT_REV_PATH = "bisect_revid" class BisectCurrent(object): """Bisect class for managing the current revision.""" def __init__(self, controldir, filename=BISECT_REV_PATH): self._filename = filename self._controldir = controldir self._branch = self._controldir.open_branch() if self._controldir.control_transport.has(filename): self._revid = self._controldir.control_transport.get_bytes( filename).strip() else: self._revid = self._branch.last_revision() def _save(self): """Save the current revision.""" self._controldir.control_transport.put_bytes( self._filename, self._revid + "\n") def get_current_revid(self): """Return the current revision id.""" return self._revid def get_current_revno(self): """Return the current revision number as a tuple.""" revdict = self._branch.get_revision_id_to_revno_map() return revdict[self.get_current_revid()] def get_parent_revids(self): """Return the IDs of the current revision's predecessors.""" repo = self._branch.repository with repo.lock_read(): retval = repo.get_parent_map([self._revid]).get(self._revid, None) return retval def is_merge_point(self): """Is the current revision a merge point?""" return len(self.get_parent_revids()) > 1 def show_rev_log(self, outf): """Write the current revision's log entry to a file.""" rev = self._branch.repository.get_revision(self._revid) revno = ".".join([str(x) for x in self.get_current_revno()]) outf.write("On revision %s (%s):\n%s\n" % (revno, rev.revision_id, rev.message)) def switch(self, revid): """Switch the current revision to the given revid.""" working = self._controldir.open_workingtree() if isinstance(revid, int): revid = self._branch.get_rev_id(revid) elif isinstance(revid, list): revid = revid[0].in_history(working.branch).rev_id working.revert(None, working.branch.repository.revision_tree(revid), False) self._revid = revid self._save() def reset(self): """Revert bisection, setting the working tree to normal.""" working = self._controldir.open_workingtree() last_rev = working.branch.last_revision() rev_tree = working.branch.repository.revision_tree(last_rev) working.revert(None, rev_tree, False) if self._controldir.control_transport.has(BISECT_REV_PATH): self._controldir.control_transport.delete(BISECT_REV_PATH) class BisectLog(object): """Bisect log file handler.""" def __init__(self, controldir, filename=BISECT_INFO_PATH): self._items = [] self._current = BisectCurrent(controldir) self._controldir = controldir self._branch = None self._high_revid = None self._low_revid = None self._middle_revid = None self._filename = filename self.load() def _open_for_read(self): """Open log file for reading.""" if self._filename: return self._controldir.control_transport.get(self._filename) else: return sys.stdin def _load_tree(self): """Load bzr information.""" if not self._branch: self._branch = self._controldir.open_branch() def _find_range_and_middle(self, branch_last_rev = None): """Find the current revision range, and the midpoint.""" self._load_tree() self._middle_revid = None if not branch_last_rev: last_revid = self._branch.last_revision() else: last_revid = branch_last_rev repo = self._branch.repository with repo.lock_read(): graph = repo.get_graph() rev_sequence = graph.iter_lefthand_ancestry(last_revid, (_mod_revision.NULL_REVISION,)) high_revid = None low_revid = None between_revs = [] for revision in rev_sequence: between_revs.insert(0, revision) matches = [x[1] for x in self._items if x[0] == revision and x[1] in ('yes', 'no')] if not matches: continue if len(matches) > 1: raise RuntimeError("revision %s duplicated" % revision) if matches[0] == "yes": high_revid = revision between_revs = [] elif matches[0] == "no": low_revid = revision del between_revs[0] break if not high_revid: high_revid = last_revid if not low_revid: low_revid = self._branch.get_rev_id(1) # The spread must include the high revision, to bias # odd numbers of intervening revisions towards the high # side. spread = len(between_revs) + 1 if spread < 2: middle_index = 0 else: middle_index = (spread / 2) - 1 if len(between_revs) > 0: self._middle_revid = between_revs[middle_index] else: self._middle_revid = high_revid self._high_revid = high_revid self._low_revid = low_revid def _switch_wc_to_revno(self, revno, outf): """Move the working tree to the given revno.""" self._current.switch(revno) self._current.show_rev_log(outf=outf) def _set_status(self, revid, status): """Set the bisect status for the given revid.""" if not self.is_done(): if status != "done" and revid in [x[0] for x in self._items if x[1] in ['yes', 'no']]: raise RuntimeError("attempting to add revid %s twice" % revid) self._items.append((revid, status)) def change_file_name(self, filename): """Switch log files.""" self._filename = filename def load(self): """Load the bisection log.""" self._items = [] if self._controldir.control_transport.has(self._filename): revlog = self._open_for_read() for line in revlog: (revid, status) = line.split() self._items.append((revid, status)) def save(self): """Save the bisection log.""" contents = ''.join( ("%s %s\n" % (revid, status)) for (revid, status) in self._items) if self._filename: self._controldir.control_transport.put_bytes( self._filename, contents) else: sys.stdout.write(contents) def is_done(self): """Report whether we've found the right revision.""" return len(self._items) > 0 and self._items[-1][1] == "done" def set_status_from_revspec(self, revspec, status): """Set the bisection status for the revision in revspec.""" self._load_tree() revid = revspec[0].in_history(self._branch).rev_id self._set_status(revid, status) def set_current(self, status): """Set the current revision to the given bisection status.""" self._set_status(self._current.get_current_revid(), status) def is_merge_point(self, revid): return len(self.get_parent_revids(revid)) > 1 def get_parent_revids(self, revid): repo = self._branch.repository with repo.lock_read(): retval = repo.get_parent_map([revid]).get(revid, None) return retval def bisect(self, outf): """Using the current revision's status, do a bisection.""" self._find_range_and_middle() # If we've found the "final" revision, check for a # merge point. while ((self._middle_revid == self._high_revid or self._middle_revid == self._low_revid) and self.is_merge_point(self._middle_revid)): for parent in self.get_parent_revids(self._middle_revid): if parent == self._low_revid: continue else: self._find_range_and_middle(parent) break self._switch_wc_to_revno(self._middle_revid, outf) if self._middle_revid == self._high_revid or \ self._middle_revid == self._low_revid: self.set_current("done") class cmd_bisect(Command): """Find an interesting commit using a binary search. Bisecting, in a nutshell, is a way to find the commit at which some testable change was made, such as the introduction of a bug or feature. By identifying a version which did not have the interesting change and a later version which did, a developer can test for the presence of the change at various points in the history, eventually ending up at the precise commit when the change was first introduced. This command uses subcommands to implement the search, each of which changes the state of the bisection. The subcommands are: brz bisect start Start a bisect, possibly clearing out a previous bisect. brz bisect yes [-r rev] The specified revision (or the current revision, if not given) has the characteristic we're looking for, brz bisect no [-r rev] The specified revision (or the current revision, if not given) does not have the characteristic we're looking for, brz bisect move -r rev Switch to a different revision manually. Use if the bisect algorithm chooses a revision that is not suitable. Try to move as little as possible. brz bisect reset Clear out a bisection in progress. brz bisect log [-o file] Output a log of the current bisection to standard output, or to the specified file. brz bisect replay Replay a previously-saved bisect log, forgetting any bisection that might be in progress. brz bisect run