| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
functionality. Update trailers tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GitPython parses the output of `git diff --numstat` to get the
files changed in a commit.
This breaks when a commit contains a file rename, because the output
of `git diff` is different than expected.
This is the output of a normal commit:
$ git diff --numstat 8f41a390bf9a^ 8f41a390bf9a
30 5 test/test_repo.py
And this a commit containing a rename:
$ git diff --numstat 185d847ec764^ 185d847ec764
3 1 .github/workflows/{test_pytest.yml => Future.yml}
This can be triggered by this code:
for commit in repo.iter_commits():
print(commit.hexsha)
for file in commit.stats.files:
print(file)
Which will print for the normal commit:
8f41a390bf9a54db6f85032bc56b453307b95451
'test/test_repo.py'
And when there is a rename:
185d847ec7647fd2642a82d9205fb3d07ea71715
'.github/workflows/{test_pytest.yml => Future.yml}'
Additionally, when a path member is removed, the file list become
a list of strings, breaking even more the caller. This is in the
Linux kernel tree:
$ git diff --numstat db401875f438^ db401875f438
1 1 tools/testing/selftests/drivers/net/mlxsw/{spectrum-2 => }/devlink_trap_tunnel_ipip6.sh
and GitPython parses it as:
db401875f438168c5804b295b93a28c7730bb57a
('tools/testing/selftests/drivers/net/mlxsw/{spectrum-2 => '
'}/devlink_trap_tunnel_ipip6.sh')
Fix this by pasing the --no-renames option to `git diff` which ignores
renames and print the same output as if the file was deleted from the
old path and created in the new one:
$ git diff --numstat --no-renames 185d847ec764^ 185d847ec764
57 0 .github/workflows/Future.yml
0 55 .github/workflows/test_pytest.yml
|
| |
|
| |
|
|
|
|
| |
_from_string classmethod.
|
|
|
|
| |
message for designated co-authors, include a simple test.
|
| |
|
|
|
|
|
| |
That way people who use it won't be deterred, while it unifies style
everywhere.
|
|
|
| |
Found via `codespell -q 3 -S ./git/ext/gitdb,./test/fixtures/reflog_master,./test/fixtures/diff_mode_only,./test/fixtures/reflog_HEAD`
|
| |
|
|
|
|
|
|
|
| |
The whitespace handling and trailer selection isn't very trivial or good
documented. It therefore seemed easier and less error prone to just call
git to parse the message for the trailers section and remove superfluos
whitespaces.
|
|
|
|
|
|
|
|
| |
With the command `git interpret-trailers` git provides a way to interact
with trailer lines in the commit messages that look similar to RFC 822
e-mail headers (see: https://git-scm.com/docs/git-interpret-trailers).
The new property returns those parsed trailer lines from the message as
dictionary.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
fix errors
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a replace method to git.Commit. The replace method returns a
copy of the Commit object with attributes replaced from keyword
arguments. For example:
>>> old = repo.head.commit
>>> new = old.replace(message='This is a test')
closes #1123
|
|
|
|
|
|
|
| |
The iterator used to yield Commit() objects, which does not play well
with inheritance. Yield cls() instead.
Signed-off-by: Yuri Volchkov <yuri@volch.org>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Fixes issue #806: Commit requires author parameter to be of Actor type, not string.
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
ankostis-cygwin
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
+ Mark all unused vars and other non-pep8 (PyDev) warnings
+ test_utils:
+ enable & fix forgotten IterableList looped path.
+ unittestize all assertions.
+ remote: minor fix progress dispatching unknown err-lines
|
|
|
|
|
|
|
| |
Assure that gpgsig is not initialized with None
to allow the automatic deserialization to kick in.
Fixes #500
|
| |
|
|
|
|
|
|
| |
Previously, GitPython chokes on this while decoding. Rather than
choking, instead accept the error and replace the invalid bytes by the
� (\x80) char.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds 2 properties to commits. Their values are derived from the
existing data stored on them, but this makes them more conveniently
queryable:
- authored_datetime
- committed_datetime
These return "aware" datetimes, so they are effectively companions to
their raw timestamp equivalents, respectively `authored_date` and
`committed_date`.
These datetime instances are convenient structures since they show the
author-local commit date and their UTC offset.
|
|
|
|
| |
Related to #362
|
| |
|
|
|
|
|
|
|
|
| |
When the code is run without setting up loggers, the loggers have no
handlers for the emitted messages. The logging module displays:
`No handlers could be found for logger "git.cmd"` on the
console. By adding a NullHandler (a no-op) the message disappears,
and doesn't affect logging when other handlers are configured.
|
| |
|