| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Since the URL is passed directly to git clone, and the remote-ext helper
will happily execute shell commands, so by default disallow URLs that
contain a "::" unless a new unsafe_protocols kwarg is passed.
(CVE-2022-24439)
Fixes #1515
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces a potential fix for #1490 and #1483, in which an
`invalid literal for int() with base 10: 'n'` exception was raised
within a diff operation. Within `_handle_diff_line()`, we split the
output of `git diff-tree` on colons (`:` characters), under the
assumption that there are no colons within the paths of the files being
diffed. On POSIX systems this is not a valid assumption. The fix is to
split on `\x00:`, since a null character always precedes the colons we
actually need to split on.
A test already existed for this case (`test_diff_file_with_colon()`),
but it was marked as skipped.
* Split on `\x00:` instead of `:` in `_handle_diff_line()`.
* Unskip `test_diff_file_with_colon()`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `git blame` CLI offers a repeated `-C` option that can be used to detect
lines that move within/between files. While a slower operation, it yields more
accurate authorship reports.
https://git-scm.com/docs/git-blame#Documentation/git-blame.txt--Cltnumgt
While GitPython does enable passing custom kwargs to the command line `git`
invocation, the fact that kwargs is a dictionary (i.e. no duplicate keys) means
that there was no way to request the `-C` option in `git blame` more than once.
This commit adds an optional `rev_opts` parameter to the `blame` method which
accepts a list of strings to propagate to the CLI invocation of `git blame`. By
using a `List[str]` for `rev_opts`, users of GitPython can pass now the `-C`
option multiple times to get more detailed authorship reports from `git blame`.
|
| |
|
| |
|
|
|
|
| |
regex.
|
|
|
|
| |
message for designated co-authors, include a simple test.
|
| |
|
|\
| |
| | |
Fix blob filter types
|
| | |
|
| | |
|
|/
|
|
|
|
| |
If you pass the "message" kwarg, it also translates it to an -m command
line flag, and with both -m and --message, the message appears twice.
I will fix this in the next commit.
|
|
|
| |
Got the wrong one the first time.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Close #1382
|
| |
|
|
|
|
|
| |
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`
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This commit adds the `strip_newline` flag to the `Git.execute` method.
When this flag is set to `True`, it will trim the trailing `\n`. The
default value is `True` for backward compatibility. Setting it to
`False` is helpful for, e.g., the `git show` output, especially with the binary
file, as the missing `\n` may invalidate the file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix #971. Partly resolve #703.
If the hook doesn't have a file extension, then Windows won't know how
to run it and you'll get "[WinError 193] %1 is not a valid Win32
application". It's very likely that it's a shell script of some kind, so
use bash.exe (commonly installed via Windows Subsystem for Linux). We
don't want to run all hooks with bash because they could be .bat files.
Update tests to get several hook ones working. More work necessary to
get commit-msg hook working. The hook writes to the wrong file because
it's not using forward slashes in the path:
C:\Users\idbrii\AppData\Local\Temp\bare_test_commit_msg_hook_successy5fo00du\CUsersidbriiAppDataLocalTempbare_test_commit_msg_hook_successy5fo00duCOMMIT_EDITMSG
|
|
|
|
|
|
|
| |
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 reverts commit 53d94b8091b36847bb9e495c76bb5a3ec2a2fdb5.
The reason for the revert is that the commit in question introduced a
regression where certain modules, functions and classes that were
exposed before were no longer exposed.
See https://github.com/gitpython-developers/GitPython/pull/1352#issuecomment-932757204
for additional information.
|
|
|
|
|
|
|
| |
All `from <module> import *` has now been replaced by
`from <module> import X, Y, ...`.
Contributes to #1349
|
|
|
|
| |
tests use it
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|