<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/gitpython.git/git/test/test_diff.py, branch 2.1.0</title>
<subtitle>github.com: gitpython-developers/GitPython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/'/>
<entry>
<title>src: import os.path as osp</title>
<updated>2016-10-16T00:46:31+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-10-15T11:11:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=0210e394e0776d0b7097bf666bebd690ed0c0e4f'/>
<id>0210e394e0776d0b7097bf666bebd690ed0c0e4f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cygwin, #533: polish abs-paths in `git add` commands</title>
<updated>2016-10-16T00:45:55+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-10-14T16:21:17+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=a2d248bb8362808121f6b6abfd316d83b65afa79'/>
<id>a2d248bb8362808121f6b6abfd316d83b65afa79</id>
<content type='text'>
+ Modify TCs - no main-code changes.
+ FIXed:
  + `TestSubmodule.test_git_submodules_and_add_sm_with_new_commit()`
  + TestDiff.test_diff_with_staged_file()

- Cygwin TCs failing:
  - PY2: err: 12, fail: 2
  - PY3: err: 11, fail: 2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ Modify TCs - no main-code changes.
+ FIXed:
  + `TestSubmodule.test_git_submodules_and_add_sm_with_new_commit()`
  + TestDiff.test_diff_with_staged_file()

- Cygwin TCs failing:
  - PY2: err: 12, fail: 2
  - PY3: err: 11, fail: 2
</pre>
</div>
</content>
</entry>
<entry>
<title>io, dif: #519: FIX DIFF freeze when reading from GIL</title>
<updated>2016-09-28T01:35:38+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-09-27T23:05:38+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=a5db3d3c49ebe559cb80983d7bb855d4adf1b887'/>
<id>a5db3d3c49ebe559cb80983d7bb855d4adf1b887</id>
<content type='text'>
+ CAUSE: In Windows, Diffs freeze while reading Popen streams,
probably buffers smaller; good-thin(TM) in this case because reading a
Popen-proc from the launching-thread freezes GIL.  The alternative to
use `proc.communicate()` also relies on big buffers.
+ SOLUTION: Use `cmd.handle_process_output()` to consume Diff-proc
streams.
+ Retroffited `handle_process_output()` code to support also
byte-streams, both Threading(Windows) and Select/Poll (Posix) paths
updated.

- TODO: Unfortunately, `Diff._index_from_patch_format()` still slurps
input; need to re-phrase header-regexes linewise to resolve it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ CAUSE: In Windows, Diffs freeze while reading Popen streams,
probably buffers smaller; good-thin(TM) in this case because reading a
Popen-proc from the launching-thread freezes GIL.  The alternative to
use `proc.communicate()` also relies on big buffers.
+ SOLUTION: Use `cmd.handle_process_output()` to consume Diff-proc
streams.
+ Retroffited `handle_process_output()` code to support also
byte-streams, both Threading(Windows) and Select/Poll (Posix) paths
updated.

- TODO: Unfortunately, `Diff._index_from_patch_format()` still slurps
input; need to re-phrase header-regexes linewise to resolve it.
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Start using `ddt` library for TCs</title>
<updated>2016-09-28T01:35:38+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-09-27T21:57:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=467416356a96148bcb01feb771f6ea20e5215727'/>
<id>467416356a96148bcb01feb771f6ea20e5215727</id>
<content type='text'>
+ DataDriven TCs for identifying which separate case failed.
+ appveyor: rework matrix, conda3.4 cannot install in develop mode
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ DataDriven TCs for identifying which separate case failed.
+ appveyor: rework matrix, conda3.4 cannot install in develop mode
</pre>
</div>
</content>
</entry>
<entry>
<title>Win, #519: FIX with_rw_directory() to remove read-only dirs</title>
<updated>2016-09-28T01:35:38+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-09-27T20:07:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=137ee6ef22c4e6480f95972ef220d1832cdc709a'/>
<id>137ee6ef22c4e6480f95972ef220d1832cdc709a</id>
<content type='text'>
+ Stop using gitdb's respective helper.
+ Fix files chmod(555) which CANNOT DELETE on Windows (but do on Linux).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ Stop using gitdb's respective helper.
+ Fix files chmod(555) which CANNOT DELETE on Windows (but do on Linux).
</pre>
</div>
</content>
</entry>
<entry>
<title>win, #519: proc.terminate() instead of kill(SIGTERM)</title>
<updated>2016-09-26T18:54:15+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-09-26T17:44:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=29eb301700c41f0af7d57d923ad069cbdf636381'/>
<id>29eb301700c41f0af7d57d923ad069cbdf636381</id>
<content type='text'>
+ test_diff: replace asserts with unittest-asserts.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ test_diff: replace asserts with unittest-asserts.</pre>
</div>
</content>
</entry>
<entry>
<title>win: GC.collect on all TC.tearDown to fix appveyor hang runs</title>
<updated>2016-09-26T11:37:16+00:00</updated>
<author>
<name>Kostis Anagnostopoulos</name>
<email>ankostis@gmail.com</email>
</author>
<published>2016-09-25T16:08:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=51bf7cbe8216d9a1da723c59b6feece0b1a34589'/>
<id>51bf7cbe8216d9a1da723c59b6feece0b1a34589</id>
<content type='text'>
+ Fixed the hangs at `test_git:TestGit.test_handle_process_output()`.
[travisci skip]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ Fixed the hangs at `test_git:TestGit.test_handle_process_output()`.
[travisci skip]
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(diff): use explicit change-type if possible</title>
<updated>2016-07-23T14:45:40+00:00</updated>
<author>
<name>Sebastian Thiel</name>
<email>byronimo@gmail.com</email>
</author>
<published>2016-07-23T14:38:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=4006c4347788a078051dffd6b197bb0f19d50b86'/>
<id>4006c4347788a078051dffd6b197bb0f19d50b86</id>
<content type='text'>
That way, we do not have to figure the change type out by
examining the diff object.

It's implemented in a way that should yield more desireable results
as we keep the change-type that git is providing us with.

Fixes #493
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
That way, we do not have to figure the change type out by
examining the diff object.

It's implemented in a way that should yield more desireable results
as we keep the change-type that git is providing us with.

Fixes #493
</pre>
</div>
</content>
</entry>
<entry>
<title>Store raw path bytes in Diff instances</title>
<updated>2016-06-14T21:09:22+00:00</updated>
<author>
<name>Vincent Driessen</name>
<email>me@nvie.com</email>
</author>
<published>2016-06-14T20:44:11+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=3ee291c469fc7ea6065ed22f344ed3f2792aa2ca'/>
<id>3ee291c469fc7ea6065ed22f344ed3f2792aa2ca</id>
<content type='text'>
Previously, the following fields on Diff instances were assumed to be
passed in as unicode strings:

  - `a_path`
  - `b_path`
  - `rename_from`
  - `rename_to`

However, since Git natively records paths as bytes, these may
potentially not have a valid unicode representation.

This patch changes the Diff instance to instead take the following
equivalent fields that should be raw bytes instead:

  - `a_rawpath`
  - `b_rawpath`
  - `raw_rename_from`
  - `raw_rename_to`

NOTE ON BACKWARD COMPATIBILITY:
The original `a_path`, `b_path`, etc. fields are still available as
properties (rather than slots).  These properties now dynamically decode
the raw bytes into a unicode string (performing the potentially
destructive operation of replacing invalid unicode chars by "�"'s).
This means that all code using Diffs should remain backward compatible.
The only exception is when people would manually construct Diff
instances by calling the constructor directly, in which case they should
now pass in bytes rather than unicode strings.

See also the discussion on
https://github.com/gitpython-developers/GitPython/pull/467
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the following fields on Diff instances were assumed to be
passed in as unicode strings:

  - `a_path`
  - `b_path`
  - `rename_from`
  - `rename_to`

However, since Git natively records paths as bytes, these may
potentially not have a valid unicode representation.

This patch changes the Diff instance to instead take the following
equivalent fields that should be raw bytes instead:

  - `a_rawpath`
  - `b_rawpath`
  - `raw_rename_from`
  - `raw_rename_to`

NOTE ON BACKWARD COMPATIBILITY:
The original `a_path`, `b_path`, etc. fields are still available as
properties (rather than slots).  These properties now dynamically decode
the raw bytes into a unicode string (performing the potentially
destructive operation of replacing invalid unicode chars by "�"'s).
This means that all code using Diffs should remain backward compatible.
The only exception is when people would manually construct Diff
instances by calling the constructor directly, in which case they should
now pass in bytes rather than unicode strings.

See also the discussion on
https://github.com/gitpython-developers/GitPython/pull/467
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't choke on (legitimately) invalidly encoded Unicode paths</title>
<updated>2016-06-06T10:16:11+00:00</updated>
<author>
<name>Vincent Driessen</name>
<email>me@nvie.com</email>
</author>
<published>2016-06-06T10:13:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/python-packages/gitpython.git/commit/?id=200d3c6cb436097eaee7c951a0c9921bfcb75c7f'/>
<id>200d3c6cb436097eaee7c951a0c9921bfcb75c7f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
