You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ji...@apache.org on 2019/10/15 13:01:22 UTC

[couchdb] branch sm52 updated (7d35752 -> a543e51)

This is an automated email from the ASF dual-hosted git repository.

jiangphcn pushed a change to branch sm52
in repository https://gitbox.apache.org/repos/asf/couchdb.git.


 discard 7d35752  normalize anonymous function
 discard 3940a39  allow javascript to be compiled and fixups
 discard ec7ffd2  more fixings on compile
 discard dee80f2  continue moving rest of cpp/h files
 discard 0c7d2b8  starting from util.cpp/h to upgrade SM to 60
 discard 83c73ad  wip: port to spidermonkey 52
     add 587d674  Fix end_time field in /_replicate response
     add c6b095b  Fix read repair in a mixed cluster environment
     add 38c1ab4  Improve vm.args template comments (#1861)
     add 5269d79  Fix fabric_open_doc_revs
     add 90d5bf6  Support one purge request with more than 100 docid
     add a3f99df  Merge pull request #1865 from apache/purge_request_with_101_docid
     add 1ee35e8  Move Jenkins to use Erlang 19 for initial build step (#1866)
     add 0f833fd  Fix timeout in chttpd_purge_tests
     add 5d219dd  Add PSE API to store opaque properties
     add 24a3698  Improve `couch_db:clustered_db` flexibility
     add 3ff043e  Implement `fabric_util:open_cluster_db`
     add 72eb129  Pass the DB record to index validation functions
     add 7bbe828  Validate design document options more strictly
     add 05678b9  Implement configurable hash functions
     add 25ac408  Implement partitioned dbs
     add 6edb9a5  Implement `couch_db:get_partition_info/2`
     add 3a1dd0a  Implement partitioned views
     add eb1ffcf  Optimize all_docs queries in a single partition
     add dc369e9  Optimize offset/limit for partition queries
     add 47efcbd  Use index names when testing index selection
     add 53d3515  Support partitioned queries in Mango
     add 16e6af4  Add Elixir tests for database partitions
     add aeb1ba4  Use an accumulator when merging revision trees
     add 8d2af71  Enforce partition size limits
     add 6cb0506  Add new /{db}/_sync_shards endpoint (admin-only) (#1811)
     add bfb9810  Fix python2 compatibility for couchup (#1868)
     add c5d9cfe  Add Global timeout for map/reduce queries
     add 33e3625  add default fabric request timeouts
     add 666ae21  Don't crash test on a response without Content-Type
     add 841de8c  Add a test for a doc read with etag
     add 4904e4c  Add ability to feature flag partitioned db's
     add 00ce1c1  default config for partition feature flag
     add a1a1dac  Update to mochiweb 2.19.0
     add feaf3da  Blacklist known bad Erlang releases, fixes #1857 (#1871)
     add 1fdfe46  Make _all_docs and view query limits configurable
     add a1e11ce  Implement customizable chttpd statistics
     add 30d0f7b  Shift to new GH multi-template issue workflow (#1872)
     add 076884f  fix test url to fix test
     add 17f05b7  Update config dependency to 2.1.5
     add edcb372  rename partitions feature to partitioned feature
     add 1353450  restrict _purge to server admin
     add 25838d0  Merge pull request #1877 from apache/restrict-purge-admin
     add f30fca2  Make it possible to override elixir couchdb settings via environmental variables
     add 6d317e1  Fix engine header upgrades
     add aba6633  Merge pull request #1886 from apache/fix-pq-db-header-version
     add 5471694  Compaction: Add snooze_period_ms for finer tuning (#1880)
     add 5be58a6  fix credo and formatting issues of elixir tests
     add 7918fba  Change enviromental variables not to clash with travis
     add a5ead1f  add elixir tests to travis
     add c6cd924  Change elixir test failing on travis
     add 0988616  Add junit formatter
     add f22e71a  format
     add 4127726  add w:3 for lots of docs test (#1893)
     add 9a57335  Import IOQ from Cloudant
     add 20bbfbf  Run each apps test in a separate process
     add 5b2a3f5  increase timeout on test
     add 82162b6  We don't need to verify that erlang:garbage_collect() works
     add 04a8f83  Merge pull request #1889 from apache/import-cloudant-ioq
     add d3618bf  Make from_json_error_cases tests idiomatic
     add 9517b26  Fix from_json_obj_validate crash when provided rev isn't a valid hex
     add fbb5a14  Fix badarg crash on invalid rev for individual doc update
     add 20448c6  Merge pull request #1901 from apache/fix-doc-update-invalid-rev-crash
     add d0ec540  Force mix rebar/hex/deps get on make elixir (#1894)
     add 2eff33f  Import smoosh from Cloudant
     add 815eed9  run formatting check before time-consuming tests
     add 302f9a7  remove elixir tests from 'make check' until they are reliable
     add c54ffcf  Merge pull request #1904 from apache/import-smoosh
     add e702598  fix couchup for python3 (#1905)
     add 7fe8bfb  Add check for repeated `partition` definitions
     add d5ec065  Import ken
     add b46df8c  Merge pull request #1910 from apache/import-cloudant-ken
     add a6c1988  Sync admin password hashes at cluster setup finish
     add e699fe6  Merge pull request #1803 from cloudant/configurable-auth-salt
     add 13bf0eb  Set io_priority for couch_index pids
     add 9b85da8  Merge pull request #1642 from cloudant/91984-set-io_priority-for-couch-index-pids
     add c3d6717  Fix elixir tests and add back to make check (#1918)
     add dbdddb2  Support list for docid when using couch_db:purge_docs/3
     add b7577b2  Merge pull request #1925 from apache/allow-list-for-purge-docid
     add d9d2375  Fix elixir tests on Jenkins (#1931)
     add c4c4fce  Update config dependency to 2.1.6
     add 6d782aa  Merge pull request #1932 from apache/update-config-dep
     add 897e410  Remove compilation warnings
     add 94b9abe  Merge pull request #1933 from cloudant/fix-compilation-warnings
     add a54f420  Send correct 400 for missing partition with _find (#1936)
     add b81ca74  fixes to elixir tests (#1939)
     add ca74d12  Update folsom to support newer erlang
     add c90c453  Merge pull request #1938 from cloudant/update-folsom
     add 13104aa  upgrade ken to 1.0.3
     add a2b88a3  Merge pull request #1941 from apache/upgrade-ken-1.0.3
     add f751dda  Update smoosh to 1.0.1
     add 931d77d  Merge pull request #1942 from cloudant/update-smoosh-1.0.1
     add 6b48a46  Fail make eunit upon eunit app suite failure
     add c39852e  Merge pull request #1951 from apache/fail-make-on-eunit-failure
     add 8d65907  Make PropEr an optional (test) dependency
     add 5765a54  Merge pull request #1955 from apache/optional-proper
     add 92c004b  Warn people to edit both Makefiles. (#1952)
     add d8eec70  Jenkins add attachment test (#1953)
     add 0c7111c  test: port multiple_rows.js to Elixir test suite (#1958)
     add a36ec91  Improve chttpd_socket_buffer_size_test
     add aee2fd9  Add stats in fabric for partition and normal views (#1963)
     add c151a32  Ignore weak ETag part
     add 8ef42f7  Merge pull request #1971 from apache/weak-etag-comparison
     add d98fd88  Added more info for a mango sort error (#1970)
     add f88d35b  Add security item to the RFC template (#1914)
     add 8efe9b2  test: port invalid_docids to Elixir test suite (#1968)
     add 0957f90  Update ioq to 2.1.1
     add 9f924e4  Merge pull request #1981 from cloudant/update/ioq-2.1.1
     add 941578d  Improve elixir test stability
     add cbc0dd4  Merge pull request #1991 from cloudant/improve-elixir-test-stability
     add 9d7a56e  Skip running PropEr's own unit tests
     add 56a9d1b  Use couch_ejson_size for calculation of doc's ejson size
     add 4f31cdc  Reuse pre-calculated external docs' size on compaction
     add 3227e61  Merge pull request #1983 from cloudant/fix-external-docs-size
     add d10b795  Uneven shard copy handling in mem3 and fabric
     add 13db67e  Implement initial shard splitting data copy
     add b7d5b5d  Update internal replicator to handle split shards
     add 9f9a6fc  Shard splitting job implementation
     add bcdd994  Resharding supervisor and job manager
     add a6db7d5  Implement resharding HTTP API
     add 5d19926  Port javascript attachment test suite into elixir (#1999)
     add 52189ee  Port copy doc tests into elixir test suite (#2000)
     add 17bdde4  Promote ibrowse 4.0.1-1
     add 9865932  Merge pull request #2001 from cloudant/promote-ibrowse-4.0.1-1
     add ae261e4  In the resharding API test pick the first live node
     add bb30e98  Fix upgrade clause for mem3_rpc:load_checkpoint/4,5
     add e9fc291  Change _security object for new dbs to admin-only by default
     add 5010b2f  Don't reset_index if read_header fails
     add 91b299d  Merge pull request #2003 from apache/dont-reset-index
     add b1f65df  Expose node name via /_node/_local, closes #2005 (#2006)
     add 3a54280  Allow restricting resharding parameters
     add 85617a7  Increase max number of resharding jobs
     add 3714ff5  Handle database re-creation edge case in internal replicator
     add 762d7a8  Use individual rexi kill messages by default
     add 3c958a9  Fix full ring assertion in fabric stream shard replacements
     add af26397  Jenkins: Add ARM64, drop trusty, improve Jenkinsfile (#2023)
     add a4145c2  Fix epoch mismatch errors (#2027)
     add eee1484  Ignore new subprojects
     add 04c37fc  fix: remove restart handlers for obsolete config settings
     add 57bf82e  feat: move fauxton docroot config to OS env-vars for consistency
     add e2dd274  First public release of Dreyfus
     add 4b90276  Match new couchdb naming convention
     add c729966  properly rename this time
     add d5c5509  Plug into couchdb 2.0 with epi handlers
     add 9c563b5  fix error handling for _search_analyze
     add 0e1f788  Add ejson_body
     add f69a572  Merge pull request #1 from cloudant-labs/50663-add-ejson-body
     add 1cb551a  remove cloudant_util function call
     add 29ba95c  Allow binaries for _search_analyze
     add cee7626  Handle errors when opening an index
     add dd5f000  Merge pull request #3 from cloudant-labs/2-handle-open-errors
     add 80ba863  Use couch_crypto
     add 008051d  Merge pull request #4 from cloudant-labs/52884-use-couch-crypto
     add 574cb44  Update to new couch_epi API
     add 5f11337  Merge pull request #5 from cloudant-labs/simplify_couch_epi
     add d125b71  Add new metric to track the search request time. This metric is different from what we track in clouseau. This basically will track the overall time it took for the search request, where as the one in Clouseau will only track the search latency at the shard level.
     add 95df984  Merge pull request #6 from cloudant-labs/66031-add-metrics-dreyfus-httpd-search
     add dd49ff9  Remove trailing spaces
     add fb8c85f  Make handle_search_req return proper response
     add 6c6d5ab  Merge pull request #7 from cloudant-labs/67924-fix-handlers-response
     add 944389b  Don't crash on invalid ddoc
     add 2356160  Merge pull request #8 from cloudant-labs/69570-fix-invalid-ddoc-crash
     add 4390bb5  Improve search logging
     add a8ea666  Merge pull request #9 from cloudant-labs/75421-improve-search-logging
     add a018d1f  Tolerate open_int failure
     add 9607250  Merge pull request #10 from cloudant-labs/77650-open-int-crash
     add 3c1001d  Fix shard replacement
     add 5fbbe3e  Merge pull request #15 from cloudant-labs/84146_fix_shard_replacement
     add bc2f94b7 Add new end point to get disk size information for search index
     add d838881  Merge pull request #17 from cloudant-labs/87336-add-disk_size-end-point
     add ad3f55a  Remove couch_crypto
     add fb7b680  Merge pull request #20 from cloudant-labs/remove-couch_crypto
     add e29303c  Remove public db record
     add 3f5ba2b  Merge pull request #23 from cloudant-labs/COUCHDB-3288-remove-public-db-record
     add dde3f04  Rename search index directory in place when database is deleted
     add 30b0556  Merge pull request #22 from cloudant-labs/86318-rename-search-indexes-when-dbdeleted
     add 5eef719  Update to use pluggable storage engine APIs
     add df88b1c  Merge pull request #26 from cloudant-labs/COUCHDB-3287-pluggable-storage-engines
     add b9805be  Add ability to black list indexes (#27)
     add a4f3ca3  fix typo to noreply (#29)
     add 2712350  Improve search blacklist
     add 9ab3010  Merge pull request #31 from cloudant-labs/109229-improve-blacklist
     add bf4b2cd  Update to use new purge API
     add 0f1be2f  Merge pull request #14 from cloudant-labs/COUCHDB-3326-clustered-purge
     add 10c1015  use updated_on instead of timestamp_utc in local purge doc
     add 89368b2  Merge pull request #32 from cloudant-labs/COUCHDB-3326-use-updated_on
     add e1730b8  Avoid calls to `fabric:design_docs/1`
     add b755e72  Merge pull request #37 from cloudant-labs/fix-get-minimum-purge-seq
     add 1c18b79  Fix function_clause caused by malformed accumulator
     add 1bdca62  Merge pull request #39 from cloudant-labs/fix-function-clause-load-docs
     add 96877dc  Remove deprecated clauses
     add 092194d  Support partitioned queries
     add 74e246d  Add partition search tests
     add 3893301  Implement separate limits for partitioned queries
     add 0c59190  Merge pull request #34 from cloudant-labs/feature/database-partitions
     add 5c1bb7e  Support search with limit using POST method
     add 0413baa  Merge pull request #40 from cloudant-labs/search-using-limit-with-post
     add 8c7f5f5  Reject multiple conflicting values of `partition`
     add 5b8ecb3  Merge pull request #41 from cloudant-labs/partition-parameters
     add 57ea522  Fixed typo
     add 228ae8a  fix function_clause (#42)
     add 1ba7e98  Always send a binary when calling clouseau_rpc:delete
     add 03d8331  Merge pull request #43 from cloudant-labs/116712-fix-delete
     add 7df7402  Avoid dreyfus_index_manager for _search_disk_size.
     add 33ee6c2  Merge pull request #44 from cloudant-labs/avoid-dreyfus-index-manager-for-disk-size
     add 383c96a  add stats for search
     add 7083d1e  Merge pull request #45 from cloudant-labs/add-pricing-for-pq
     add 75d86c4  Use dedicated search IOQ channel
     add 48edbf3  Add IOQ2 metric for search traffic
     add 2fcfb6b  Merge pull request #46 from cloudant-labs/use-dedicated-search-ioq-channel
     add 996f1cc  adjust metric for io_queue-search
     add 45469b9  Merge pull request #47 from cloudant-labs/adjust-io_queue-search
     add 80e3cd8  Address EPI's startup use of dreyfus_config
     add 6f1b8d3  Add 'src/dreyfus/' from commit '80e3cd8111bda643686d9165ea6afa99d0d33cd4'
     add 8e6fa8b  Add dreyfus.js from cloudant/couchdb@c323f1943
     add b1e0037  Ensure Dreyfus JS code is included in build
     add 1513d48  Add Dreyfus to Erlang release
     add 64eb390  Make mem3_rep:go work when target shards are not yet present in shard map
     add 2650981  Merge branch 'master' into dreyfus-by-default
     add 93275c3  Improve detection of Search subsystem
     add 6f95fb3  Improve error message on Clouseau connection fail
     add 7dbd4d5  Further improve detection of Search system
     add 0d32708  Document config settings related to search system
     add 6e75355  Improve PR template with @kocolosk feedback
     add c517618  Merge branch 'master' into dreyfus-by-default
     add cbf8804  Merge pull request #2037 from kocolosk/dreyfus-by-default
     add 915a6e4  Update ioq to 2.1.2
     add e923840  Merge pull request #2062 from cloudant/update-ioq-2.1.2
     add 9d143ba  Add erlang 22 support
     add 85dc624  Fix max_document_id_length value in default.ini
     add 9d09878  Add missing purge settings to default.ini
     add 3505281  Make sure that fsync errors are raised
     add a6c0da1  Increase timeouts on two slow btree tests
     add ec2a963  Fix flaky mem3_sync_event_listener EUnit test
     add 29d484e  Fix EUnit timeouts (#2087)
     add f33378b  Fix credo complains for dreyfus
     add d584962  Minimal ExUnit setup
     add cf60cff  Move eunit tests into test/eunit directory
     add d0ccfa2  Add chained setups
     add d427f35  Unify runners for unit and integration tests
     add 25ad74a  Update .travis.yml
     add f37e1e7  Merge pull request #2039 from cloudant/exunit-simplified
     add 220462a  Retry EUnit tests on failure
     add e67903b  Fix mem3_sync_event_listener EUnit test
     add 0a5b11f  Remove local replication endpoints in CouchDB 3.x
     add 3e9b3fe  Switch to only using elixir replication integration test
     add d5ae1bf  Fix bash-ism in EUnit retry logic
     add 98a702c  Fix cpse_test_purge_replication eunit test
     add 41e3461  Fix copy/paste errors in platform naming
     add c4125a8  Refactor using sequential stages, in workspace
     add 6b410aa  Capture EUnit and ExUnit test results for Jenkins
     add 7f14495  Avoid shebang length limits on jenkins
     add 2b3e2a0  Configure environment for Elixir on ARM
     add 0bdf74d  Add timeout for couch_db_split_tests
     add aab0c51  Move couch startup to a fixture
     add 608caaf  Increase default HTTP timeouts
     add dcae3e7  Extend timeout for mrview_purge_docs_fabric
     add 721f4fd  fixup for dreyfus_fabric_cleanup:go/1
     add 07600f7  Merge pull request #2109 from apache/fixup-cleanup-go
     add 36fd9da  Fix replication rescheduling Running < MaxJobs corner case
     add 1db0294  Support map childspecs in couch_epi supervisor's children replacement
     add 5dcc162  Merge pull request #2118 from apache/epi-support-map-childspec
     add 69d15cd  Refactor fabric:cleanup_index_files
     add 5a6c944  Merge pull request #2101 from cloudant/refactor-clean_index_files
     add f2724d3  Do not fail 'dev/run' on connection close
     add 18bda46  Merge pull request #2105 from cloudant/improve-admin-part-setup
     add 119ca03  Call :meck.unload() automatically after every test
     add 8fa6ca1  Merge pull request #2122 from cloudant/cleanup-after-meck
     add 54fe952  Ensure EUnit inherits appropriate env vars
     add e17f933  Don't try to publish trusty packages
     add 964afcd  Extend timeouts for couch_bt_engine_upgrade_tests
     add 9ca6ab2  Extend timeouts for chttpd_db_test suite
     add ae62936  Extend timeouts for chttpd_view_test suite
     add 08075fd  Give resharding more time to complete
     add 8b613bb  Bump default timeout for retry_until
     add 6927585  Extend timeout on shard splitting test
     add adc0315  Refactor test to keep setup/teardown out of timer
     add 29b3569  Update httpotion to 3.1.3
     add ac4d4fc  Increase default HTTP timeouts
     add 24e9013  Merge pull request #2126 from cloudant/update-httpotion
     add e5baa1f  Fix _scheduler/docs response for local replication endpoints
     add 258f89e  Send a 500, not a 400, for unknown search errors
     add 2affa90  Merge pull request #2137 from apache/mango-search-error-400-500
     add e9e8ae5  Keep database property after overwriting shard map
     add 4f3e4d0  Merge pull request #2138 from apache/keep-dbprop-after-rewriting-shardmap
     add ea5661d  Fix badmatch in fabric_view_all_docs
     add 063d939  Merge pull request #2153 from apache/fix-all-docs-timeout
     add 59067d5  Skipping CompactTest due to compaction failure
     add 4a15a4c  Merge pull request #2157 from sarveshtamba/master
     add 8a06268  feat: less scary error message
     add b79f197  fixup fabric:cleanup_index_files
     add 7ada304  Merge pull request #2178 from apache/fabric-cleanup-view-files
     add dd5ac13  Support `--extra_args` parameter in `dev/run`
     add e746d90  Merge pull request #2183 from cloudant/add-extra-arguments-to-beam
     add 196532f  Improve credential stripping for replication document reads
     add 3302ffa  Fix typo in couch_mrview comment
     add 6c35acd  Merge pull request #2189 from jamieluckett/master
     add 9da6c7a  Remove deprecated dbinfo fields (#2163)
     add aa311b8  feat: do not run stats aggregations on an interval
     add a5b30e7  Bump to 3.0.0
     add 7196a3c  Remove old multi-query path (#2173)
     add 77f64b4  Include search in the list of advertised features (#2206)
     add dc054e7  Remove delayed commits option
     add 92e00c7  Update fauxton to version 1.1.20
     add 9874762  Merge pull request #2217 from apache/fauxton-1.1.20
     add f4998fb  Update default config settings
     add bd8fe96  Ping clouseau directly
     add 75e4736  Merge pull request #2229 from apache/ping-clouseau-directly
     add 84680cf  Merge branch 'master' into update-couchdb-defaults
     add b5c179b  Merge pull request #2228 from apache/update-couchdb-defaults
     add abe586e  Return headers from _changes feed when there are no changes
     add 6382374  Merge pull request #2240 from cloudant/issue/985-continious-feed-blocking
     add 3c55b95  Remove "externals"
     add 201d593  Update fauxton to version 1.2.0 (#2247)
     add 2f23426  Merge branch 'master' into remove-externals
     add 51cb66e  Merge pull request #2248 from apache/remove-externals
     add 4c66e84  Update Fauxton to 1.2.1
     add e5b5906  Merge pull request #2250 from apache/fauxton-1.2.1
     add 28edf6a  Stop creating node local _replicator db
     add 0e773d8  wip: port to spidermonkey 52
     add a543e51  upgrade SM to 60

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (7d35752)
            \
             N -- N -- N   refs/heads/sm52 (a543e51)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 test/elixir/.credo.exs => .credo.exs               |   11 +-
 .formatter.exs                                     |    9 +
 .github/ISSUE_TEMPLATE.md                          |   32 -
 .github/ISSUE_TEMPLATE/bug_report.md               |   36 +
 .github/ISSUE_TEMPLATE/enhancement.md              |   27 +
 .github/ISSUE_TEMPLATE/rfc.md                      |   85 +
 .github/PULL_REQUEST_TEMPLATE.md                   |    7 +-
 .gitignore                                         |   13 +-
 .travis.yml                                        |    9 +-
 Jenkinsfile                                        |  931 ++++++----
 Makefile                                           |   75 +-
 Makefile.win                                       |   36 +-
 {test/elixir/config => config}/config.exs          |    6 +-
 config/dev.exs                                     |    1 +
 config/integration.exs                             |   12 +
 config/prod.exs                                    |    1 +
 config/test.exs                                    |   12 +
 configure                                          |    8 +
 dev/run                                            |   72 +-
 mix.exs                                            |   61 +
 mix.lock                                           |    9 +
 rebar.config.script                                |   79 +-
 rel/apps/couch_epi.config                          |    1 +
 rel/files/couchdb.in                               |    1 +
 rel/overlay/bin/couchup                            |    6 +-
 rel/overlay/etc/default.ini                        |  175 +-
 rel/overlay/etc/vm.args                            |   15 +-
 rel/reltool.config                                 |   10 +-
 share/server/dreyfus.js                            |   62 +
 share/server/loop.js                               |    2 +
 src/chttpd/src/chttpd.erl                          |   54 +-
 src/chttpd/src/chttpd_auth_cache.erl               |    3 +
 src/chttpd/src/chttpd_auth_request.erl             |    8 +
 src/chttpd/src/chttpd_db.erl                       |  351 +++-
 src/chttpd/src/chttpd_external.erl                 |   36 -
 src/chttpd/src/chttpd_httpd_handlers.erl           |    1 +
 src/chttpd/src/chttpd_misc.erl                     |   21 +-
 src/chttpd/src/chttpd_show.erl                     |   19 +-
 src/chttpd/src/chttpd_stats.erl                    |  107 ++
 src/chttpd/src/chttpd_view.erl                     |   51 +-
 src/chttpd/test/{ => eunit}/chttpd_cors_test.erl   |    0
 src/chttpd/test/{ => eunit}/chttpd_csp_tests.erl   |    0
 .../chttpd_db_attachment_size_tests.erl            |    0
 .../chttpd_db_bulk_get_multipart_test.erl          |   29 +-
 .../test/{ => eunit}/chttpd_db_bulk_get_test.erl   |   14 +-
 .../test/{ => eunit}/chttpd_db_doc_size_tests.erl  |    0
 src/chttpd/test/{ => eunit}/chttpd_db_test.erl     |  147 +-
 .../test/{ => eunit}/chttpd_dbs_info_test.erl      |    0
 .../test/{ => eunit}/chttpd_error_info_tests.erl   |    0
 .../test/{ => eunit}/chttpd_handlers_tests.erl     |    0
 .../{ => eunit}/chttpd_open_revs_error_test.erl    |    0
 .../test/{ => eunit}/chttpd_plugin_tests.erl       |    0
 .../test/{ => eunit}/chttpd_prefer_header_test.erl |    0
 src/chttpd/test/{ => eunit}/chttpd_purge_tests.erl |   35 +
 .../test/{ => eunit}/chttpd_security_tests.erl     |   61 +-
 .../test/eunit/chttpd_socket_buffer_size_test.erl  |  127 ++
 src/chttpd/test/{ => eunit}/chttpd_view_test.erl   |   13 +-
 .../test/{ => eunit}/chttpd_welcome_test.erl       |    0
 src/chttpd/test/{ => eunit}/chttpd_xframe_test.erl |    0
 src/couch/include/couch_eunit.hrl                  |    2 +-
 src/couch/priv/stats_descriptions.cfg              |   48 +
 src/couch/src/couch.app.src                        |    1 -
 src/couch/src/couch_bt_engine.erl                  |  135 +-
 src/couch/src/couch_bt_engine.hrl                  |    3 +-
 src/couch/src/couch_bt_engine_compactor.erl        |   20 +-
 src/couch/src/couch_bt_engine_header.erl           |   55 +-
 src/couch/src/couch_btree.erl                      |    6 +-
 src/couch/src/couch_compaction_daemon.erl          |  600 ------
 src/couch/src/couch_db.erl                         |  166 +-
 src/couch/src/couch_db_engine.erl                  |   82 +
 src/couch/src/couch_db_int.hrl                     |    4 +-
 src/couch/src/couch_db_split.erl                   |  494 +++++
 src/couch/src/couch_db_updater.erl                 |  209 ++-
 src/couch/src/couch_debug.erl                      |   20 +-
 src/couch/src/couch_doc.erl                        |   21 +-
 src/couch/src/couch_ejson_compare.erl              |    4 +
 src/couch/src/couch_external_manager.erl           |  120 --
 src/couch/src/couch_external_server.erl            |   90 -
 src/couch/src/couch_file.erl                       |   29 +-
 src/couch/src/couch_httpd.erl                      |    2 +
 src/couch/src/couch_httpd_db.erl                   |   62 +-
 src/couch/src/couch_httpd_external.erl             |   34 -
 src/couch/src/couch_multidb_changes.erl            |    8 +-
 src/couch/src/couch_partition.erl                  |  164 ++
 src/couch/src/couch_secondary_sup.erl              |    3 +-
 src/couch/src/couch_server.erl                     |   21 +-
 src/couch/src/test_util.erl                        |   17 +
 .../couch_bt_engine_partition_downgrade_tests.erl  |   86 -
 src/couch/test/couchdb_compaction_daemon_tests.erl |  314 ----
 .../test/{ => eunit}/chttpd_endpoints_tests.erl    |    0
 .../test/{ => eunit}/couch_auth_cache_tests.erl    |    9 -
 src/couch/test/{ => eunit}/couch_base32_tests.erl  |    0
 .../couch_bt_engine_compactor_tests.erl            |    3 +-
 .../test/{ => eunit}/couch_bt_engine_tests.erl     |    0
 .../{ => eunit}/couch_bt_engine_upgrade_tests.erl  |   85 +-
 src/couch/test/{ => eunit}/couch_btree_tests.erl   |    9 +-
 src/couch/test/{ => eunit}/couch_changes_tests.erl |    1 -
 .../test/{ => eunit}/couch_compress_tests.erl      |    0
 src/couch/test/{ => eunit}/couch_db_doc_tests.erl  |   22 +-
 src/couch/test/{ => eunit}/couch_db_mpr_tests.erl  |    0
 .../test/{ => eunit}/couch_db_plugin_tests.erl     |    0
 .../test/eunit/couch_db_props_upgrade_tests.erl    |   83 +
 src/couch/test/eunit/couch_db_split_tests.erl      |  302 +++
 src/couch/test/{ => eunit}/couch_db_tests.erl      |    0
 .../test/{ => eunit}/couch_doc_json_tests.erl      |   22 +-
 src/couch/test/{ => eunit}/couch_doc_tests.erl     |    0
 .../test/{ => eunit}/couch_ejson_size_tests.erl    |    0
 src/couch/test/{ => eunit}/couch_etag_tests.erl    |    0
 src/couch/test/{ => eunit}/couch_file_tests.erl    |   33 +
 .../test/{ => eunit}/couch_flags_config_tests.erl  |    0
 src/couch/test/{ => eunit}/couch_flags_tests.erl   |    6 +-
 src/couch/test/{ => eunit}/couch_hotp_tests.erl    |    0
 src/couch/test/eunit/couch_index_tests.erl         |  232 +++
 .../test/{ => eunit}/couch_key_tree_prop_tests.erl |    0
 .../test/{ => eunit}/couch_key_tree_tests.erl      |    0
 .../test/{ => eunit}/couch_passwords_tests.erl     |    2 +-
 .../test/{ => eunit}/couch_query_servers_tests.erl |    0
 src/couch/test/{ => eunit}/couch_server_tests.erl  |   30 +
 src/couch/test/{ => eunit}/couch_stream_tests.erl  |    0
 .../test/{ => eunit}/couch_task_status_tests.erl   |    0
 src/couch/test/{ => eunit}/couch_totp_tests.erl    |    0
 src/couch/test/{ => eunit}/couch_util_tests.erl    |    0
 src/couch/test/{ => eunit}/couch_uuids_tests.erl   |    0
 .../test/{ => eunit}/couch_work_queue_tests.erl    |    0
 .../test/{ => eunit}/couchdb_attachments_tests.erl |    0
 src/couch/test/{ => eunit}/couchdb_auth_tests.erl  |    0
 .../{ => eunit}/couchdb_cookie_domain_tests.erl    |    0
 src/couch/test/{ => eunit}/couchdb_cors_tests.erl  |    0
 src/couch/test/{ => eunit}/couchdb_db_tests.erl    |    0
 .../test/{ => eunit}/couchdb_design_doc_tests.erl  |    1 -
 .../{ => eunit}/couchdb_file_compression_tests.erl |    0
 .../{ => eunit}/couchdb_location_header_tests.erl  |    0
 .../test/{ => eunit}/couchdb_mrview_cors_tests.erl |    0
 .../test/{ => eunit}/couchdb_mrview_tests.erl      |    1 -
 .../test/{ => eunit}/couchdb_os_proc_pool.erl      |    0
 .../{ => eunit}/couchdb_update_conflicts_tests.erl |    5 +-
 .../test/{ => eunit}/couchdb_vhosts_tests.erl      |    1 -
 src/couch/test/{ => eunit}/couchdb_views_tests.erl |    5 -
 .../fixtures/3b835456c235b1827e012e25666152f3.view |  Bin
 .../fixtures/couch_stats_aggregates.cfg            |    0
 .../fixtures/couch_stats_aggregates.ini            |    0
 .../{ => eunit}/fixtures/db_non_partitioned.couch  |  Bin
 .../fixtures/db_v6_with_1_purge_req.couch}         |  Bin
 .../db_v6_with_1_purge_req_for_2_docs.couch}       |  Bin
 .../fixtures/db_v6_with_2_purge_req.couch}         |  Bin
 .../fixtures/db_v6_without_purge_req.couch}        |  Bin
 .../fixtures/db_v7_with_1_purge_req.couch}         |  Bin 16566 -> 16617 bytes
 .../db_v7_with_1_purge_req_for_2_docs.couch}       |  Bin 16557 -> 20705 bytes
 .../fixtures/db_v7_with_2_purge_req.couch}         |  Bin 16566 -> 20713 bytes
 .../fixtures/db_v7_without_purge_req.couch}        |  Bin 61644 -> 65781 bytes
 src/couch/test/{ => eunit}/fixtures/logo.png       |  Bin
 src/couch/test/{ => eunit}/fixtures/multipart.http |    0
 .../{ => eunit}/fixtures/os_daemon_bad_perm.sh     |    0
 .../{ => eunit}/fixtures/os_daemon_can_reboot.sh   |    0
 .../fixtures/os_daemon_configer.escript            |    0
 .../{ => eunit}/fixtures/os_daemon_die_on_boot.sh  |    0
 .../{ => eunit}/fixtures/os_daemon_die_quickly.sh  |    0
 .../{ => eunit}/fixtures/os_daemon_looper.escript  |    0
 src/couch/test/{ => eunit}/fixtures/test.couch     |  Bin
 .../test/{ => eunit}/global_changes_tests.erl      |    0
 .../test/{ => eunit}/json_stream_parse_tests.erl   |    0
 src/couch/test/{ => eunit}/test_web.erl            |    0
 src/couch/test/exunit/fabric_test.exs              |  101 +
 src/couch/test/exunit/test_helper.exs              |    2 +
 src/couch_epi/src/couch_epi_sup.erl                |    5 +-
 .../test/{ => eunit}/couch_epi_basic_test.erl      |   34 +-
 src/couch_epi/test/{ => eunit}/couch_epi_tests.erl |    4 +-
 .../test/{ => eunit}/fixtures/app_data1.cfg        |    0
 .../test/{ => eunit}/fixtures/app_data2.cfg        |    0
 src/couch_index/src/couch_index.erl                |   12 +-
 src/couch_index/src/couch_index_compactor.erl      |    2 +
 src/couch_index/src/couch_index_server.erl         |    4 +-
 src/couch_index/src/couch_index_updater.erl        |    2 +
 .../{ => eunit}/couch_index_compaction_tests.erl   |    0
 .../{ => eunit}/couch_index_ddoc_updated_tests.erl |    0
 .../{ => eunit}/couch_log_config_listener_test.erl |    0
 .../test/{ => eunit}/couch_log_config_test.erl     |    0
 .../{ => eunit}/couch_log_error_logger_h_test.erl  |    0
 .../test/{ => eunit}/couch_log_formatter_test.erl  |    0
 .../test/{ => eunit}/couch_log_monitor_test.erl    |    0
 .../test/{ => eunit}/couch_log_server_test.erl     |    0
 src/couch_log/test/{ => eunit}/couch_log_test.erl  |    0
 .../test/{ => eunit}/couch_log_test_util.erl       |    0
 .../{ => eunit}/couch_log_trunc_io_fmt_test.erl    |    0
 .../test/{ => eunit}/couch_log_util_test.erl       |    0
 .../test/{ => eunit}/couch_log_writer_ets.erl      |    0
 .../{ => eunit}/couch_log_writer_file_test.erl     |    0
 .../{ => eunit}/couch_log_writer_stderr_test.erl   |    0
 .../{ => eunit}/couch_log_writer_syslog_test.erl   |    0
 .../test/{ => eunit}/couch_log_writer_test.erl     |    0
 src/couch_mrview/include/couch_mrview.hrl          |    4 +-
 src/couch_mrview/src/couch_mrview.erl              |   30 +-
 src/couch_mrview/src/couch_mrview_http.erl         |    6 +-
 src/couch_mrview/src/couch_mrview_index.erl        |   37 +-
 src/couch_mrview/src/couch_mrview_show.erl         |    3 +-
 src/couch_mrview/src/couch_mrview_updater.erl      |   51 +-
 src/couch_mrview/src/couch_mrview_util.erl         |  163 +-
 .../{ => eunit}/couch_mrview_all_docs_tests.erl    |    0
 .../couch_mrview_changes_since_tests.erl           |    1 -
 .../{ => eunit}/couch_mrview_collation_tests.erl   |    0
 .../{ => eunit}/couch_mrview_compact_tests.erl     |    0
 .../couch_mrview_ddoc_updated_tests.erl            |    0
 .../couch_mrview_ddoc_validation_tests.erl         |    0
 .../{ => eunit}/couch_mrview_design_docs_tests.erl |    0
 .../test/{ => eunit}/couch_mrview_http_tests.erl   |    0
 .../couch_mrview_index_changes_tests.erl           |    1 -
 .../{ => eunit}/couch_mrview_index_info_tests.erl  |   10 -
 .../{ => eunit}/couch_mrview_local_docs_tests.erl  |    0
 .../{ => eunit}/couch_mrview_map_views_tests.erl   |    0
 .../couch_mrview_purge_docs_fabric_tests.erl       |   10 +-
 .../{ => eunit}/couch_mrview_purge_docs_tests.erl  |   69 +
 .../{ => eunit}/couch_mrview_red_views_tests.erl   |    0
 .../test/{ => eunit}/couch_mrview_util_tests.erl   |    0
 .../test/{ => eunit}/couch_peruser_test.erl        |    0
 src/couch_pse_tests/src/cpse_test_attachments.erl  |    1 -
 src/couch_pse_tests/src/cpse_test_compaction.erl   |    1 -
 .../src/cpse_test_copy_purge_infos.erl             |   82 +
 .../src/cpse_test_get_set_props.erl                |    1 -
 .../src/cpse_test_purge_replication.erl            |   21 +-
 .../src/cpse_test_read_write_docs.erl              |   10 +-
 src/couch_pse_tests/src/cpse_util.erl              |    1 +
 src/couch_replicator/README.md                     |    8 -
 src/couch_replicator/src/couch_replicator.erl      |   25 +-
 .../src/couch_replicator_api_wrap.erl              |  150 +-
 src/couch_replicator/src/couch_replicator_auth.erl |    6 +
 .../src/couch_replicator_doc_processor.erl         |   12 +-
 .../src/couch_replicator_doc_processor_worker.erl  |    6 +-
 src/couch_replicator/src/couch_replicator_docs.erl |   59 +-
 .../src/couch_replicator_filters.erl               |   13 +-
 src/couch_replicator/src/couch_replicator_ids.erl  |   44 +-
 .../src/couch_replicator_scheduler.erl             |   82 +-
 .../src/couch_replicator_scheduler_job.erl         |   35 +-
 src/couch_replicator/src/couch_replicator_sup.erl  |    9 -
 .../src/couch_replicator_utils.erl                 |   56 +-
 .../src/couch_replicator_worker.erl                |  143 +-
 .../couch_replicator_attachments_too_large.erl     |    4 +-
 .../{ => eunit}/couch_replicator_compact_tests.erl |    5 +-
 .../couch_replicator_connection_tests.erl          |    0
 ...replicator_create_target_with_options_tests.erl |    0
 .../couch_replicator_filtered_tests.erl            |   11 +-
 .../couch_replicator_httpc_pool_tests.erl          |    0
 .../couch_replicator_id_too_long_tests.erl         |    6 +-
 .../couch_replicator_large_atts_tests.erl          |    5 +-
 .../couch_replicator_many_leaves_tests.erl         |    6 +-
 .../couch_replicator_missing_stubs_tests.erl       |    5 +-
 .../{ => eunit}/couch_replicator_proxy_tests.erl   |    0
 .../couch_replicator_rate_limiter_tests.erl        |    0
 ...ch_replicator_retain_stats_between_job_runs.erl |    0
 .../couch_replicator_selector_tests.erl            |    6 +-
 ...ch_replicator_small_max_request_size_target.erl |    5 +-
 .../{ => eunit}/couch_replicator_test_helper.erl   |    0
 .../couch_replicator_use_checkpoints_tests.erl     |    5 +-
 src/couch_stats/src/couch_stats_aggregator.erl     |   27 +-
 .../test/{ => eunit}/ddoc_cache_basic_test.erl     |    0
 .../test/{ => eunit}/ddoc_cache_coverage_test.erl  |    0
 .../test/{ => eunit}/ddoc_cache_disabled_test.erl  |    0
 .../test/{ => eunit}/ddoc_cache_entry_test.erl     |    0
 src/ddoc_cache/test/{ => eunit}/ddoc_cache_ev.erl  |    0
 .../test/{ => eunit}/ddoc_cache_eviction_test.erl  |    0
 .../test/{ => eunit}/ddoc_cache_lru_test.erl       |   19 +-
 .../test/{ => eunit}/ddoc_cache_no_cache_test.erl  |   76 +-
 .../{ => eunit}/ddoc_cache_open_error_test.erl     |    0
 .../test/{ => eunit}/ddoc_cache_open_test.erl      |    0
 .../test/{ => eunit}/ddoc_cache_opener_test.erl    |    0
 .../test/{ => eunit}/ddoc_cache_refresh_test.erl   |    0
 .../test/{ => eunit}/ddoc_cache_remove_test.erl    |    0
 .../test/{ => eunit}/ddoc_cache_test.hrl           |    0
 .../test/{ => eunit}/ddoc_cache_tutil.erl          |    0
 src/dreyfus/.gitignore                             |    4 +
 src/{mango => dreyfus}/LICENSE.txt                 |    2 +-
 src/dreyfus/README.md                              |   78 +
 src/dreyfus/include/dreyfus.hrl                    |   74 +
 src/dreyfus/priv/stats_descriptions.cfg            |   65 +
 src/dreyfus/src/clouseau_rpc.erl                   |  109 ++
 .../src/dreyfus.app.src}                           |   14 +-
 .../src/dreyfus_app.erl}                           |   11 +-
 src/dreyfus/src/dreyfus_bookmark.erl               |   90 +
 src/dreyfus/src/dreyfus_config.erl                 |   15 +
 src/dreyfus/src/dreyfus_epi.erl                    |   46 +
 src/dreyfus/src/dreyfus_fabric.erl                 |  108 ++
 src/dreyfus/src/dreyfus_fabric_cleanup.erl         |   74 +
 src/dreyfus/src/dreyfus_fabric_group1.erl          |  126 ++
 src/dreyfus/src/dreyfus_fabric_group2.erl          |  155 ++
 src/dreyfus/src/dreyfus_fabric_info.erl            |  108 ++
 src/dreyfus/src/dreyfus_fabric_search.erl          |  265 +++
 src/dreyfus/src/dreyfus_httpd.erl                  |  600 ++++++
 src/dreyfus/src/dreyfus_httpd_handlers.erl         |   29 +
 src/dreyfus/src/dreyfus_index.erl                  |  367 ++++
 src/dreyfus/src/dreyfus_index_manager.erl          |  153 ++
 src/dreyfus/src/dreyfus_index_updater.erl          |  181 ++
 .../src/dreyfus_plugin_couch_db.erl}               |    6 +-
 src/dreyfus/src/dreyfus_rpc.erl                    |  130 ++
 .../src/dreyfus_sup.erl}                           |   21 +-
 src/dreyfus/src/dreyfus_util.erl                   |  421 +++++
 src/dreyfus/test/dreyfus_blacklist_await_test.erl  |   76 +
 .../test/dreyfus_blacklist_request_test.erl        |   96 +
 src/dreyfus/test/dreyfus_config_test.erl           |   71 +
 src/dreyfus/test/dreyfus_purge_test.erl            |  867 +++++++++
 src/dreyfus/test/dreyfus_test_util.erl             |   13 +
 {test => src/dreyfus/test}/elixir/mix.exs          |   10 +-
 src/dreyfus/test/elixir/mix.lock                   |    5 +
 src/dreyfus/test/elixir/run                        |    4 +
 .../test/elixir/test/partition_search_test.exs     |  219 +++
 src/dreyfus/test/elixir/test/test_helper.exs       |    4 +
 src/fabric/include/fabric.hrl                      |    4 +-
 src/fabric/src/fabric.erl                          |   90 +-
 src/fabric/src/fabric_db_create.erl                |    7 +-
 src/fabric/src/fabric_db_doc_count.erl             |   51 +-
 src/fabric/src/fabric_db_info.erl                  |  107 +-
 src/fabric/src/fabric_db_meta.erl                  |    4 +-
 src/fabric/src/fabric_db_partition_info.erl        |   99 +
 src/fabric/src/fabric_db_update_listener.erl       |    4 +-
 src/fabric/src/fabric_design_doc_count.erl         |   51 +-
 src/fabric/src/fabric_dict.erl                     |    3 +
 src/fabric/src/fabric_doc_open.erl                 |    8 +-
 src/fabric/src/fabric_doc_open_revs.erl            |  118 +-
 src/fabric/src/fabric_doc_purge.erl                |    2 +-
 src/fabric/src/fabric_doc_update.erl               |    8 +-
 src/fabric/src/fabric_group_info.erl               |   77 +-
 src/fabric/src/fabric_ring.erl                     |  519 ++++++
 src/fabric/src/fabric_rpc.erl                      |   17 +-
 src/fabric/src/fabric_streams.erl                  |  134 +-
 src/fabric/src/fabric_util.erl                     |   66 +-
 src/fabric/src/fabric_view.erl                     |  252 ++-
 src/fabric/src/fabric_view_all_docs.erl            |   49 +-
 src/fabric/src/fabric_view_changes.erl             |  442 ++++-
 src/fabric/src/fabric_view_map.erl                 |   17 +-
 src/fabric/src/fabric_view_reduce.erl              |   17 +-
 .../test/{ => eunit}/fabric_rpc_purge_tests.erl    |    0
 .../{ => eunit}/global_changes_hooks_tests.erl     |    0
 src/mango/src/mango_cursor.erl                     |    1 +
 src/mango/src/mango_cursor_text.erl                |    9 +
 src/mango/src/mango_cursor_view.erl                |    6 +
 src/mango/src/mango_error.erl                      |   25 +-
 src/mango/src/mango_httpd.erl                      |   32 +-
 src/mango/src/mango_idx.erl                        |  143 +-
 src/mango/src/mango_idx.hrl                        |    1 +
 src/mango/src/mango_idx_text.erl                   |    1 +
 src/mango/src/mango_idx_view.erl                   |    1 +
 src/mango/src/mango_native_proc.erl                |   19 +-
 src/mango/src/mango_opts.erl                       |   30 +
 src/mango/test/05-index-selection-test.py          |   20 +-
 src/mango/test/user_docs.py                        |   37 +-
 src/mem3/README.md                                 |    6 +-
 src/mem3/README_reshard.md                         |   93 +
 src/mem3/include/mem3.hrl                          |    5 +
 src/mem3/src/mem3.app.src                          |    1 +
 src/mem3/src/mem3.erl                              |   43 +-
 src/mem3/src/mem3_hash.erl                         |   73 +
 src/mem3/src/mem3_httpd.erl                        |   20 +-
 src/mem3/src/mem3_httpd_handlers.erl               |    2 +
 src/mem3/src/mem3_rep.erl                          |  706 +++++--
 src/mem3/src/mem3_reshard.erl                      |  918 ++++++++++
 src/mem3/src/mem3_reshard.hrl                      |   74 +
 src/mem3/src/mem3_reshard_api.erl                  |  217 +++
 src/mem3/src/mem3_reshard_dbdoc.erl                |  275 +++
 src/mem3/src/mem3_reshard_httpd.erl                |  317 ++++
 src/mem3/src/mem3_reshard_index.erl                |  164 ++
 src/mem3/src/mem3_reshard_job.erl                  |  722 ++++++++
 .../src/mem3_reshard_job_sup.erl}                  |   47 +-
 src/mem3/src/mem3_reshard_store.erl                |  286 +++
 .../src/mem3_reshard_sup.erl}                      |   35 +-
 src/mem3/src/mem3_reshard_validate.erl             |  126 ++
 src/mem3/src/mem3_rpc.erl                          |   53 +-
 src/mem3/src/mem3_shards.erl                       |   49 +-
 src/mem3/src/mem3_sup.erl                          |    6 +-
 src/mem3/src/mem3_sync.erl                         |   11 +-
 src/mem3/src/mem3_sync_event_listener.erl          |   31 +-
 src/mem3/src/mem3_util.erl                         |  317 +++-
 src/mem3/test/{ => eunit}/mem3_cluster_test.erl    |    0
 .../test/eunit/mem3_hash_test.erl}                 |   13 +-
 src/mem3/test/eunit/mem3_rep_test.erl              |  321 ++++
 src/mem3/test/eunit/mem3_reshard_api_test.erl      |  847 +++++++++
 .../test/eunit/mem3_reshard_changes_feed_test.erl  |  389 ++++
 src/mem3/test/eunit/mem3_reshard_test.erl          |  805 ++++++++
 src/mem3/test/eunit/mem3_ring_prop_tests.erl       |  144 ++
 src/mem3/test/{ => eunit}/mem3_seeds_test.erl      |    0
 src/mem3/test/eunit/mem3_sync_security_test.erl    |   54 +
 src/mem3/test/{ => eunit}/mem3_util_test.erl       |    8 -
 src/mem3/test/mem3_sync_security_test.erl          |   32 -
 src/rexi/src/rexi.erl                              |   26 +-
 src/rexi/src/rexi_server.erl                       |   28 +-
 src/setup/src/setup.erl                            |   66 +
 support/build_js.escript                           |    2 +
 test/elixir/Makefile                               |    4 +-
 test/elixir/README.md                              |  183 +-
 test/elixir/lib/couch.ex                           |  160 +-
 test/elixir/lib/couch/db_test.ex                   |  164 +-
 test/elixir/lib/ex_unit.ex                         |   48 +
 test/elixir/lib/setup.ex                           |   97 +
 test/elixir/lib/setup/common.ex                    |   27 +
 test/elixir/lib/step.ex                            |   44 +
 test/elixir/lib/step/config.ex                     |   33 +
 test/elixir/lib/step/create_db.ex                  |   53 +
 test/elixir/lib/step/start.ex                      |   85 +
 test/elixir/lib/step/user.ex                       |  104 ++
 test/elixir/lib/utils.ex                           |   61 +
 test/elixir/mix.lock                               |    8 -
 test/elixir/run                                    |    6 -
 test/elixir/test/all_docs_test.exs                 |    6 +-
 test/elixir/test/attachment_names_test.exs         |   97 +
 test/elixir/test/attachment_paths_test.exs         |  177 ++
 test/elixir/test/attachment_ranges_test.exs        |  143 ++
 test/elixir/test/attachment_views_test.exs         |  142 ++
 test/elixir/test/attachments_multipart_test.exs    |  409 +++++
 test/elixir/test/attachments_test.exs              |  482 +++++
 test/elixir/test/basics_test.exs                   |   13 +-
 test/elixir/test/bulk_docs_test.exs                |   33 +-
 test/elixir/test/coffee_test.exs                   |    7 +-
 test/elixir/test/compact_test.exs                  |   34 +-
 test/elixir/test/conflicts_test.exs                |   13 +-
 test/elixir/test/copy_doc_test.exs                 |   71 +
 test/elixir/test/delayed_commits_test.exs          |   31 -
 test/elixir/test/invalid_docids_test.exs           |   85 +
 test/elixir/test/lots_of_docs_test.exs             |   66 +-
 test/elixir/test/multiple_rows_test.exs            |  136 ++
 test/elixir/test/partition_all_docs_test.exs       |  204 +++
 test/elixir/test/partition_crud_test.exs           |  360 ++++
 test/elixir/test/partition_ddoc_test.exs           |  179 ++
 test/elixir/test/partition_design_docs_test.exs    |   16 +
 test/elixir/test/partition_helpers.exs             |   76 +
 test/elixir/test/partition_mango_test.exs          |  663 +++++++
 test/elixir/test/partition_size_limit_test.exs     |  305 ++++
 test/elixir/test/partition_size_test.exs           |  361 ++++
 test/elixir/test/partition_view_test.exs           |  374 ++++
 test/elixir/test/partition_view_update_test.exs    |  160 ++
 test/elixir/test/replication_test.exs              |  131 +-
 test/elixir/test/reshard_all_docs_test.exs         |   79 +
 test/elixir/test/reshard_basic_test.exs            |  174 ++
 test/elixir/test/reshard_changes_feed.exs          |   81 +
 test/elixir/test/reshard_helpers.exs               |  114 ++
 test/elixir/test/security_validation_test.exs      |   10 +-
 test/elixir/test/test_helper.exs                   |   18 +-
 test/elixir/test/view_collation_test.exs           |   28 +-
 test/javascript/tests/attachments.js               |    4 +-
 test/javascript/tests/compact.js                   |   16 +-
 test/javascript/tests/delayed_commits.js           |   50 -
 test/javascript/tests/design_docs.js               |    4 +-
 test/javascript/tests/etags_head.js                |    4 +
 test/javascript/tests/replication.js               | 1920 --------------------
 test/javascript/tests/view_compaction.js           |   10 +-
 version.mk                                         |    4 +-
 442 files changed, 24494 insertions(+), 6342 deletions(-)
 rename test/elixir/.credo.exs => .credo.exs (95%)
 create mode 100644 .formatter.exs
 delete mode 100644 .github/ISSUE_TEMPLATE.md
 create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
 create mode 100644 .github/ISSUE_TEMPLATE/enhancement.md
 create mode 100644 .github/ISSUE_TEMPLATE/rfc.md
 copy {test/elixir/config => config}/config.exs (89%)
 create mode 100644 config/dev.exs
 create mode 100644 config/integration.exs
 create mode 100644 config/prod.exs
 create mode 100644 config/test.exs
 create mode 100644 mix.exs
 create mode 100644 mix.lock
 create mode 100644 share/server/dreyfus.js
 create mode 100644 src/chttpd/src/chttpd_stats.erl
 rename src/chttpd/test/{ => eunit}/chttpd_cors_test.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_csp_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_db_attachment_size_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_db_bulk_get_multipart_test.erl (91%)
 rename src/chttpd/test/{ => eunit}/chttpd_db_bulk_get_test.erl (95%)
 rename src/chttpd/test/{ => eunit}/chttpd_db_doc_size_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_db_test.erl (85%)
 rename src/chttpd/test/{ => eunit}/chttpd_dbs_info_test.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_error_info_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_handlers_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_open_revs_error_test.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_plugin_tests.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_prefer_header_test.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_purge_tests.erl (91%)
 rename src/chttpd/test/{ => eunit}/chttpd_security_tests.erl (82%)
 create mode 100644 src/chttpd/test/eunit/chttpd_socket_buffer_size_test.erl
 rename src/chttpd/test/{ => eunit}/chttpd_view_test.erl (96%)
 rename src/chttpd/test/{ => eunit}/chttpd_welcome_test.erl (100%)
 rename src/chttpd/test/{ => eunit}/chttpd_xframe_test.erl (100%)
 delete mode 100644 src/couch/src/couch_compaction_daemon.erl
 create mode 100644 src/couch/src/couch_db_split.erl
 delete mode 100644 src/couch/src/couch_external_manager.erl
 delete mode 100644 src/couch/src/couch_external_server.erl
 create mode 100644 src/couch/src/couch_partition.erl
 delete mode 100644 src/couch/test/couch_bt_engine_partition_downgrade_tests.erl
 delete mode 100644 src/couch/test/couchdb_compaction_daemon_tests.erl
 rename src/couch/test/{ => eunit}/chttpd_endpoints_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_auth_cache_tests.erl (98%)
 rename src/couch/test/{ => eunit}/couch_base32_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_bt_engine_compactor_tests.erl (96%)
 copy src/couch/test/{ => eunit}/couch_bt_engine_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_bt_engine_upgrade_tests.erl (75%)
 rename src/couch/test/{ => eunit}/couch_btree_tests.erl (98%)
 rename src/couch/test/{ => eunit}/couch_changes_tests.erl (99%)
 rename src/couch/test/{ => eunit}/couch_compress_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_db_doc_tests.erl (77%)
 rename src/couch/test/{ => eunit}/couch_db_mpr_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_db_plugin_tests.erl (100%)
 create mode 100644 src/couch/test/eunit/couch_db_props_upgrade_tests.erl
 create mode 100644 src/couch/test/eunit/couch_db_split_tests.erl
 rename src/couch/test/{ => eunit}/couch_db_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_doc_json_tests.erl (96%)
 rename src/couch/test/{ => eunit}/couch_doc_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_ejson_size_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_etag_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_file_tests.erl (96%)
 rename src/couch/test/{ => eunit}/couch_flags_config_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_flags_tests.erl (97%)
 rename src/couch/test/{ => eunit}/couch_hotp_tests.erl (100%)
 create mode 100644 src/couch/test/eunit/couch_index_tests.erl
 rename src/couch/test/{ => eunit}/couch_key_tree_prop_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_key_tree_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_passwords_tests.erl (97%)
 rename src/couch/test/{ => eunit}/couch_query_servers_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_server_tests.erl (91%)
 rename src/couch/test/{ => eunit}/couch_stream_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_task_status_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_totp_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_util_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_uuids_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couch_work_queue_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_attachments_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_auth_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_cookie_domain_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_cors_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_db_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_design_doc_tests.erl (98%)
 rename src/couch/test/{ => eunit}/couchdb_file_compression_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_location_header_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_mrview_cors_tests.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_mrview_tests.erl (99%)
 rename src/couch/test/{ => eunit}/couchdb_os_proc_pool.erl (100%)
 rename src/couch/test/{ => eunit}/couchdb_update_conflicts_tests.erl (98%)
 rename src/couch/test/{ => eunit}/couchdb_vhosts_tests.erl (99%)
 rename src/couch/test/{ => eunit}/couchdb_views_tests.erl (98%)
 rename src/couch/test/{ => eunit}/fixtures/3b835456c235b1827e012e25666152f3.view (100%)
 rename src/couch/test/{ => eunit}/fixtures/couch_stats_aggregates.cfg (100%)
 rename src/couch/test/{ => eunit}/fixtures/couch_stats_aggregates.ini (100%)
 rename src/couch/test/{ => eunit}/fixtures/db_non_partitioned.couch (100%)
 rename src/couch/test/{fixtures/db_with_1_purge_req.couch => eunit/fixtures/db_v6_with_1_purge_req.couch} (100%)
 copy src/couch/test/{fixtures/db_with_1_purge_req_for_2_docs.couch => eunit/fixtures/db_v6_with_1_purge_req_for_2_docs.couch} (100%)
 copy src/couch/test/{fixtures/db_with_2_purge_req.couch => eunit/fixtures/db_v6_with_2_purge_req.couch} (100%)
 copy src/couch/test/{fixtures/db_without_purge_req.couch => eunit/fixtures/db_v6_without_purge_req.couch} (100%)
 copy src/couch/test/{fixtures/db_with_2_purge_req.couch => eunit/fixtures/db_v7_with_1_purge_req.couch} (93%)
 rename src/couch/test/{fixtures/db_with_1_purge_req_for_2_docs.couch => eunit/fixtures/db_v7_with_1_purge_req_for_2_docs.couch} (79%)
 rename src/couch/test/{fixtures/db_with_2_purge_req.couch => eunit/fixtures/db_v7_with_2_purge_req.couch} (79%)
 rename src/couch/test/{fixtures/db_without_purge_req.couch => eunit/fixtures/db_v7_without_purge_req.couch} (93%)
 rename src/couch/test/{ => eunit}/fixtures/logo.png (100%)
 rename src/couch/test/{ => eunit}/fixtures/multipart.http (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_bad_perm.sh (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_can_reboot.sh (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_configer.escript (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_die_on_boot.sh (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_die_quickly.sh (100%)
 rename src/couch/test/{ => eunit}/fixtures/os_daemon_looper.escript (100%)
 rename src/couch/test/{ => eunit}/fixtures/test.couch (100%)
 rename src/couch/test/{ => eunit}/global_changes_tests.erl (100%)
 rename src/couch/test/{ => eunit}/json_stream_parse_tests.erl (100%)
 rename src/couch/test/{ => eunit}/test_web.erl (100%)
 create mode 100644 src/couch/test/exunit/fabric_test.exs
 create mode 100644 src/couch/test/exunit/test_helper.exs
 rename src/couch_epi/test/{ => eunit}/couch_epi_basic_test.erl (75%)
 rename src/couch_epi/test/{ => eunit}/couch_epi_tests.erl (99%)
 rename src/couch_epi/test/{ => eunit}/fixtures/app_data1.cfg (100%)
 rename src/couch_epi/test/{ => eunit}/fixtures/app_data2.cfg (100%)
 rename src/couch_index/test/{ => eunit}/couch_index_compaction_tests.erl (100%)
 rename src/couch_index/test/{ => eunit}/couch_index_ddoc_updated_tests.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_config_listener_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_config_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_error_logger_h_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_formatter_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_monitor_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_server_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_test_util.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_trunc_io_fmt_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_util_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_writer_ets.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_writer_file_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_writer_stderr_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_writer_syslog_test.erl (100%)
 rename src/couch_log/test/{ => eunit}/couch_log_writer_test.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_all_docs_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_changes_since_tests.erl (99%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_collation_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_compact_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_ddoc_updated_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_ddoc_validation_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_design_docs_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_http_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_index_changes_tests.erl (99%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_index_info_tests.erl (90%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_local_docs_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_map_views_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_purge_docs_fabric_tests.erl (98%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_purge_docs_tests.erl (86%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_red_views_tests.erl (100%)
 rename src/couch_mrview/test/{ => eunit}/couch_mrview_util_tests.erl (100%)
 rename src/couch_peruser/test/{ => eunit}/couch_peruser_test.erl (100%)
 create mode 100644 src/couch_pse_tests/src/cpse_test_copy_purge_infos.erl
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_attachments_too_large.erl (96%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_compact_tests.erl (99%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_connection_tests.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_create_target_with_options_tests.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_filtered_tests.erl (96%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_httpc_pool_tests.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_id_too_long_tests.erl (94%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_large_atts_tests.erl (96%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_many_leaves_tests.erl (98%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_missing_stubs_tests.erl (97%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_proxy_tests.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_rate_limiter_tests.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_retain_stats_between_job_runs.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_selector_tests.erl (95%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_small_max_request_size_target.erl (98%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_test_helper.erl (100%)
 rename src/couch_replicator/test/{ => eunit}/couch_replicator_use_checkpoints_tests.erl (97%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_basic_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_coverage_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_disabled_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_entry_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_ev.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_eviction_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_lru_test.erl (95%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_no_cache_test.erl (50%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_open_error_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_open_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_opener_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_refresh_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_remove_test.erl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_test.hrl (100%)
 rename src/ddoc_cache/test/{ => eunit}/ddoc_cache_tutil.erl (100%)
 create mode 100644 src/dreyfus/.gitignore
 copy src/{mango => dreyfus}/LICENSE.txt (99%)
 create mode 100644 src/dreyfus/README.md
 create mode 100644 src/dreyfus/include/dreyfus.hrl
 create mode 100644 src/dreyfus/priv/stats_descriptions.cfg
 create mode 100644 src/dreyfus/src/clouseau_rpc.erl
 copy src/{couch_peruser/src/couch_peruser.app.src => dreyfus/src/dreyfus.app.src} (64%)
 copy src/{couch_epi/src/couch_epi_app.erl => dreyfus/src/dreyfus_app.erl} (81%)
 create mode 100644 src/dreyfus/src/dreyfus_bookmark.erl
 create mode 100644 src/dreyfus/src/dreyfus_config.erl
 create mode 100644 src/dreyfus/src/dreyfus_epi.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric_cleanup.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric_group1.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric_group2.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric_info.erl
 create mode 100644 src/dreyfus/src/dreyfus_fabric_search.erl
 create mode 100644 src/dreyfus/src/dreyfus_httpd.erl
 create mode 100644 src/dreyfus/src/dreyfus_httpd_handlers.erl
 create mode 100644 src/dreyfus/src/dreyfus_index.erl
 create mode 100644 src/dreyfus/src/dreyfus_index_manager.erl
 create mode 100644 src/dreyfus/src/dreyfus_index_updater.erl
 copy src/{couch_index/src/couch_index_plugin_couch_db.erl => dreyfus/src/dreyfus_plugin_couch_db.erl} (80%)
 create mode 100644 src/dreyfus/src/dreyfus_rpc.erl
 copy src/{couch_peruser/src/couch_peruser_sup.erl => dreyfus/src/dreyfus_sup.erl} (62%)
 create mode 100644 src/dreyfus/src/dreyfus_util.erl
 create mode 100644 src/dreyfus/test/dreyfus_blacklist_await_test.erl
 create mode 100644 src/dreyfus/test/dreyfus_blacklist_request_test.erl
 create mode 100644 src/dreyfus/test/dreyfus_config_test.erl
 create mode 100644 src/dreyfus/test/dreyfus_purge_test.erl
 create mode 100644 src/dreyfus/test/dreyfus_test_util.erl
 rename {test => src/dreyfus/test}/elixir/mix.exs (62%)
 create mode 100644 src/dreyfus/test/elixir/mix.lock
 create mode 100755 src/dreyfus/test/elixir/run
 create mode 100644 src/dreyfus/test/elixir/test/partition_search_test.exs
 create mode 100644 src/dreyfus/test/elixir/test/test_helper.exs
 create mode 100644 src/fabric/src/fabric_db_partition_info.erl
 create mode 100644 src/fabric/src/fabric_ring.erl
 rename src/fabric/test/{ => eunit}/fabric_rpc_purge_tests.erl (100%)
 rename src/global_changes/test/{ => eunit}/global_changes_hooks_tests.erl (100%)
 create mode 100644 src/mem3/README_reshard.md
 create mode 100644 src/mem3/src/mem3_hash.erl
 create mode 100644 src/mem3/src/mem3_reshard.erl
 create mode 100644 src/mem3/src/mem3_reshard.hrl
 create mode 100644 src/mem3/src/mem3_reshard_api.erl
 create mode 100644 src/mem3/src/mem3_reshard_dbdoc.erl
 create mode 100644 src/mem3/src/mem3_reshard_httpd.erl
 create mode 100644 src/mem3/src/mem3_reshard_index.erl
 create mode 100644 src/mem3/src/mem3_reshard_job.erl
 copy src/{ddoc_cache/src/ddoc_cache_sup.erl => mem3/src/mem3_reshard_job_sup.erl} (55%)
 create mode 100644 src/mem3/src/mem3_reshard_store.erl
 copy src/{ddoc_cache/src/ddoc_cache_sup.erl => mem3/src/mem3_reshard_sup.erl} (60%)
 create mode 100644 src/mem3/src/mem3_reshard_validate.erl
 rename src/mem3/test/{ => eunit}/mem3_cluster_test.erl (100%)
 rename src/{couch/test/couch_bt_engine_tests.erl => mem3/test/eunit/mem3_hash_test.erl} (65%)
 create mode 100644 src/mem3/test/eunit/mem3_rep_test.erl
 create mode 100644 src/mem3/test/eunit/mem3_reshard_api_test.erl
 create mode 100644 src/mem3/test/eunit/mem3_reshard_changes_feed_test.erl
 create mode 100644 src/mem3/test/eunit/mem3_reshard_test.erl
 create mode 100644 src/mem3/test/eunit/mem3_ring_prop_tests.erl
 rename src/mem3/test/{ => eunit}/mem3_seeds_test.erl (100%)
 create mode 100644 src/mem3/test/eunit/mem3_sync_security_test.erl
 rename src/mem3/test/{ => eunit}/mem3_util_test.erl (94%)
 delete mode 100644 src/mem3/test/mem3_sync_security_test.erl
 create mode 100644 test/elixir/lib/ex_unit.ex
 create mode 100644 test/elixir/lib/setup.ex
 create mode 100644 test/elixir/lib/setup/common.ex
 create mode 100644 test/elixir/lib/step.ex
 create mode 100644 test/elixir/lib/step/config.ex
 create mode 100644 test/elixir/lib/step/create_db.ex
 create mode 100644 test/elixir/lib/step/start.ex
 create mode 100644 test/elixir/lib/step/user.ex
 create mode 100644 test/elixir/lib/utils.ex
 delete mode 100644 test/elixir/mix.lock
 delete mode 100755 test/elixir/run
 create mode 100644 test/elixir/test/attachment_names_test.exs
 create mode 100644 test/elixir/test/attachment_paths_test.exs
 create mode 100644 test/elixir/test/attachment_ranges_test.exs
 create mode 100644 test/elixir/test/attachment_views_test.exs
 create mode 100644 test/elixir/test/attachments_multipart_test.exs
 create mode 100644 test/elixir/test/attachments_test.exs
 create mode 100644 test/elixir/test/copy_doc_test.exs
 delete mode 100644 test/elixir/test/delayed_commits_test.exs
 create mode 100644 test/elixir/test/invalid_docids_test.exs
 create mode 100644 test/elixir/test/multiple_rows_test.exs
 create mode 100644 test/elixir/test/partition_all_docs_test.exs
 create mode 100644 test/elixir/test/partition_crud_test.exs
 create mode 100644 test/elixir/test/partition_ddoc_test.exs
 create mode 100644 test/elixir/test/partition_design_docs_test.exs
 create mode 100644 test/elixir/test/partition_helpers.exs
 create mode 100644 test/elixir/test/partition_mango_test.exs
 create mode 100644 test/elixir/test/partition_size_limit_test.exs
 create mode 100644 test/elixir/test/partition_size_test.exs
 create mode 100644 test/elixir/test/partition_view_test.exs
 create mode 100644 test/elixir/test/partition_view_update_test.exs
 create mode 100644 test/elixir/test/reshard_all_docs_test.exs
 create mode 100644 test/elixir/test/reshard_basic_test.exs
 create mode 100644 test/elixir/test/reshard_changes_feed.exs
 create mode 100644 test/elixir/test/reshard_helpers.exs
 delete mode 100644 test/javascript/tests/delayed_commits.js
 delete mode 100644 test/javascript/tests/replication.js