[Python-modules-commits] [dulwich] 02/07: New upstream version 0.18.0

Jelmer Vernooij jelmer at moszumanska.debian.org
Mon Jul 31 01:38:55 UTC 2017


This is an automated email from the git hooks/post-receive script.

jelmer pushed a commit to branch master
in repository dulwich.

commit e82e290e4b1e75ed6632c821c9a7cb2f56812181
Author: Jelmer Vernooij <jelmer at jelmer.uk>
Date:   Mon Jul 31 01:22:14 2017 +0000

    New upstream version 0.18.0
---
 .travis.yml                              |   5 +-
 AUTHORS                                  | 137 ++++++++-
 Makefile                                 |   4 +
 NEWS                                     | 239 +++++++++-------
 PKG-INFO                                 |   9 +-
 README.md                                |  38 +++
 appveyor.yml                             |  91 +++++-
 bin/dulwich                              |  13 +
 docs/conf.py                             |  91 +++---
 docs/tutorial/file-format.txt            |   4 +-
 docs/tutorial/porcelain.txt              |   6 +
 docs/tutorial/remote.txt                 |   2 +-
 dulwich.egg-info/PKG-INFO                |   9 +-
 dulwich.egg-info/SOURCES.txt             |   2 +
 dulwich/__init__.py                      |   2 +-
 dulwich/_diff_tree.c                     |  12 +-
 dulwich/_objects.c                       |  14 +-
 dulwich/_pack.c                          |  21 +-
 dulwich/archive.py                       |  12 +-
 dulwich/client.py                        | 191 ++++++++-----
 dulwich/config.py                        |  29 +-
 dulwich/contrib/paramiko_vendor.py       |   3 +-
 dulwich/contrib/swift.py                 |  15 +-
 dulwich/contrib/test_swift.py            |  28 +-
 dulwich/contrib/test_swift_smoke.py      |  18 +-
 dulwich/diff_tree.py                     |  26 +-
 dulwich/errors.py                        |  13 +-
 dulwich/fastexport.py                    |  51 ++--
 dulwich/file.py                          |  20 +-
 dulwich/ignore.py                        | 358 ++++++++++++++++++++++++
 dulwich/index.py                         |  57 +++-
 dulwich/log_utils.py                     |   3 +-
 dulwich/object_store.py                  |  76 ++---
 dulwich/objects.py                       | 105 ++++---
 dulwich/objectspec.py                    |  19 +-
 dulwich/pack.py                          | 110 ++++----
 dulwich/patch.py                         |  30 +-
 dulwich/porcelain.py                     | 270 +++++++++++++-----
 dulwich/protocol.py                      |  32 ++-
 dulwich/reflog.py                        |   8 +-
 dulwich/refs.py                          |  44 +--
 dulwich/repo.py                          |  61 +++--
 dulwich/server.py                        | 119 ++++----
 dulwich/tests/__init__.py                |  28 +-
 dulwich/tests/compat/__init__.py         |   1 +
 dulwich/tests/compat/server_utils.py     |  54 ++--
 dulwich/tests/compat/test_client.py      |  80 +++---
 dulwich/tests/compat/test_pack.py        |   1 +
 dulwich/tests/compat/test_repository.py  |  16 +-
 dulwich/tests/compat/test_server.py      |   8 +-
 dulwich/tests/compat/test_web.py         |  14 +-
 dulwich/tests/compat/utils.py            |   4 +-
 dulwich/tests/test_archive.py            |   1 -
 dulwich/tests/test_client.py             | 112 +++++---
 dulwich/tests/test_config.py             |  39 ++-
 dulwich/tests/test_diff_tree.py          | 132 +++++----
 dulwich/tests/test_fastexport.py         |  76 +++--
 dulwich/tests/test_greenthreads.py       |  23 +-
 dulwich/tests/test_ignore.py             | 260 ++++++++++++++++++
 dulwich/tests/test_index.py              | 114 ++++----
 dulwich/tests/test_lru_cache.py          |  57 ++--
 dulwich/tests/test_missing_obj_finder.py |  64 +++--
 dulwich/tests/test_object_store.py       |  51 ++--
 dulwich/tests/test_objects.py            | 123 +++++----
 dulwich/tests/test_objectspec.py         |  38 ++-
 dulwich/tests/test_pack.py               |  94 ++++---
 dulwich/tests/test_patch.py              | 134 +++++----
 dulwich/tests/test_porcelain.py          | 457 ++++++++++++++++++++++---------
 dulwich/tests/test_protocol.py           |  21 +-
 dulwich/tests/test_reflog.py             |  12 +-
 dulwich/tests/test_refs.py               |  40 ++-
 dulwich/tests/test_repository.py         | 243 +++++++++-------
 dulwich/tests/test_server.py             |  73 +++--
 dulwich/tests/test_walk.py               |  32 ++-
 dulwich/tests/test_web.py                |  34 ++-
 dulwich/tests/utils.py                   |  25 +-
 dulwich/walk.py                          |  36 +--
 dulwich/web.py                           |  28 +-
 setup.py                                 |  50 ++--
 79 files changed, 3419 insertions(+), 1553 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index e8214ae..2753c29 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,7 +23,7 @@ matrix:
       env: TEST_REQUIRE=fastimport
 
 install:
-  - travis_retry pip install -U pip coverage codecov $TEST_REQUIRE
+  - travis_retry pip install -U pip coverage codecov flake8 $TEST_REQUIRE
 
 script:
   # Test without c extensions
@@ -33,6 +33,9 @@ script:
   - python setup.py build_ext -i
   - python -m coverage run -p --source=dulwich -m unittest dulwich.tests.test_suite
 
+  # Style
+  - make style
+
 after_success:
   - python -m coverage combine
   - codecov
diff --git a/AUTHORS b/AUTHORS
index 525aacf..252f804 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,11 +1,132 @@
-Jelmer Vernooij <jelmer at jelmer.uk>
-James Westby <jw+debian at jameswestby.net>
-John Carr <john.carr at unrouted.co.uk>
+Jelmer Vernooij <jelmer at jelmer.uk>
 Dave Borowitz <dborowitz at google.com>
-Chris Eberle <eberle1080 at gmail.com>
-"milki" <milki at rescomp.berkeley.edu>
+John Carr <john.carr at unrouted.co.uk>
 Gary van der Merwe <garyvdm at gmail.com>
+milki <milki at rescomp.berkeley.edu>
+Augie Fackler <durin42 at gmail.com>
+Tay Ray Chuan <rctay89 at gmail.com>
+Risto Kankkunen <risto.kankkunen at iki.fi>
+Jonas Haag <jonas at lophus.org>
+Fabien Boucher <fabien.boucher at enovance.com>
+James Westby <jw+debian at jameswestby.net>
+Mike Edgar <adgar at google.com>
+Koen Martens <gmc at sonologic.nl>
+Abderrahim Kitouni <a.kitouni at gmail.com>
+William Grant <william.grant at canonical.com>
+Marcin Kuzminski <marcin at python-works.com>
+Ryan Faulkner <rfaulk at yahoo-inc.com>
+Julian Berman <Julian at GrayVines.com>
+Mark Mikofski <mark.mikofski at sunpowercorp.com>
+Michael K <michael-k at users.noreply.github.com>
+Ali Sabil <ali.sabil at gmail.com>
+Damien Tournoud <damien at commerceguys.com>
+Hannu Valtonen <hannu.valtonen at ohmu.fi>
+Mika Mäenpää <mika.j.maenpaa at iki.fi>
+Paul Hummer <paul at eventuallyanyway.com>
+Lele Gaifax <lele at metapensiero.it>
+Lukasz Balcerzak <lukasz.balcerzak at python-center.org>
+Tommy Yu <tommy.yu at auckland.ac.nz>
+anatoly techtonik <techtonik at gmail.com>
+bmcorser <bmcorser at gmail.com>
+Brendan Cully <brendan at kublai.com>
+Chow Loong Jin <hyperair at debian.org>
+Chris Eberle <eberle1080 at gmail.com>
+Dmitriy <dkomarov at gmail.com>
+Hervé Cauwelier <herve at oursours.net>
+Hugo Osvaldo Barrera <hugo at barrera.io>
+Jameson Nash <jameson at mit.edu>
+Marc Brinkmann <git at marcbrinkmann.de>
+Nicolas Dandrimont <nicolas at dandrimont.eu>
+Robert Brown <robert.brown at gmail.com>
+Siddharth Agarwal <sid0 at fb.com>
+Stefan Zimmermann <zimmermann.code at gmail.com>
+Takeshi Kanemoto <tak.kanemoto at gmail.com>
+Yifan Zhang <yifan at wavii.com>
+Aaron O'Mullan <aaron.omullan at friendco.de>
+Adam "Cezar" Jenkins <emperorcezar at gmail.com>
+Alberto Ruiz <aruiz at gnome.org>
+Alexander Belchenko <bialix at ukr.net>
+Andreas Kloeckner <inform at tiker.net>
+André Roth <neolynx at gmail.com>
+Benjamin Pollack <benjamin at bitquabit.com>
+Benoit HERVIER <khertan at khertan.net>
+Dan Callaghan <dcallagh at redhat.com>
+David Keijser <david.keijser at klarna.com>
+David Ostrovsky <david at ostrovsky.org>
+David Pursehouse <david.pursehouse at gmail.com>
+Dmitrij D. Czarkoff <czarkoff at gmail.com>
+Doug Hellmann <doug at doughellmann.com>
+Dov Feldstern <dovdevel at gmail.com>
+Félix Mattrat <felix at dysosmus.net>
+Hwee Miin Koh <hwee-miin.koh at ubisoft.com>
+Jason R. Coombs <jaraco at jaraco.com>
+Jeremy Whitlock <jcscoobyrs at gmail.com>
+John Arbash Meinel <john at arbash-meinel.com>
+Laurent Rineau <laurent.rineau at cgal.org>
+Martin Packman <gzlist at googlemail.com>
+Max Shawabkeh <max99x at gmail.com>
+Michael Hudson <michael.hudson at canonical.com>
+Nick Stenning <nick at whiteink.com>
+Nick Ward <ward.nickjames at gmail.com>
+Paul Chen <lancevdance at gmail.com>
+Roland Mas <lolando at debian.org>
+Ronald Blaschke <ron at rblasch.org>
+Ronny Pfannschmidt <Ronny.Pfannschmidt at gmx.de>
+Ross Light <ross at zombiezen.com>
+Ryan McKern <ryan at orangefort.com>
+Ted Horst <ted.horst at earthlink.net>
+Thomas Liebetraut <thomas at tommie-lie.de>
+Timo Schmid <info at bluec0re.eu>
+Víðir Valberg Guðmundsson <vidir.valberg at orn.li>
+dak180 <dak180 at users.sourceforge.net>
+Akbar Gumbira <akbargumbira at gmail.com>
+Alex Holmes <alex.holmes at isotoma.com>
+Andi McClure <andi.m.mcclure at gmail.com>
+Andres Lowrie <andres.lowrie at gmail.com>
+Artem Tikhomirov <artem.tikhomirov at syntevo.com>
+Brian Visel <eode at eptitude.net>
+Bruce Duncan <Bruce.Duncan at ed.ac.uk>
+Bruno Renié <brutasse at gmail.com>
+Chaiwat Suttipongsakul <cwt at bashell.com>
+Chris Bunney <crbunney at users.noreply.github.com>
+Chris Reid <chris at reidsy.com>
+Daniele Sluijters <daniele.sluijters at gmail.com>
+David Bennett <davbennett at google.com>
+David Blewett <davidb at sixfeetup.com>
+David Carr <david at carrclan.us>
+Dirk <dirk at opani.com>
+Elan Ruusamäe <glen at delfi.ee>
+Forrest Hopkins <fingerheroes at gmail.com>
+Hal Wine <hal.wine at gmail.com>
+Hans Kolek <hkolek at gmail.com>
+Jakub Wilk <jwilk at jwilk.net>
+JonChu <jchonphoenix at gmail.com>
+Kostis Anagnostopoulos <ankostis at gmail.com>
+Kyle Kelly <kkelly at yelp.com>
+Lionel Flandrin <lionel at svkt.org>
+Max Bowsher <_ at maxb.eu>
+Mike Williams <miwilliams at google.com>
+Mikhail Terekhov <terekhov at emc.com>
+Nix <nix at esperi.co.uk>
+OnMaster <wme at CONTACT.DE>
+Pascal Quantin <pascal.quantin at gmail.com>
+Ricardo Salveti <ricardo.salveti at openbossa.org>
+Rod Cloutier <rodcloutier at gmail.com>
+Sam Vilain <svilain at saymedia.com>
+Stefano Rivera <stefano at rivera.za.net>
+Steven Myint <git at stevenmyint.com>
+Søren Løvborg <sorenl at unity3d.com>
+Travis Cline <travis.cline at gmail.com>
+Victor Stinner <vstinner at redhat.com>
+Volodymyr Holovko <vholovko at gmail.com>
+Yuval Langer <yuval.langer at gmail.com>
+codingtony <tony.bussieres at gmail.com>
+jon bain <jsbain at yahoo.com>
+kwatters <kwatters at tagged.com>
+max <max0d41 at github.com>
+Segev Finer <segev208 at gmail.com>
+fviolette <fviolette at talend.com>
+dzhuang <dzhuang.scut at gmail.com>
+Antoine Pietri <antoine.pietri1 at gmail.com>
 
-Hervé Cauwelier <herve at itaapy.com> wrote the original tutorial.
-
-See the revision history for a full list of contributors.
+If you contributed but are missing from this list, please send me an e-mail.
diff --git a/Makefile b/Makefile
index dee0a3c..d8783cb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 PYTHON = python
 PYFLAKES = pyflakes
 PEP8 = pep8
+FLAKE8 ?= flake8
 SETUP = $(PYTHON) setup.py
 PYDOCTOR ?= pydoctor
 TESTRUNNER ?= unittest
@@ -57,6 +58,9 @@ flakes:
 pep8:
 	$(PEP8) dulwich
 
+style:
+	$(FLAKE8) --exclude=build,.git,build-pypy,.tox
+
 before-push: check
 	git diff origin/master | $(PEP8) --diff
 
diff --git a/NEWS b/NEWS
index 3d416eb..2247bda 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,56 @@
+0.18.0	2017-07-31
+
+ BUG FIXES
+
+  * Fix remaining tests on Windows. (Jelmer Vernooij, #493)
+
+  * Fix build of C extensions with Python 3 on Windows.
+    (Jelmer Vernooij)
+
+  * Pass 'mkdir' argument onto Repo.init_bare in Repo.clone.
+    (Jelmer Vernooij, #504)
+
+  * In ``dulwich.porcelain.add``, if no files are specified,
+    add from current working directory rather than repository root.
+    (Jelmer Vernooij, #521)
+
+  * Properly deal with submodules in 'porcelain.status'.
+    (Jelmer Vernooij, #517)
+
+  * ``dulwich.porcelain.remove`` now actually removes files from
+    disk, not just from the index. (Jelmer Vernooij, #488)
+
+  * Fix handling of "reset" command with markers and without
+    "from". (Antoine Pietri)
+
+  * Fix handling of "merge" command with markers. (Antoine Pietri)
+
+  * Support treeish argument to porcelain.reset(), rather than
+    requiring a ref/commit id. (Jelmer Vernooij)
+
+  * Handle race condition when mtime doesn't change between writes/reads.
+    (Jelmer Vernooij, #541)
+
+  * Fix ``dulwich.porcelain.show`` on commits with Python 3.
+    (Jelmer Vernooij, #532)
+
+ IMPROVEMENTS
+
+  * Add basic support for reading ignore files in ``dulwich.ignore``.
+    ``dulwich.porcelain.add`` and ``dulwich.porcelain.status`` now honor
+    ignores. (Jelmer Vernooij, Segev Finer, #524, #526)
+
+  * New ``dulwich.porcelain.check_ignore`` command.
+    (Jelmer Vernooij)
+
+  * ``dulwich.porcelain.status`` now supports a ``ignored`` argument.
+    (Jelmer Vernooij)
+
+ DOCUMENTATION
+
+  * Clarified docstrings for Client.{send_pack,fetch_pack} implementations.
+    (Jelmer Vernooij, #523)
+
 0.17.3	2017-03-20
 
  PLATFORM SUPPORT
@@ -12,62 +65,62 @@
 
  BUG FIXES
 
- * Add workaround for
-   https://bitbucket.org/pypy/pypy/issues/2499/cpyext-pystring_asstring-doesnt-work,
-   fixing Dulwich when used with C extensions on pypy < 5.6. (Victor Stinner)
+  * Add workaround for
+    https://bitbucket.org/pypy/pypy/issues/2499/cpyext-pystring_asstring-doesnt-work,
+    fixing Dulwich when used with C extensions on pypy < 5.6. (Victor Stinner)
 
- * Properly quote config values with a '#' character in them.
-   (Jelmer Vernooij, #511)
+  * Properly quote config values with a '#' character in them.
+    (Jelmer Vernooij, #511)
 
 0.17.1	2017-03-01
 
  IMPROVEMENTS
 
- * Add basic 'dulwich pull' command. (Jelmer Vernooij)
+  * Add basic 'dulwich pull' command. (Jelmer Vernooij)
 
  BUG FIXES
 
- * Cope with existing submodules during pull.
-   (Jelmer Vernooij, #505)
+  * Cope with existing submodules during pull.
+    (Jelmer Vernooij, #505)
 
 0.17.0	2017-03-01
 
  TEST FIXES
 
- * Skip test that requires sync to synchronize filesystems if os.sync is
-   not available. (Koen Martens)
+  * Skip test that requires sync to synchronize filesystems if os.sync is
+    not available. (Koen Martens)
 
  IMPROVEMENTS
 
- * Implement MemoryRepo.{set_description,get_description}.
-   (Jelmer Vernooij)
+  * Implement MemoryRepo.{set_description,get_description}.
+    (Jelmer Vernooij)
 
- * Raise exception in Repo.stage() when absolute paths are
-   passed in. Allow passing in relative paths to
-   porcelain.add().(Jelmer Vernooij)
+  * Raise exception in Repo.stage() when absolute paths are
+    passed in. Allow passing in relative paths to
+    porcelain.add().(Jelmer Vernooij)
 
  BUG FIXES
 
- * Handle multi-line quoted values in config files.
-   (Jelmer Vernooij, #495)
+  * Handle multi-line quoted values in config files.
+    (Jelmer Vernooij, #495)
 
- * Allow porcelain.clone of repository without HEAD.
-   (Jelmer Vernooij, #501)
+  * Allow porcelain.clone of repository without HEAD.
+    (Jelmer Vernooij, #501)
 
- * Support passing tag ids to Walker()'s include argument.
-   (Jelmer Vernooij)
+  * Support passing tag ids to Walker()'s include argument.
+    (Jelmer Vernooij)
 
- * Don't strip trailing newlines from extra headers.
-   (Nicolas Dandrimont)
+  * Don't strip trailing newlines from extra headers.
+    (Nicolas Dandrimont)
 
- * Set bufsize=0 for subprocess interaction with SSH client.
-   Fixes hangs on Python 3. (René Stern, #434)
+  * Set bufsize=0 for subprocess interaction with SSH client.
+    Fixes hangs on Python 3. (René Stern, #434)
 
- * Don't drop first slash for SSH paths, except for those
-   starting with "~". (Jelmer Vernooij, René Stern, #463)
+  * Don't drop first slash for SSH paths, except for those
+    starting with "~". (Jelmer Vernooij, René Stern, #463)
 
- * Properly log off after retrieving just refs.
-   (Jelmer Vernooij)
+  * Properly log off after retrieving just refs.
+    (Jelmer Vernooij)
 
 0.16.3	2016-01-14
 
@@ -505,51 +558,51 @@ API CHANGES
 
  IMPROVEMENTS
 
- * Add support for recursive add in 'git add'.
-   (Ryan Faulkner, Jelmer Vernooij)
+  * Add support for recursive add in 'git add'.
+    (Ryan Faulkner, Jelmer Vernooij)
 
- * Add porcelain 'list_tags'. (Ryan Faulkner)
+  * Add porcelain 'list_tags'. (Ryan Faulkner)
 
- * Add porcelain 'push'. (Ryan Faulkner)
+  * Add porcelain 'push'. (Ryan Faulkner)
 
- * Add porcelain 'pull'. (Ryan Faulkner)
+  * Add porcelain 'pull'. (Ryan Faulkner)
 
- * Support 'http.proxy' in HttpGitClient.
-   (Jelmer Vernooij, #1096030)
+  * Support 'http.proxy' in HttpGitClient.
+    (Jelmer Vernooij, #1096030)
 
- * Support 'http.useragent' in HttpGitClient.
-   (Jelmer Vernooij)
+  * Support 'http.useragent' in HttpGitClient.
+    (Jelmer Vernooij)
 
- * In server, wait for clients to send empty list of
-   wants when talking to empty repository.
-   (Damien Tournoud)
+  * In server, wait for clients to send empty list of
+    wants when talking to empty repository.
+    (Damien Tournoud)
 
- * Various changes to improve compatibility with
-   Python 3. (Gary van der Merwe)
+  * Various changes to improve compatibility with
+    Python 3. (Gary van der Merwe)
 
  BUG FIXES
 
- * Support unseekable 'wsgi.input' streams.
-   (Jonas Haag)
+  * Support unseekable 'wsgi.input' streams.
+    (Jonas Haag)
 
- * Raise TypeError when passing unicode() object
-   to Repo.__getitem__.
-   (Jonas Haag)
+  * Raise TypeError when passing unicode() object
+    to Repo.__getitem__.
+    (Jonas Haag)
 
- * Fix handling of `reset` command in dulwich.fastexport.
-   (Jelmer Vernooij, #1249029)
+  * Fix handling of `reset` command in dulwich.fastexport.
+    (Jelmer Vernooij, #1249029)
 
- * In client, don't wait for server to close connection
-   first. Fixes hang when used against GitHub
-   server implementation. (Siddharth Agarwal)
+  * In client, don't wait for server to close connection
+    first. Fixes hang when used against GitHub
+    server implementation. (Siddharth Agarwal)
 
- * DeltaChainIterator: fix a corner case where an object is inflated as an
-   object already in the repository.
-   (Damien Tournoud, #135)
+  * DeltaChainIterator: fix a corner case where an object is inflated as an
+    object already in the repository.
+    (Damien Tournoud, #135)
 
- * Stop leaking file handles during pack reload. (Damien Tournoud)
+  * Stop leaking file handles during pack reload. (Damien Tournoud)
 
- * Avoid reopening packs during pack cache reload. (Jelmer Vernooij)
+  * Avoid reopening packs during pack cache reload. (Jelmer Vernooij)
 
  API CHANGES
 
@@ -559,63 +612,63 @@ API CHANGES
 
  IMPROVEMENTS
 
- * Add porcelain 'tag'. (Ryan Faulkner)
+  * Add porcelain 'tag'. (Ryan Faulkner)
 
- * New module `dulwich.objectspec` for parsing strings referencing
-   objects and commit ranges. (Jelmer Vernooij)
+  * New module `dulwich.objectspec` for parsing strings referencing
+    objects and commit ranges. (Jelmer Vernooij)
 
- * Add shallow branch support. (milki)
+  * Add shallow branch support. (milki)
 
- * Allow passing urllib2 `opener` into HttpGitClient.
-   (Dov Feldstern, #909037)
+  * Allow passing urllib2 `opener` into HttpGitClient.
+    (Dov Feldstern, #909037)
 
  CHANGES
 
- * Drop support for Python 2.4 and 2.5. (Jelmer Vernooij)
+  * Drop support for Python 2.4 and 2.5. (Jelmer Vernooij)
 
  API CHANGES
 
- * Remove long deprecated ``Repo.commit``, ``Repo.get_blob``,
-   ``Repo.tree`` and ``Repo.tag``. (Jelmer Vernooij)
+  * Remove long deprecated ``Repo.commit``, ``Repo.get_blob``,
+    ``Repo.tree`` and ``Repo.tag``. (Jelmer Vernooij)
 
- * Remove long deprecated ``Repo.revision_history`` and ``Repo.ref``.
-   (Jelmer Vernooij)
+  * Remove long deprecated ``Repo.revision_history`` and ``Repo.ref``.
+    (Jelmer Vernooij)
 
- * Remove long deprecated ``Tree.entries``. (Jelmer Vernooij)
+  * Remove long deprecated ``Tree.entries``. (Jelmer Vernooij)
 
  BUG FIXES
 
- * Raise KeyError rather than TypeError when passing in
-   unicode object of length 20 or 40 to Repo.__getitem__.
-   (Jelmer Vernooij)
+  * Raise KeyError rather than TypeError when passing in
+    unicode object of length 20 or 40 to Repo.__getitem__.
+    (Jelmer Vernooij)
 
- * Use 'rm' rather than 'unlink' in tests, since the latter
-   does not exist on OpenBSD and other platforms.
-   (Dmitrij D. Czarkoff)
+  * Use 'rm' rather than 'unlink' in tests, since the latter
+    does not exist on OpenBSD and other platforms.
+    (Dmitrij D. Czarkoff)
 
 0.9.4	2013-11-30
 
  IMPROVEMENTS
 
- * Add ssh_kwargs attribute to ParamikoSSHVendor. (milki)
+  * Add ssh_kwargs attribute to ParamikoSSHVendor. (milki)
 
- * Add Repo.set_description(). (Víðir Valberg Guðmundsson)
+  * Add Repo.set_description(). (Víðir Valberg Guðmundsson)
 
- * Add a basic `dulwich.porcelain` module. (Jelmer Vernooij, Marcin Kuzminski)
+  * Add a basic `dulwich.porcelain` module. (Jelmer Vernooij, Marcin Kuzminski)
 
- * Various performance improvements for object access.
+  * Various performance improvements for object access.
    (Jelmer Vernooij)
 
- * New function `get_transport_and_path_from_url`,
-   similar to `get_transport_and_path` but only
-   supports URLs.
-   (Jelmer Vernooij)
+  * New function `get_transport_and_path_from_url`,
+    similar to `get_transport_and_path` but only
+    supports URLs.
+    (Jelmer Vernooij)
 
- * Add support for file:// URLs in `get_transport_and_path_from_url`.
-   (Jelmer Vernooij)
+  * Add support for file:// URLs in `get_transport_and_path_from_url`.
+    (Jelmer Vernooij)
 
- * Add LocalGitClient implementation.
-   (Jelmer Vernooij)
+  * Add LocalGitClient implementation.
+    (Jelmer Vernooij)
 
  BUG FIXES
 
@@ -919,11 +972,11 @@ FEATURES
   * Smart protocol clients can now change refs even if they are
     not uploading new data. (Jelmer Vernooij, #855993)
 
- * Don't compile C extensions when running in pypy.
-   (Ronny Pfannschmidt, #881546)
+  * Don't compile C extensions when running in pypy.
+    (Ronny Pfannschmidt, #881546)
 
- * Use different name for strnlen replacement function to avoid clashing
-   with system strnlen. (Jelmer Vernooij, #880362)
+  * Use different name for strnlen replacement function to avoid clashing
+    with system strnlen. (Jelmer Vernooij, #880362)
 
  API CHANGES
 
@@ -1521,4 +1574,4 @@ note: This list is most likely incomplete for 0.6.0.
 
 0.1.0	2009-01-24
 
- * Initial release.
+  * Initial release.
diff --git a/PKG-INFO b/PKG-INFO
index e5831e1..db0c926 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,9 +1,9 @@
 Metadata-Version: 1.1
 Name: dulwich
-Version: 0.17.3
+Version: 0.18.0
 Summary: Python Git Library
 Home-page: https://www.dulwich.io/
-Author: Jelmer Vernooij
+Author: UNKNOWN
 Author-email: jelmer at jelmer.uk
 License: Apachev2 or later or GPLv2
 Description: 
@@ -13,8 +13,8 @@ Description:
               All functionality is available in pure Python. Optional
               C extensions can be built for improved performance.
         
-              The project is named after the part of London that Mr. and Mrs. Git live in
-              in the particular Monty Python sketch.
+              The project is named after the part of London that Mr. and Mrs. Git live
+              in in the particular Monty Python sketch.
               
 Keywords: git
 Platform: UNKNOWN
@@ -28,4 +28,5 @@ Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Operating System :: POSIX
+Classifier: Operating System :: Microsoft :: Windows
 Classifier: Topic :: Software Development :: Version Control
diff --git a/README.md b/README.md
index 876eac0..389e194 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
 [![Build Status](https://travis-ci.org/jelmer/dulwich.png?branch=master)](https://travis-ci.org/jelmer/dulwich)
+[![Windows Build status](https://ci.appveyor.com/api/projects/status/cnothr6pxprfx2lf/branch/master?svg=true)](https://ci.appveyor.com/project/jelmer/dulwich-njb6g/branch/master)
 
 This is the Dulwich project.
 
@@ -27,6 +28,35 @@ or if you are installing from pip::
 
     $ pip install dulwich --global-option="--pure"
 
+Getting started
+---------------
+
+Dulwich comes with both a lower-level API and higher-level plumbing ("porcelain").
+
+For example, to use the lower level API to access the commit message of the
+last commit:
+
+    >>> from dulwich.repo import Repo
+    >>> r = Repo('.')
+    >>> r.head()
+    '57fbe010446356833a6ad1600059d80b1e731e15'
+    >>> c = r[r.head()]
+    >>> c
+    <Commit 015fc1267258458901a94d228e39f0a378370466>
+    >>> c.message
+    'Add note about encoding.\n'
+
+And to print it using porcelain:
+
+    >>> from dulwich import porcelain
+    >>> porcelain.log('.', max_entries=1)
+    --------------------------------------------------
+    commit: 57fbe010446356833a6ad1600059d80b1e731e15
+    Author: Jelmer Vernooij <jelmer at jelmer.uk>
+    Date:   Sat Apr 29 2017 23:57:34 +0000
+
+    Add note about encoding.
+
 Further documentation
 ---------------------
 
@@ -44,6 +74,14 @@ There is a *#dulwich* IRC channel on the [Freenode](https://www.freenode.net/),
 and [dulwich-discuss](https://groups.google.com/forum/#!forum/dulwich-discuss)
 mailing lists.
 
+Contributing
+------------
+
+For a full list of contributors, see the git logs or [AUTHORS](AUTHORS).
+
+If you'd like to contribute to Dulwich, see the [CONTRIBUTING](CONTRIBUTING.md)
+file and [list of open issues](https://github.com/jelmer/dulwich/issues).
+
 Supported versions of Python
 ----------------------------
 
diff --git a/appveyor.yml b/appveyor.yml
index 9ee4162..c401fb8 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,35 +1,96 @@
 environment:
+
   matrix:
+
     - PYTHON: "C:\\Python27"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win32-py2.7.exe"
+      PYTHON_VERSION: "2.7.x"
+      PYTHON_ARCH: "32"
 
-    - PYTHON: "C:\\Python34"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win32-py3.4.exe"
+    - PYTHON: "C:\\Python27-x64"
+      PYTHON_VERSION: "2.7.x"
+      PYTHON_ARCH: "64"
 
-    - PYTHON: "C:\\Python35"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win32-py3.5.exe"
+    - PYTHON: "C:\\Python33"
+      PYTHON_VERSION: "3.3.x"
+      PYTHON_ARCH: "32"
 
-    - PYTHON: "C:\\Python27-x64"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win-amd64-py2.7.exe"
+    - PYTHON: "C:\\Python33-x64"
+      PYTHON_VERSION: "3.3.x"
+      PYTHON_ARCH: "64"
+      DISTUTILS_USE_SDK: "1"
+
+    - PYTHON: "C:\\Python34"
+      PYTHON_VERSION: "3.4.x"
+      PYTHON_ARCH: "32"
 
     - PYTHON: "C:\\Python34-x64"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win-amd64-py3.4.exe"
+      PYTHON_VERSION: "3.4.x"
+      PYTHON_ARCH: "64"
+      DISTUTILS_USE_SDK: "1"
+
+    - PYTHON: "C:\\Python35"
+      PYTHON_VERSION: "3.5.x"
+      PYTHON_ARCH: "32"
 
     - PYTHON: "C:\\Python35-x64"
-      PYWIN32_URL: "https://downloads.sourceforge.net/project/pywin32/pywin32/Build%20220/pywin32-220.win-amd64-py3.5.exe"
+      PYTHON_VERSION: "3.5.x"
+      PYTHON_ARCH: "64"
+
+    - PYTHON: "C:\\Python36"
+      PYTHON_VERSION: "3.6.x"
+      PYTHON_ARCH: "32"
+
+    - PYTHON: "C:\\Python36-x64"
+      PYTHON_VERSION: "3.6.x"
+      PYTHON_ARCH: "64"
 
 install:
-  - ps: (new-object net.webclient).DownloadFile($env:PYWIN32_URL, 'c:\\pywin32.exe')
-  - "%PYTHON%/Scripts/easy_install.exe c:\\pywin32.exe"
-  - "%PYTHON%/Scripts/easy_install.exe wheel"
+  # If there is a newer build queued for the same PR, cancel this one.
+  # The AppVeyor 'rollout builds' option is supposed to serve the same
+  # purpose but it is problematic because it tends to cancel builds pushed
+  # directly to master instead of just PR builds (or the converse).
+  # credits: JuliaLang developers.
+  - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
+        https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
+        Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
+          throw "There are newer queued builds for this pull request, failing early." }
+  - ECHO "Filesystem root:"
+  - ps: "ls \"C:/\""
+
+  - ECHO "Installed SDKs:"
+  - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
+
+  # Install Python (from the official .msi of http://python.org) and pip when
+  # not already installed.
+  - ps: if (-not(Test-Path($env:PYTHON))) { & appveyor\install.ps1 }
+
+  # Prepend newly installed Python to the PATH of this build (this cannot be
+  # done from inside the powershell script as it would require to restart
+  # the parent CMD process).
+  - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
+
+  # Check that we have the expected version and architecture for Python
+  - "build.cmd %PYTHON%\\python.exe --version"
+  - "build.cmd %PYTHON%\\python.exe -c \"import struct; print(struct.calcsize('P') * 8)\""
+
+  # Install setuptools/wheel so that we can e.g. use bdist_wheel
+  - "pip install setuptools wheel"
+
+  - "build.cmd %PYTHON%\\python.exe setup.py develop"
 
-build: off
+build_script:
+  # Build the compiled extension
+  - "build.cmd %PYTHON%\\python.exe setup.py build"
 
 test_script:
-  - "%WITH_COMPILER% %PYTHON%/python setup.py test"
+  - "build.cmd %PYTHON%\\python.exe setup.py test"
 
 after_test:
-  - "%WITH_COMPILER% %PYTHON%/python setup.py bdist_wheel"
+  - "build.cmd %PYTHON%\\python.exe setup.py bdist_wheel"
+  # http://stackoverflow.com/questions/43255455/unicode-character-causing-error-with-bdist-wininst-on-python-3-but-not-python-2
+  # - "python setup.py bdist_wininst"
+  - "build.cmd %PYTHON%\\python.exe setup.py bdist_msi"
+  - ps: "ls dist"
 
 artifacts:
   - path: dist\*
diff --git a/bin/dulwich b/bin/dulwich
index b9a2465..cd1764f 100755
--- a/bin/dulwich
+++ b/bin/dulwich
@@ -507,6 +507,18 @@ class cmd_remote(Command):
         return cmd_kls(args[1:])
 
 
+class cmd_check_ignore(Command):
+
+    def run(self, args):
+        parser = optparse.OptionParser()
+        options, args = parser.parse_args(args)
+        ret = 1
+        for path in porcelain.check_ignore('.', args):
+            print(path)
+            ret = 0
+        return ret
+
+
 class cmd_help(Command):
 
     def run(self, args):
@@ -532,6 +544,7 @@ For a list of supported commands, see 'dulwich help -a'.
 commands = {
     "add": cmd_add,
     "archive": cmd_archive,
+    "check-ignore": cmd_check_ignore,
     "clone": cmd_clone,
     "commit": cmd_commit,
     "commit-tree": cmd_commit_tree,
diff --git a/docs/conf.py b/docs/conf.py
index 872db62..9fef29e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -3,7 +3,8 @@
 # dulwich documentation build configuration file, created by
 # sphinx-quickstart on Thu Feb 18 23:18:28 2010.
 #
-# This file is execfile()d with the current directory set to its containing dir.
+# This file is execfile()d with the current directory set to its containing
+# dir.
 #
 # Note that not all possible configuration values are present in this
 # autogenerated file.
@@ -11,7 +12,8 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-import sys, os
+import os
+import sys
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -20,10 +22,10 @@ sys.path.insert(0, os.path.abspath('..'))
 sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__))))
 dulwich = __import__('dulwich')
 
-# -- General configuration -----------------------------------------------------
+# -- General configuration ----------------------------------------------------
 
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
 extensions = ['sphinx.ext.autodoc']
 try:
     import rst2pdf
@@ -42,7 +44,7 @@ templates_path = ['templates']
 source_suffix = '.txt'
 
 # The encoding of source files.
-#source_encoding = 'utf-8'
+#         source_encoding = 'utf-8'
 
 # The master toctree document.
 master_doc = 'index'
@@ -62,72 +64,73 @@ release = '.'.join(map(str, dulwich.__version__))
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
-#language = None
+# language = None
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
-#today = ''
+# today = ''
 # Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
+# today_fmt = '%B %d, %Y'
 
 # List of documents that shouldn't be included in the build.
-#unused_docs = []
+# unused_docs = []
 
 # List of directories, relative to source directory, that shouldn't be searched
 # for source files.
 exclude_trees = ['build']
 
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
 
 # If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
+# add_function_parentheses = True
 
 # If true, the current module name will be prepended to all description
 # unit titles (such as .. function::).
-#add_module_names = True
+# add_module_names = True
 
 # If true, sectionauthor and moduleauthor directives will be shown in the
 # output. They are ignored by default.
-#show_authors = False
+# show_authors = False
 
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
 
 # A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
+# modindex_common_prefix = []
 
 
-# -- Options for HTML output ---------------------------------------------------
+# -- Options for HTML output -------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  Major themes that come with
 # Sphinx are currently 'default' and 'sphinxdoc'.
-#html_theme = 'default'
+# html_theme = 'default'
 html_theme = 'nature'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
-#html_theme_options = {}
+# html_theme_options = {}
 
 # Add any paths that contain custom themes here, relative to this directory.
 html_theme_path = ['theme']
 
 # The name for this set of Sphinx documents.  If None, it defaults to
 # "<project> v<release> documentation".
-#html_title = None
+# html_title = None
 
 # A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
+# html_short_title = None
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
-#html_logo = None
+# html_logo = None
 
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
... 9912 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/dulwich.git



More information about the Python-modules-commits mailing list