| 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
|
| |
|
|
|
|
| |
regex.
|
|
|
|
| |
message for designated co-authors, include a simple test.
|
| |
|
|
|
|
|
| |
That way people who use it won't be deterred, while it unifies style
everywhere.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
This should ensure that tests are NOT packaged into
release package by setuptools, as tests are development
only
+ fixtures after moving
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
This should ensure that tests are NOT packaged into
release package by setuptools, as tests are development
only
+ fixtures after moving
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
|
|
|
|
| |
adjusted
|
|
|
|
|
|
| |
TestCase scetched out for now
tests: Added tests to verify that objects don't have a dict. Previously, due to a missing __slots__ member in Serializable, most objects would indeed have a dict, although the opposite was intended
|
|
|
|
| |
tests to work with the new directory structure
|
|
|