| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\
| |
| | |
Support repeated kwargs
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Some Git command line options are allowed to be repeated multiple times.
Examples of this are the -C flag which may occur more than once to
"strengthen" its effect, or the -L flag on Git blames, to select
multiple blocks of lines to blame.
$ git diff -C -C HEAD~1 HEAD
$ git blame -L 1-3 -L 12-18 HEAD -- somefile.py
This patch supports passing a list/tuple as the value part for kwargs,
so that the generated Git command contain the repeated options.
|
|\
| |
| | |
Fix diff patch parsing
|
| |
| |
| |
| |
| | |
When both old/new mode and rename from/to lines are found, they will
appear in different order.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This makes sure we're not matching a \n here by accident. It's now
almost the same as the original that used \S+, except that spaces are
not eaten at the end of the string (for files that end in a space).
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The a_path and b_path cannot reliably be read from the first diff line
as it's ambiguous. From the git-diff manpage:
> The a/ and b/ filenames are the same unless rename/copy is involved.
> Especially, **even for a creation or a deletion**, /dev/null is not
> used in place of the a/ or b/ filenames.
This patch changes the a_path and b_path detection to read it from the
more reliable locations further down the diff headers. Two use cases
are fixed by this:
- As the man page snippet above states, for new/deleted files the a
or b path will now be properly None.
- File names with spaces in it are now properly parsed.
Working on this patch, I realized the --- and +++ lines really belong to
the diff header, not the diff contents. This means that when parsing
the patch format, the --- and +++ will now be swallowed, and not end up
anymore as part of the diff contents. The diff contents now always
start with an @@ line.
This may be a breaking change for some users that rely on this
behaviour. However, those users could now access that information more
reliably via the normal Diff properties a_path and b_path now.
|
|\
| |
| | |
Enrich incremental blame output
|
| |\
| |/
|/|
| | |
enrich-incremental-blame-output
|
|\ \
| | |
| | | |
Add support for diffing against root commit
|
| |\ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
In response to
https://github.com/gitpython-developers/GitPython/pull/408/files/5de21c7fa2bdd5cd50c4f62ba848af54589167d0..aae2a7328a4d28077a4b4182b4f36f19c953765b#r59722704
|
| | |
| | |
| | |
| | | |
Since support was dropped.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This alternative API does not prevent users from using the valid treeish
"root".
|
| | | |
|
| | |
| | |
| | |
| | | |
This enabled getting diff patches for root commits.
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| | |
Returning this now to avoid having to change the function's return value
structure later on if we want to emit more information.
|
|/ |
|
|\
| |
| |
| |
| | |
Remove assertion over fetch refspec when explicitly specified
Fixes #396
|
| | |
|
|\ \
| | |
| | | |
Add incremental blame support
|
| | |
| | |
| | |
| | | |
This can be used to pass options like -C or -M.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a sibling method to Repo's blame method:
Repo.blame_incremental(rev, path, **kwargs)
This can alternatively be called using:
Repo.blame(rev, path, incremental=True)
The main difference is that blame incremental is a bit more efficient
and does not return the full file's contents, just the commits and the
line number ranges. The parser is a bit more straight-forward and
faster since the incremental output format is defined a little stricter.
|
|\ \ \
| |/ /
|/| | |
fix(index): avoid recursing endlessly in add()
|
| | | |
|
|/ /
| |
| |
| | |
Issue #407
|
|\ \
| | |
| | | |
Make sure .read() and friends always return bytes
|
| | | |
|
|/ / |
|
|\ \
| |/
|/| |
Support universal wheels
|
|/ |
|
|
|
|
| |
Related to #396
|
|
|
|
| |
Fixes #394
|
|\
| |
| | |
Split diff line by '\t' for metadata and path
|
| |
| |
| |
| |
| |
| | |
This tests the edge case of doing a diff against a single whitespace
filename and returns the proper change type. All other normal usage of
this diff classmethod should remain unchanged.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This protects against `.split(None)` which uses consecutive whitespace
as a separator to overlook paths where a single space is the filename.
For example, in this diff line:
line = ':100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
0000000000000000000000000000000000000000 D '
The deleted file is a file named ' ' (just one space). It's entirely
possible to commit this, remove, and to produce the following output
from `git diff`:
git diff --name-status <SHA1> <SHA2>
D
M path/to/another/file.py
...
This would cause the initial `.split(None, 5)` to fail as it will count
all consecutive whitespace as a separator, disregarding the ' ' (single
space) filename.
|
|\
| |
| | |
Fix it's vs its in tutorial.rst
|
|/ |
|
|\
| |
| | |
config parsers as context mangers can now be reentered for locks
|
|/ |
|
|\
| |
| | |
fix(cmd): Use buffered reads
|
| |
| |
| | |
Popen defaults to using unbuffered reads, which are extremely slow.
|