|
c1aca3fe
|
2021-07-06T23:25:13
|
|
Initial pass at using int64_t instead of long long
Even on systems without C99 where long long and stdint are both
missing, we can shim stdint and point it to any compiler-specific
type (i.e long long, _int64, etc.).
Also next is constant suffixes and determining what needs to
include stdint.
|
|
6c78fd06
|
2021-07-02T18:30:07
|
|
Merge pull request #5915 from novalis/executable
Consider files executable only if the user can execute them
|
|
992f65f7
|
2021-07-02T18:27:59
|
|
Merge pull request #5916 from boretrk/doc
Update from regex to pcre licensing information in docs/contributing.md
|
|
ed4a12ae
|
2021-07-02T18:27:14
|
|
Merge pull request #5917 from tiennou/fix/docurium-issues
docs: fix some missing includes that cause Docurium to error out
|
|
e1674766
|
2021-06-29T12:26:04
|
|
Merge pull request #5929 from jacquesg/winhttp
Define WINHTTP_NO_CLIENT_CERT_CONTEXT if needed
|
|
a2cd10e5
|
2021-06-26T18:52:21
|
|
define WINHTTP_NO_CLIENT_CERT_CONTEXT if needed
|
|
416ea5b4
|
2021-06-25T14:58:06
|
|
README: libera.chat not Freenode
|
|
e2d2a03e
|
2021-06-25T14:49:46
|
|
Merge pull request #5925 from Batchyx/batchyx/master-to-main-doc
docs: stop mentioning libgit2's "master" branch
|
|
9eeee00f
|
2021-06-25T14:49:33
|
|
Update docs/release.md
Co-authored-by: lhchavez <lhchavez@lhchavez.com>
|
|
a2cd66be
|
2021-06-23T16:57:48
|
|
docs: stop mentioning libgit2's "master" branch
The name of libgit2's main branch is now "main" but contributing.md and
release.md still reference "master" as the main branch. Fix it.
|
|
045031bb
|
2021-06-17T19:56:00
|
|
Update from regex to pcre licensing information
|
|
b0fd4cf8
|
2021-06-16T13:38:45
|
|
Consider files executable only if the user can execute them
This is what git.git does, so we should follow suit.
|
|
0d0150d8
|
2021-06-15T07:42:20
|
|
Merge pull request #5910 from arxanas/patch-1
|
|
1bdd937d
|
2021-06-14T17:25:35
|
|
Update index.h
|
|
6efcfdb8
|
2021-06-15T00:15:27
|
|
Merge pull request #5900 from dtolnay-contrib/lstat
Tolerate readlink size less than st_size
|
|
9ecbff12
|
2021-06-15T00:11:25
|
|
Merge pull request #5903 from punkymaniac/patch-documentation
Patch documentation
|
|
0b3f6da4
|
2021-06-13T16:42:00
|
|
Fix misleading doc for `git_index_find`
In https://github.com/libgit2/libgit2/pull/5723/files/fc46dc06f52f854f74371682f911f13856c68edb#r540092847, I was confused by the semantics of `git_index_find`. The documentation says both that it returns the output value in `at_pos` and that it returns it directly as an `int`. This is incorrect; the return value is only returned via `at_pos`.
|
|
a2fa9a57
|
2021-06-02T14:49:33
|
|
Add some missing documentation about return value
|
|
eeacd234
|
2021-06-02T14:47:24
|
|
Fix struct indentation
|
|
8b79a3f9
|
2021-06-02T14:46:12
|
|
Remove bad space in documentation
|
|
75defb75
|
2021-05-18T10:51:20
|
|
Add documentation about GIT_OPT_GET_USER_AGENT
|
|
868f4bcb
|
2021-05-31T21:06:37
|
|
Merge pull request #5897 from tiennou/fix/coding-style-comment
|
|
cf9196bd
|
2021-05-30T10:42:25
|
|
Tolerate readlink size less than st_size
|
|
3e178547
|
2021-05-27T16:26:38
|
|
docs: fix some missing includes that cause Docurium to error out
|
|
a25cba2c
|
2021-05-27T10:01:55
|
|
docs: fix incorrect comment marker
|
|
1ee3c37f
|
2021-05-19T09:31:30
|
|
Merge branch 'pr/5853'
|
|
319ff349
|
2021-05-18T20:49:40
|
|
Merge pull request #5892 from libgit2/ethomson/memleak
tests: clean up memory leak, fail on leak for win32
|
|
6b1f6e00
|
2021-05-18T12:21:15
|
|
diff: test ignore-blank-lines
|
|
1b1e541d
|
2021-05-18T11:52:51
|
|
tests: clean up refs::races zero oid test
|
|
a6fb72a8
|
2021-05-18T11:51:25
|
|
tests: exit with error on win32 leakcheck
|
|
b5dcdad3
|
2021-05-16T12:53:58
|
|
Merge pull request #5852 from implausible/httpclient/skip-entire-body
Fix issues with Proxy Authentication after httpclient refactor
|
|
3532c5f4
|
2021-05-16T11:29:47
|
|
Merge pull request #5850 from punkymaniac/comment-format
Fix documentation formatting
|
|
9ccb900d
|
2021-05-16T11:14:44
|
|
Merge pull request #5831 from todaysoftware/bindings/libgit2-delphi
Update README.md for additional Delphi bindings
|
|
58944388
|
2021-05-16T11:11:56
|
|
Merge branch 'zero_oid_in_old'
Manually merging #5842
|
|
cf323cb9
|
2021-05-16T11:09:44
|
|
refs: test git_reference_create_matching failure for zero oid
|
|
be95f684
|
2021-05-13T19:03:00
|
|
Merge pull request #5839 from staktrace/find_similar
|
|
2d24690c
|
2021-04-15T07:48:43
|
|
Add testcase
|
|
4c462bb6
|
2021-04-13T13:20:34
|
|
diff: Fix bug in git_diff_find_similar.
When a split src gets turned into a rename, it should
also lose the IS_RENAME_TARGET flag, so that it doesn't
get processed in a subsequent iteration as a rename target.
Doing so can cause an assertion failure because it no
longer has the SPLIT flag.
Fixes #5811.
|
|
3473a088
|
2021-05-12T11:48:23
|
|
httpclient: no proxy creds in requests if proxy is CONNECT type
|
|
049618ce
|
2021-04-30T15:11:54
|
|
httpclient: git_http_client_skip_body should drain socket of body
|
|
ff78aea6
|
2021-05-11T11:09:31
|
|
Merge pull request #5860 from libgit2/ethomson/buf_text
buf: remove unnecessary buf_text namespace
|
|
05548e66
|
2021-05-11T11:09:23
|
|
Merge pull request #5859 from libgit2/ethomson/filter_buf
filter: stop taking git_buf as user input
|
|
14f6950b
|
2021-05-10T23:14:17
|
|
buf: bom enum is in the buf namespace
Instead of a `git_bom_t` that a `git_buf` function returns, let's keep
it `git_buf_bom_t`.
|
|
d525e063
|
2021-05-10T23:04:59
|
|
buf: remove internal `git_buf_text` namespace
The `git_buf_text` namespace is unnecessary and strange. Remove it,
just keep the functions prefixed with `git_buf`.
|
|
31d9c24b
|
2021-05-06T16:32:14
|
|
filter: internal git_buf filter handling function
Introduce `git_filter_list__convert_buf` which behaves like the old
implementation of `git_filter_list__apply_data`, where it might move the
input data buffer over into the output data buffer space for efficiency.
This new implementation will do so in a more predictible way, always
freeing the given input buffer (either moving it to the output buffer or
filtering it into the output buffer first).
Convert internal users to it.
|
|
68b9605a
|
2021-05-06T15:37:31
|
|
filter: deprecate git_filter_list_apply_to_data
Deprecate `git_filter_list_apply_to_data` as it takes user input as a
`git_buf`. Users should use `git_filter_list_apply_to_buffer` instead.
|
|
5309b465
|
2021-05-06T15:24:30
|
|
filter: introduce git_filter_list_apply_to_buffer
Provide a filter application mechanism that takes a user-provided string
and length, instead of a `git_buf`.
|
|
26846f4c
|
2021-05-06T15:19:58
|
|
filter: remove git_buf sharing in `git_filter_list_apply_to_data`
The API `git_filter_list_apply_to_data` shares data between its out and
in parameters to avoid unnecessarily copying it when there are no
filters to apply. However, it does so in a manner that is potentially
confusing, leaving both `git_buf`s populated with data. This is risky
for end-users who have to know how to deal with this. Instead, we
remove this optimization - users who want to avoid unnecessary copies
can use the longstanding streaming API or check the filter status before
invoking the filters.
|
|
9869f1e5
|
2021-05-06T02:19:49
|
|
filter: deprecate git_filter_list_stream_data
`git_filter_list_stream_data` takes user input in a `git_buf`.
`git_buf` should only be used when libgit2 itself needs to allocate data
and returned to a user that they can free when they wish. Replace it
with `git_filter_list_stream_buffer` that takes a data buffer and
length.
|
|
4bd17208
|
2021-05-06T02:28:14
|
|
Merge pull request #5858 from libgit2/ethomson/memleaks
test: clean up memory leaks
|
|
b31795ef
|
2021-05-06T01:46:19
|
|
test: clean up memory leaks
|
|
754fd358
|
2021-05-06T01:42:04
|
|
Merge pull request #5857 from libgit2/ethomson/longpaths
Support `core.longpaths` on Windows
|
|
33667c14
|
2021-05-05T23:59:05
|
|
win32: add file and get status on a long path
|
|
f8921ab9
|
2021-05-05T23:26:24
|
|
win32: ensure core.longpaths is honored for workdir paths
|
|
69c65b9a
|
2019-12-31T12:38:03
|
|
path: bump most Win32 unicode buffer sizes from MAX_PATH to GIT_PATH_MAX
|
|
5368be30
|
2021-05-05T23:01:57
|
|
clar: support long paths on Windows
|
|
525516b4
|
2021-05-04T12:42:27
|
|
Merge pull request #5855 from libgit2/ethomson/ci
ci: use GitHub for storing mingw-w64 build dependency
|
|
7ad81a42
|
2021-05-04T12:23:17
|
|
ci: use GitHub for storing mingw-w64 build dependency
|
|
c44f5688
|
2021-05-02T10:27:56
|
|
Merge pull request #5823 from libgit2/ethomson/path_validation
Working directory path validation
|
|
ed94f549
|
2021-05-01T20:26:49
|
|
diff:add option to ignore blank line changes
|
|
1016ad4f
|
2021-04-15T01:31:12
|
|
path: don't join paths in git_path_find_dir
Let `git_path_find_dir` simply take a `git_buf` that contains a
directory or a file, instead of trying to both join a path AND then deal
with prettifying it or its basename. This allows consumers to join
paths themselves (and apply any necessary rules - like fitting within
MAX_PATH).
|
|
717df1a4
|
2021-04-15T01:23:07
|
|
worktree: validate worktree paths
Worktree paths need to fix within MAX_PATH always, regardless of
`core.longpaths` setting.
|
|
f3bcadd2
|
2021-04-05T10:57:49
|
|
submodule: validate path lengths
Validate that working directory paths honor `core.longpaths` where
appropriate. Paths to the submodule gitdirs must always honor the
operating system length restrictions; `core.longpaths` does not affect
gitdir paths.
|
|
b457fe27
|
2021-04-04T22:18:55
|
|
iterator: validate workdir paths
Supply the repository for the filesystem and workdir iterators - for
workdir iterators, this is non-null and we can lookup the core.longpaths
configuration option. (For regular filesystem iterators, this is NULL,
so core.longpaths does not apply.)
|
|
289aaa41
|
2021-04-04T20:46:40
|
|
ignore: validate workdir paths for ignore files
|
|
9fb755d5
|
2021-04-04T19:59:57
|
|
attr: validate workdir paths for attribute files
We should allow attribute files - inside working directories - to have
names longer than MAX_PATH when core.longpaths is set.
`git_attr_path__init` takes a repository to validate the path with.
|
|
e52c2989
|
2021-04-04T19:46:08
|
|
repository: validate workdir path lengths
|
|
4470e48a
|
2021-04-04T14:24:35
|
|
workdir: validate working directory entry path length
|
|
91156a0f
|
2021-04-04T10:44:29
|
|
diff: use git_repository_workdir_path
The new git_repository_workdir_path function does error checking on
working directory inputs on Windows; use it to construct paths within
working directories.
|
|
578aeba9
|
2021-03-20T17:00:33
|
|
use git_repository_workdir_path to generate paths
Use `git_repository_workdir_path` to generate workdir paths since it
will validate the length.
|
|
99ddfd5c
|
2021-03-20T16:54:09
|
|
checkout: validate path length
Ensure that we are validating working directory paths before we try to
write to them.
|
|
6b878db5
|
2021-03-20T16:44:08
|
|
checkout: use target path; don't assume workdir
We're not necessarily checking out into the working directory. We could
be checking out into an arbitrary location. Ensure that when we are
writing conflict data that we do it in the checkout target.
|
|
c15ed350
|
2021-04-26T12:23:25
|
|
repo: validate repository paths
Ensure that a repository's path (at initialization or open time) is
valid. On Windows systems, this means that the longest known path
beneath the repository will fit within MAX_PATH: this is a lock file for
a loose object within the repository itself.
Other paths, like a very long loose reference, may fail to be opened
after the repository is opened. These variable length paths will be
checked when they are accessed themselves. This new functionality is
done at open to prevent needlessly checking every file in the gitdir
(eg, `MERGE_HEAD`) for its length when we could instead check once at
repository open time.
|
|
3589587d
|
2021-04-24T13:11:25
|
|
repo: factor the commondir detection
|
|
e5851c62
|
2021-04-24T09:44:45
|
|
refs: ensure loose refs adhere to path validation
On Windows, we need to enforce MAX_PATH for loose references and their
reflogs. Ensure that any path - including the lock file - would fit
within the 260 character maximum.
We do not honor core.longpaths for loose reference files or reflogs.
core.longpaths only applies to paths in the working directory.
|
|
50e01216
|
2021-03-20T16:39:29
|
|
repo: introduce git_repository_workdir_path
Add a simple accessor for workdir paths to get an absolute on-disk path
given a repository and a relative path within it. This is useful to
avoid copy-pasta `git_buf_joinpath` and to ensure that we validate
working directory paths while honoring `core.longpaths` settings.
|
|
dbc03de4
|
2021-03-20T14:28:25
|
|
apply: ensure we validate paths
There was no test ensuring that we validate `.git` paths. We do, but
let's add a test to make sure that we never regress this.
|
|
dc1ba018
|
2021-03-20T13:01:00
|
|
path: introduce ondisk and workdir path validation
Introduce `git_path_validate_filesystem` which validates (absolute) on-disk
paths and `git_path_validate_workdir` to perform validations on (absolute)
working directory paths. These functions are useful as there may be system
limitations on on-disk paths, particularly on Windows (for example,
enforcing MAX_PATH).
For working directory paths, these limitations may be per-repository, based
on the `core.longpaths` configuration setting.
|
|
330b24d7
|
2021-04-21T15:46:28
|
|
Fix typo
|
|
58697f6a
|
2021-04-21T15:44:39
|
|
Uniformise documentation return code separator
|
|
51cb4390
|
2021-04-21T15:34:50
|
|
Fix documentation formatting
The return code description use '-' char as list of return value.
But with the generation of the documentation the char '-' create an
ambiguous return code value who seem an negative value.
|
|
95b7a639
|
2021-04-14T21:52:36
|
|
git_reference_create_matching: Treat all-zero OID as "must be absent"
This is pretty useful in avoiding races: I want to create a ref only if
it doesn't already exist. I can't check first because of TOCTOU -- by
the time I finish the check, someone else might have already created
the ref. And I can't take a lock because then I can't do the create,
since the create expects to take the lock.
The semantics are inspired by git update-ref, which allows an all-zero old
value to mean that the ref must not exist.
|
|
cabfa3b3
|
2021-04-20T09:12:58
|
|
Merge pull request #5843 from tniessen/src-fix-typos-in-headers
src: fix typos in header files
|
|
3fa8ec52
|
2021-04-18T20:30:13
|
|
src: fix typos in header files
|
|
88323cd0
|
2021-03-20T09:52:17
|
|
path: git_path_isvalid -> git_path_validate
If we want to validate more and different types of paths, the name
`git_path_validate` makes that easier and more expressive. We can add,
for example, `git_path_validate_foo` while the current name makes that
less ergonomic.
|
|
78abfb17
|
2021-04-05T10:59:02
|
|
docs: document core.longpaths support
|
|
cb136cdd
|
2021-04-14T22:22:11
|
|
utf8: introduce git_utf8_char_length
Introduce a function to determine the number of Unicode characters in a
given UTF-8 string.
|
|
1d95b59b
|
2021-04-14T15:47:27
|
|
utf8: refactor utf8 functions
Move the utf8 functions into a proper namespace `git_utf8` instead of
being in the namespaceless `git__` function group. Update them to
have out-params first and use `char *` instead of `uint8_t *` to match
our API treating strings as `char *` (even if they truly contain `uchar`s
inside).
|
|
ac77d306
|
2021-04-13T17:00:37
|
|
Merge pull request #5834 from libgit2/cmn/repo-no-passthrough
repo: remove an inappropriate use of PASSTHROUGH
|
|
d05eda87
|
2021-04-13T11:48:27
|
|
Merge pull request #5835 from libgit2/cmn/branch-or-ref
repo: specify init.defaultbranch is meant to be a branch name
|
|
a1e5e268
|
2021-04-13T11:47:52
|
|
Merge pull request #5836 from tniessen/tests-var-name-list-c
tests: fix variable name in list.c
|
|
9f295e21
|
2021-04-13T11:47:01
|
|
Merge pull request #5838 from mjsir911/msirabella/entrycount_typo_fix
Fix diff_entrycount -> diff_num_deltas doc typo
|
|
96585597
|
2021-04-12T23:52:03
|
|
Fix diff_entrycount -> diff_num_deltas doc typo
This just fixes a typo in the documentation, actual rename change was
done in 5f69a31f
|
|
52447c5c
|
2021-04-11T23:16:37
|
|
tests: fix variable name in list.c
|
|
631fe56f
|
2021-04-11T21:22:33
|
|
repo: specify init.defaultbranch is meant to be a branch name
We don't want the default branch's refname here but its name as branch.
Returning an error saying it's not a valid reference here suggests we want the
value of `init.defaultbranch` to be something like `refs/heads/default` which is
not the case.
|
|
6591deef
|
2021-04-11T14:27:14
|
|
repo: remove an inappropriate use of PASSTHROUGH
This error code is for callbacks where we should act as though the callback was
not set. This is not something that makes sense for a `_foreach` and checking
for that error message to bubble up mostly is happenstance precisely because
this is not an error code we expect in the callback.
As part of removing this, let's also remove a use of foreach as we can open-code
this check.
|
|
34b9a04c
|
2021-04-02T10:31:55
|
|
Merge pull request #5832 from ianhattendorf/fix/repo-is-empty-empty-config-defaultbranch
Default to GIT_BRANCH_DEFAULT if init.defaultBranch is empty string
|
|
7891e153
|
2021-04-01T11:34:38
|
|
Default to GIT_BRANCH_DEFAULT if init.defaultBranch is empty string
We already do this in repo_init_head
|
|
f05de9cb
|
2021-03-26T10:22:08
|
|
Update README.md for additional Delphi bindings
Delphi/Free pascal bindings targeting the latest version of libgit2
|
|
50836140
|
2021-03-20T10:10:05
|
|
Merge pull request #5821 from punkymaniac/example-duplicate-line
Remove duplicate line, in example code
|