All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Don't require usable temp dir to get installation config When running
git config -l ...to find the configuration file path associated with thegitinstallation itself, the current working directory for the subprocess was set to the current directory prior to #1523, and to/tmpor a/tmp-like directory since #1523 (which improved performance and security).This builds on #1523, as well as on subsequent changes to run
gitin a way that its behavior depends less on its CWD, by making an even more robust choice of CWD for the subprocess, so that the CWD is less likely to be deeply nested or on network storage; more likely to exist; and, on Unix-like systems, less likely to contain a.gitentry (though agitwith security updates should refuse to take any configuration from such a repository unless it is owned by the user).Due to a combination of other measures that harden against malicious or unusual contents (especially setting
GIT_DIR), the most significant benefit of this change is to fix the problem that a nonexistent temp dir would prevent the command from succeeding.The main way that could happen is if
TMPDIRon Unix-like systems, orTMPorTEMPon Windows, is set to an incorrect value. Because these variables are sometimes reasonable to customize for specific purposes, it is plausible for them to be set to incorrect values by accident.Except on Windows, this always uses
/as the CWD for the subprocess.On Windows, we use the Windows directory (usually
C:\Windows) rather than the root of the system drive (usuallyC:\), because:- We are currently obtaining this information from environment variables, and it is possible for our own parent process to pass down an overly sanitized environment.
Although this can be so sanitized we cannot find the Windows directory, this is less likely to occur than being unable to find the root of the system drive.
This due to moderately broad awareness that the
SystemRootenvironment variable (which, somewhat confusingly, holds the path of the Windows directory, not the root of the system drive) should be preserved even when clearing most other variables.Some libraries will even automatically preserve
SystemRootwhen clearing others or restore it. For example: -
Under the current behavior of
env::temp_dir(), which is now a fallback if we cannot determine the Windows directory, we already fall back to the Windows directory evenutally, if temp dir related environment variables are also unset.This is because
env::temp_dir()usually callsGetTempDir2in the Windows API, which implements that fallback behavior (after first trying the user's user profile directory).Avoiding adding yet another place to fall back to that would not otherwise be attempted slightly decreases behavioral complexity, and there is no reason to think a directory like
C:\would work when a directory likeC:\Windowsdoesn't. -
The root of the system drive on a Windows system usually permits limited user accounts to create new directories there, so a directory like
C:\on Windows actually has most of the disadvantages of a location like/tmpon a Unix-like system.- https://github.com/git-for-windows/git/security/advisories/GHSA-vw2c-22j4-2fh2
- https://github.com/Byron/gitoxide/security/advisories/GHSA-mgvv-9p9g-3jv4
This is actually a much less significant reason to prefer a directory like
C:\Windowsto a directory likeC:\than it might seem. After all, ifC:\.gitexists and andgituses it when run fromC:\, thengitwould usually also use it when run fromC:\Windows(and from numerous other locations)!However, the reason there is still a small reason to prefer a location like
C:\Windowsto a location likeC:\is that, if a system has a vulnerablegitbut a user or system administrator has sought to work around it by listingC:\inGIT_CEILING_DIRECTORIES, then that may keepgitfrom traversing upward intoC:\, but it would not keepC:\from being used if that is where we already are.An even more significant reason this motivation is a minor one is that the other measures we are taking, including setting
GIT_DIR, should be sufficient to avoid at least the security dimension of the problem, which arises from actually using the configuration from a repo that is discovered.
-
The user profile directory may be more deeply nested.
-
The user profile directory may sometimes be on slow network storage when the discovered Windows directory is not.
-
In some situations, the user profile directory does not actually exist, or does not exist yet.
-
Overly sanitized environments are more likely to lack the
USERPROFILEvairable than theSystemRootvariable. -
Users may occasionally choose to have their entire user profile directory be a Git repository.
-
It's no easier to avoid the problem of using
C:\.gitin a user profile directory than inC:\Windows: they're usually both underC:\, and are both not the same asC:\. (If the user profile directory is a repository, then that will avoid that problem, yet be its own problem, if not for other measures that prevent both.) -
If the
gitcommand is an old and unpatched vulnerable version in whichsafe.directoryis not yet implemented, or in which https://github.com/git/git/security/advisories/GHSA-j342-m5hw-rr3v or other vulnerabilities wheregitwould perform operations on untrusted local repositories owned by other users are unpatched, then a.gitsubdirectory of a shared/tmpor/tmp-like directory could be created by another account, and its local configuration would still have been used. (This is not a bug in gitoxide per se; having vulnerable software installed that other software may use is inherently insecure. But it is nice to offer a small amount of protection against this when readily feasible.) -
If the
/tmp-like location is a Git repository owned by the current user, then its local configuration would have been used. -
Parsing is more reliable for paths containing unusual characters, because
-z/--nullcauses all paths to be output literally.Previously,
"characters were trimmed from the ends, but this would not always extract a correct path, because when a path contains characters that causegitto enclose it in double quotes, those characters are usually represented in a symbolic form, usually with\escapes.In some scenarios, such as usually on Windows when the escaped character is itself a
\and not in the leading position, the mangled path would be usable, but more often it would not. -
The volume of output is less, because
--name-onlycasues values not to be included in the output. -
The combination of
-z/--nulland--name-onlymakes the output format simpler, and the parsing logic is accordingly simpler.
- 56 commits contributed to the release.
- 14 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Prepare changelogs prior to release. (
c759819) - Merge pull request #1569 from EliahKagan/config-origin-naming (
3cf9694) - Rename to
GIT_HIGHEST_SCOPE_CONFIG_PATH(0672576) - Merge pull request #1568 from EliahKagan/config-origin-next (
adbaa2a) - Rename
EXE_INFOto something that probably captures its contents better. (dd2d666) - Run
cargo fmt(b11f7db) - Make
EXE_NAMEaconsttoo (fb0b6d8) - Make
NULL_DEVICEaconst, rather than astaticitem (9917d47) - Put
first_file_from_config_with_origintest with related ones (57e9a6f) - Fix indentation nit (
7cd20bb) - Merge pull request #1567 from EliahKagan/config-origin (
dd65e7b) - Improve structure of
exe_infotests (5ac5f74) - Clarify comment about where we run
gitfrom (5200184) - Test no local scope with empty system config (
6160a83) - Don't set/change ceiling directories (
2bce0d2) - Explore also setting a ceiling directory (
073e277) - Fix misstatement of Windows directory rationale (
4e936bc) - Unset a couple env vars just in case (
8f6d39d) - Simplify the new comments (
b827813) - Explain why we run
gitfrom a different directory (7fa5e35) - Small clarity tweaks (
598c487) - Fix
os::windowserror on non-Windows (1305114) - Refactor for readability; clarify comments (
ab0dcc1) - Fix unused import on non-Windows systems (
8472447) - Don't require usable temp dir to get installation config (
f70b904) - Explain why we don't just use
--system(29c6cca) - Explain why we don't just use
--show-scope(f35e44c) - Fix a test name for consistency (
15e7b67) - Add another broken temp test (
c80d562) - Extract nonexistent directory logic to a test helper struct (
e60540f) - Maybe slightly decrease risk of test precondition check failure (
56dab13) - Adjust some test code for clarity (
5c1b4c0) - Check
env::temp_dir()in both tests that set temp vars (79af259) - Clarify assert and expect messages (
703f882) - Test EXE_INFO no local config even if temp dir doesn't exist (
60465a5) - Slightly improve quality of test failure messages (
9641660) - Set GIT_WORK_TREE along with GIT_DIR, to avoid confusion (
5723077) - More robustly ensure "installation" config is not local (
7280a2d) - Check that the test affects
env::temp_dir()as desired (15cec4e) - Fix bug in new test where temp dir should be a repo (
744bb38) - Test EXE_INFO no local config even if temp dir is a repo (
287f267) - Code formatting (
65d5151) - Fix EXE_INFO no local scope test for macOS (
49e0715) - Add generated archive for local_config.sh (
fd065ac) - Test that EXE_INFO never has local scope config (
5a300e6) - Make EXE_INFO testable and add a basic test for it (
1ee98bf) - Reorder gix_path::env::git tests to match order in code (
ccd0401) - Extract git_cmd helper for EXE_INFO (
de2f35f) - Parse installation config path more robustly (
650a1b5) - Comment Git version compatibility for EXE_INFO (
9df57aa) - Merge pull request #1557 from Byron/merge-base (
649f588) - Allow empty-docs (
beba720) - Merge branch 'global-lints' (
37ba461) - Workspace Clippy lint management (
2e0ce50) - Merge pull request #1546 from nyurik/semilocons (
f992fb7) - Add missing semicolons (
ec69c88)
- Prepare changelogs prior to release. (
A maintenance release without user-facing changes.
- 7 commits contributed to the release.
- 35 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.9.0, gix-actor v0.31.6, gix-validate v0.9.0, gix-object v0.43.0, gix-path v0.10.10, gix-attributes v0.22.4, gix-command v0.3.9, gix-packetline-blocking v0.17.5, gix-filter v0.12.0, gix-fs v0.11.3, gix-revwalk v0.14.0, gix-traverse v0.40.0, gix-worktree-stream v0.14.0, gix-archive v0.14.0, gix-ref v0.46.0, gix-config v0.39.0, gix-prompt v0.8.7, gix-url v0.27.5, gix-credentials v0.24.5, gix-ignore v0.11.4, gix-index v0.34.0, gix-worktree v0.35.0, gix-diff v0.45.0, gix-discover v0.34.0, gix-dir v0.7.0, gix-mailmap v0.23.6, gix-negotiate v0.14.0, gix-pack v0.52.0, gix-odb v0.62.0, gix-packetline v0.17.6, gix-transport v0.42.3, gix-protocol v0.45.3, gix-revision v0.28.0, gix-refspec v0.24.0, gix-status v0.12.0, gix-submodule v0.13.0, gix-worktree-state v0.12.0, gix v0.65.0, gix-fsck v0.5.0, gitoxide-core v0.40.0, gitoxide v0.38.0, safety bump 25 crates (
d19af16) - Prepare changelogs prior to release (
0f25841) - Merge pull request #1523 from martinvonz/push-xmsuurxprnnw (
83c9de0) - Remove
--systemfromgit configcall as it fails on MacOS (6b1c243) - Run
git config -lin temp dir when looking up system config (20ef4e9) - Merge branch 'push-ysnqkzlzwuwq' (
e2c747d) - Don't show console on Windows (
087594c)
- Release gix-date v0.9.0, gix-actor v0.31.6, gix-validate v0.9.0, gix-object v0.43.0, gix-path v0.10.10, gix-attributes v0.22.4, gix-command v0.3.9, gix-packetline-blocking v0.17.5, gix-filter v0.12.0, gix-fs v0.11.3, gix-revwalk v0.14.0, gix-traverse v0.40.0, gix-worktree-stream v0.14.0, gix-archive v0.14.0, gix-ref v0.46.0, gix-config v0.39.0, gix-prompt v0.8.7, gix-url v0.27.5, gix-credentials v0.24.5, gix-ignore v0.11.4, gix-index v0.34.0, gix-worktree v0.35.0, gix-diff v0.45.0, gix-discover v0.34.0, gix-dir v0.7.0, gix-mailmap v0.23.6, gix-negotiate v0.14.0, gix-pack v0.52.0, gix-odb v0.62.0, gix-packetline v0.17.6, gix-transport v0.42.3, gix-protocol v0.45.3, gix-revision v0.28.0, gix-refspec v0.24.0, gix-status v0.12.0, gix-submodule v0.13.0, gix-worktree-state v0.12.0, gix v0.65.0, gix-fsck v0.5.0, gitoxide-core v0.40.0, gitoxide v0.38.0, safety bump 25 crates (
-
Don't assume program files folder locations This checks where program files directories are located on a Windows system, which are used for a fallback check after
githas not been found in aPATHsearch (to invokegitto find out information such as the location of its system config file).Previously, two hard-coded paths were used. These were correct for the vast majority of 64-bit Windows systems, but were in practice never correct on 32-bit Windows systems. Checking programmatically for the locations should thus enable detection to succeed on more systems and under more circumstances, and avoid other problems.
- 36 commits contributed to the release.
- 23 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-path v0.10.9 (
15f1cf7) - Merge branch 'program-files' (
ffe6b60) - Refactor (
73ed340) - Move
test::loc'susestatements up (dd53408) - Update/refine comments and do some minor cleanup (
dea1746) - Omit excess punctuation in
expectmessages (76e3b28) - Thanks clippy (
464e0a2) - Add second
super::in non-Windowsalternative_locationstest (8ae54e8) - Don't assume program files folder locations (
15235bf) - Fix test bug generating expected value on 32-bit system (
98db88b) - Put the new tests in their own nested mod (
d254e62) - Rename helper, write its tests (and their helpers), fix a bug (
e990bcd) - Call fewer different things "suffixes" (
de7c49f) - Reorder statements in alternative_locations test for clarity (
4d98535) - Simplify path construction and config; improve comments (
c8b2eb3) - Add the missing
Gitcomponent in the suffixes (1f0c3bf) - Remove a fixme that should no longer be done (
00127a7) - Rename helper; condense huge comment and move into position (
df175bc) - Fix the helper to join the
mingw*/binsubdirs (c486a7d) - Start implementing a helper for ALTERNATIVE_LOCATIONS (
167dc14) - Narrow assert_architectures fixme to just what's left (
e9eabeb) - Adjust GitBinSuffixes so uses in the test method are clearer (
671c476) - Assert that the corresponding suffixes are correct (
5258f7a) - Assert
ALTERNATIVE_LOCATIONScount and prefixes (dd1e5c8) - Rename PathsByRole to ProgramFilesPaths (
3dd1d1f) - Clarify what pf_current represents (
95708dd) - Make PathsByRole::maybe_pf_64bit an Option (
5701145) - Remove extra comment left over from before (
518fd27) - Improve expect and assert messages in PathsByRole::validate() (
5df0cf5) - Revise obtain_envlessly() doc comment for clarity (
a5a5342) - Do a minor simplification now that it's PathBuf (
99a8eb3) - Make ALTERNATIVE_LOCATIONS items PathBuf (
5b206bc) - Start on unit test for ALTERNATIVE_LOCATIONS (
edc1351) - Add dev dependencies for soon to be added unit test (
6af59ca) - Restyle just-changed and related code for clarity (
98b3d90) - Make ALTERNATIVE_LOCATIONS dynamic and OsString-based (
9eaa0d9)
- Release gix-path v0.10.9 (
- provide
env::executable_invocation()to know how to invoke Git. That way we can make it easier to rely on Git even if finding it is a bit more involved.
- 5 commits contributed to the release over the course of 3 calendar days.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
A maintenance release without user-facing changes.
- 4 commits contributed to the release over the course of 4 calendar days.
- 18 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.8.5, gix-hash v0.14.2, gix-trace v0.1.8, gix-utils v0.1.11, gix-features v0.38.1, gix-actor v0.31.0, gix-validate v0.8.4, gix-object v0.42.0, gix-path v0.10.7, gix-glob v0.16.2, gix-quote v0.4.12, gix-attributes v0.22.2, gix-command v0.3.6, gix-filter v0.11.0, gix-fs v0.10.1, gix-chunk v0.4.8, gix-commitgraph v0.24.2, gix-hashtable v0.5.2, gix-revwalk v0.13.0, gix-traverse v0.38.0, gix-worktree-stream v0.11.0, gix-archive v0.11.0, gix-config-value v0.14.6, gix-tempfile v13.1.1, gix-lock v13.1.1, gix-ref v0.43.0, gix-sec v0.10.6, gix-config v0.36.0, gix-prompt v0.8.4, gix-url v0.27.2, gix-credentials v0.24.2, gix-ignore v0.11.2, gix-bitmap v0.2.11, gix-index v0.31.0, gix-worktree v0.32.0, gix-diff v0.42.0, gix-discover v0.31.0, gix-pathspec v0.7.1, gix-dir v0.2.0, gix-macros v0.1.4, gix-mailmap v0.23.0, gix-negotiate v0.13.0, gix-pack v0.49.0, gix-odb v0.59.0, gix-packetline v0.17.4, gix-transport v0.41.2, gix-protocol v0.44.2, gix-revision v0.27.0, gix-refspec v0.23.0, gix-status v0.7.0, gix-submodule v0.10.0, gix-worktree-state v0.9.0, gix v0.60.0, safety bump 26 crates (
b050327) - Prepare changelogs prior to release (
52c3bbd) - Merge branch 'status' (
3e5c974) - Fix lints for nightly, and clippy (
f8ce3d0)
- Release gix-date v0.8.5, gix-hash v0.14.2, gix-trace v0.1.8, gix-utils v0.1.11, gix-features v0.38.1, gix-actor v0.31.0, gix-validate v0.8.4, gix-object v0.42.0, gix-path v0.10.7, gix-glob v0.16.2, gix-quote v0.4.12, gix-attributes v0.22.2, gix-command v0.3.6, gix-filter v0.11.0, gix-fs v0.10.1, gix-chunk v0.4.8, gix-commitgraph v0.24.2, gix-hashtable v0.5.2, gix-revwalk v0.13.0, gix-traverse v0.38.0, gix-worktree-stream v0.11.0, gix-archive v0.11.0, gix-config-value v0.14.6, gix-tempfile v13.1.1, gix-lock v13.1.1, gix-ref v0.43.0, gix-sec v0.10.6, gix-config v0.36.0, gix-prompt v0.8.4, gix-url v0.27.2, gix-credentials v0.24.2, gix-ignore v0.11.2, gix-bitmap v0.2.11, gix-index v0.31.0, gix-worktree v0.32.0, gix-diff v0.42.0, gix-discover v0.31.0, gix-pathspec v0.7.1, gix-dir v0.2.0, gix-macros v0.1.4, gix-mailmap v0.23.0, gix-negotiate v0.13.0, gix-pack v0.49.0, gix-odb v0.59.0, gix-packetline v0.17.4, gix-transport v0.41.2, gix-protocol v0.44.2, gix-revision v0.27.0, gix-refspec v0.23.0, gix-status v0.7.0, gix-submodule v0.10.0, gix-worktree-state v0.9.0, gix v0.60.0, safety bump 26 crates (
- add
relativize_with_prefix(). With it, a path 'a' with prefix 'b' will be '../a'. - add
try_os_str_into_bstr(), withCow<OsStr>as input.
- 6 commits contributed to the release over the course of 16 calendar days.
- 30 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.8.4, gix-utils v0.1.10, gix-actor v0.30.1, gix-object v0.41.1, gix-path v0.10.6, gix-glob v0.16.1, gix-quote v0.4.11, gix-attributes v0.22.1, gix-command v0.3.5, gix-filter v0.10.0, gix-commitgraph v0.24.1, gix-worktree-stream v0.10.0, gix-archive v0.10.0, gix-config-value v0.14.5, gix-ref v0.42.0, gix-sec v0.10.5, gix-config v0.35.0, gix-prompt v0.8.3, gix-url v0.27.1, gix-credentials v0.24.1, gix-ignore v0.11.1, gix-index v0.30.0, gix-worktree v0.31.0, gix-diff v0.41.0, gix-discover v0.30.0, gix-pathspec v0.7.0, gix-dir v0.1.0, gix-pack v0.48.0, gix-odb v0.58.0, gix-transport v0.41.1, gix-protocol v0.44.1, gix-revision v0.26.1, gix-refspec v0.22.1, gix-status v0.6.0, gix-submodule v0.9.0, gix-worktree-state v0.8.0, gix v0.59.0, gix-fsck v0.3.0, gitoxide-core v0.36.0, gitoxide v0.34.0, safety bump 10 crates (
45b4470) - Prepare changelogs prior to release (
f2e111f) - Merge branch 'status' (
bb48c4c) - Add
relativize_with_prefix(). (9ba8bca) - Merge branch 'dirwalk' (
face359) - Add
try_os_str_into_bstr(), withCow<OsStr>as input. (c8ccbe5)
- Release gix-date v0.8.4, gix-utils v0.1.10, gix-actor v0.30.1, gix-object v0.41.1, gix-path v0.10.6, gix-glob v0.16.1, gix-quote v0.4.11, gix-attributes v0.22.1, gix-command v0.3.5, gix-filter v0.10.0, gix-commitgraph v0.24.1, gix-worktree-stream v0.10.0, gix-archive v0.10.0, gix-config-value v0.14.5, gix-ref v0.42.0, gix-sec v0.10.5, gix-config v0.35.0, gix-prompt v0.8.3, gix-url v0.27.1, gix-credentials v0.24.1, gix-ignore v0.11.1, gix-index v0.30.0, gix-worktree v0.31.0, gix-diff v0.41.0, gix-discover v0.30.0, gix-pathspec v0.7.0, gix-dir v0.1.0, gix-pack v0.48.0, gix-odb v0.58.0, gix-transport v0.41.1, gix-protocol v0.44.1, gix-revision v0.26.1, gix-refspec v0.22.1, gix-status v0.6.0, gix-submodule v0.9.0, gix-worktree-state v0.8.0, gix v0.59.0, gix-fsck v0.3.0, gitoxide-core v0.36.0, gitoxide v0.34.0, safety bump 10 crates (
- always try
HOMEenvironment variable first when obtaining the home directory. This will fix issues like the one described here:
- 4 commits contributed to the release over the course of 1 calendar day.
- 6 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
-
prevent very long path from using unbounded time in
realpath(). It's possible to inject such paths using urls which can then end up being canonicalized, causing very long runtimes with excessively long paths due tois_symlinkcalls which will be slow.Now the amount of components is limited to 4096/2, which should be a worst-case path at the border of realistic.
If this limitation becomes too arbitrary, one could consider making this cut-off value configurable.
- 7 commits contributed to the release over the course of 4 calendar days.
- 20 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-utils v0.1.9, gix-features v0.38.0, gix-actor v0.30.0, gix-object v0.41.0, gix-path v0.10.4, gix-glob v0.16.0, gix-attributes v0.22.0, gix-command v0.3.3, gix-packetline-blocking v0.17.3, gix-filter v0.9.0, gix-fs v0.10.0, gix-commitgraph v0.24.0, gix-revwalk v0.12.0, gix-traverse v0.37.0, gix-worktree-stream v0.9.0, gix-archive v0.9.0, gix-config-value v0.14.4, gix-tempfile v13.0.0, gix-lock v13.0.0, gix-ref v0.41.0, gix-sec v0.10.4, gix-config v0.34.0, gix-url v0.27.0, gix-credentials v0.24.0, gix-ignore v0.11.0, gix-index v0.29.0, gix-worktree v0.30.0, gix-diff v0.40.0, gix-discover v0.29.0, gix-mailmap v0.22.0, gix-negotiate v0.12.0, gix-pack v0.47.0, gix-odb v0.57.0, gix-pathspec v0.6.0, gix-packetline v0.17.3, gix-transport v0.41.0, gix-protocol v0.44.0, gix-revision v0.26.0, gix-refspec v0.22.0, gix-status v0.5.0, gix-submodule v0.8.0, gix-worktree-state v0.7.0, gix v0.58.0, safety bump 39 crates (
eb6aa8f) - Prepare changelogs prior to release (
6a2e0be) - Merge branch 'url-fuzz' (
db86fba) - Prevent very long path from using unbounded time in
realpath(). (8d4bf40) - Merge branch 'dirwalk' (
5d176fc) - Use
gix_fs::current_dir(precompose_unicode). (7d8d167) - Release gix-trace v0.1.7, gix-features v0.37.2, gix-commitgraph v0.23.2, gix-traverse v0.36.2, gix-index v0.28.2 (
b6c04c8)
- Release gix-utils v0.1.9, gix-features v0.38.0, gix-actor v0.30.0, gix-object v0.41.0, gix-path v0.10.4, gix-glob v0.16.0, gix-attributes v0.22.0, gix-command v0.3.3, gix-packetline-blocking v0.17.3, gix-filter v0.9.0, gix-fs v0.10.0, gix-commitgraph v0.24.0, gix-revwalk v0.12.0, gix-traverse v0.37.0, gix-worktree-stream v0.9.0, gix-archive v0.9.0, gix-config-value v0.14.4, gix-tempfile v13.0.0, gix-lock v13.0.0, gix-ref v0.41.0, gix-sec v0.10.4, gix-config v0.34.0, gix-url v0.27.0, gix-credentials v0.24.0, gix-ignore v0.11.0, gix-index v0.29.0, gix-worktree v0.30.0, gix-diff v0.40.0, gix-discover v0.29.0, gix-mailmap v0.22.0, gix-negotiate v0.12.0, gix-pack v0.47.0, gix-odb v0.57.0, gix-pathspec v0.6.0, gix-packetline v0.17.3, gix-transport v0.41.0, gix-protocol v0.44.0, gix-revision v0.26.0, gix-refspec v0.22.0, gix-status v0.5.0, gix-submodule v0.8.0, gix-worktree-state v0.7.0, gix v0.58.0, safety bump 39 crates (
-
change
rust-versionmanifest field back to 1.65. They didn't actually need to be higher to work, and changing them unecessarily can break downstream CI.Let's keep this value as low as possible, and only increase it when more recent features are actually used.
- 4 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.8.3, gix-hash v0.14.1, gix-trace v0.1.6, gix-features v0.37.1, gix-actor v0.29.1, gix-validate v0.8.3, gix-object v0.40.1, gix-path v0.10.3, gix-glob v0.15.1, gix-quote v0.4.10, gix-attributes v0.21.1, gix-command v0.3.2, gix-packetline-blocking v0.17.2, gix-utils v0.1.8, gix-filter v0.8.1, gix-fs v0.9.1, gix-chunk v0.4.7, gix-commitgraph v0.23.1, gix-hashtable v0.5.1, gix-revwalk v0.11.1, gix-traverse v0.36.1, gix-worktree-stream v0.8.1, gix-archive v0.8.1, gix-config-value v0.14.3, gix-tempfile v12.0.1, gix-lock v12.0.1, gix-ref v0.40.1, gix-sec v0.10.3, gix-config v0.33.1, gix-prompt v0.8.2, gix-url v0.26.1, gix-credentials v0.23.1, gix-ignore v0.10.1, gix-bitmap v0.2.10, gix-index v0.28.1, gix-worktree v0.29.1, gix-diff v0.39.1, gix-discover v0.28.1, gix-macros v0.1.3, gix-mailmap v0.21.1, gix-negotiate v0.11.1, gix-pack v0.46.1, gix-odb v0.56.1, gix-pathspec v0.5.1, gix-packetline v0.17.2, gix-transport v0.40.1, gix-protocol v0.43.1, gix-revision v0.25.1, gix-refspec v0.21.1, gix-status v0.4.1, gix-submodule v0.7.1, gix-worktree-state v0.6.1, gix v0.57.1 (
972241f) - Merge branch 'msrv' (
8c492d7) - Virtually downgrade
hometo pass MRSV checks (e6706f2) - Change
rust-versionmanifest field back to 1.65. (3bd09ef)
- Release gix-date v0.8.3, gix-hash v0.14.1, gix-trace v0.1.6, gix-features v0.37.1, gix-actor v0.29.1, gix-validate v0.8.3, gix-object v0.40.1, gix-path v0.10.3, gix-glob v0.15.1, gix-quote v0.4.10, gix-attributes v0.21.1, gix-command v0.3.2, gix-packetline-blocking v0.17.2, gix-utils v0.1.8, gix-filter v0.8.1, gix-fs v0.9.1, gix-chunk v0.4.7, gix-commitgraph v0.23.1, gix-hashtable v0.5.1, gix-revwalk v0.11.1, gix-traverse v0.36.1, gix-worktree-stream v0.8.1, gix-archive v0.8.1, gix-config-value v0.14.3, gix-tempfile v12.0.1, gix-lock v12.0.1, gix-ref v0.40.1, gix-sec v0.10.3, gix-config v0.33.1, gix-prompt v0.8.2, gix-url v0.26.1, gix-credentials v0.23.1, gix-ignore v0.10.1, gix-bitmap v0.2.10, gix-index v0.28.1, gix-worktree v0.29.1, gix-diff v0.39.1, gix-discover v0.28.1, gix-macros v0.1.3, gix-mailmap v0.21.1, gix-negotiate v0.11.1, gix-pack v0.46.1, gix-odb v0.56.1, gix-pathspec v0.5.1, gix-packetline v0.17.2, gix-transport v0.40.1, gix-protocol v0.43.1, gix-revision v0.25.1, gix-refspec v0.21.1, gix-status v0.4.1, gix-submodule v0.7.1, gix-worktree-state v0.6.1, gix v0.57.1 (
- upgrade MSRV to v1.70
Our MSRV follows the one of
helix, which in turn follows Firefox.
- 4 commits contributed to the release.
- 22 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.8.2, gix-hash v0.14.0, gix-trace v0.1.5, gix-features v0.37.0, gix-actor v0.29.0, gix-validate v0.8.2, gix-object v0.40.0, gix-path v0.10.2, gix-glob v0.15.0, gix-quote v0.4.9, gix-attributes v0.21.0, gix-command v0.3.1, gix-packetline-blocking v0.17.1, gix-utils v0.1.7, gix-filter v0.8.0, gix-fs v0.9.0, gix-chunk v0.4.6, gix-commitgraph v0.23.0, gix-hashtable v0.5.0, gix-revwalk v0.11.0, gix-traverse v0.36.0, gix-worktree-stream v0.8.0, gix-archive v0.8.0, gix-config-value v0.14.2, gix-tempfile v12.0.0, gix-lock v12.0.0, gix-ref v0.40.0, gix-sec v0.10.2, gix-config v0.33.0, gix-prompt v0.8.1, gix-url v0.26.0, gix-credentials v0.23.0, gix-ignore v0.10.0, gix-bitmap v0.2.9, gix-index v0.28.0, gix-worktree v0.29.0, gix-diff v0.39.0, gix-discover v0.28.0, gix-macros v0.1.2, gix-mailmap v0.21.0, gix-negotiate v0.11.0, gix-pack v0.46.0, gix-odb v0.56.0, gix-pathspec v0.5.0, gix-packetline v0.17.1, gix-transport v0.40.0, gix-protocol v0.43.0, gix-revision v0.25.0, gix-refspec v0.21.0, gix-status v0.4.0, gix-submodule v0.7.0, gix-worktree-state v0.6.0, gix v0.57.0, gix-fsck v0.2.0, gitoxide-core v0.35.0, gitoxide v0.33.0, safety bump 40 crates (
e1aae19) - Prepare changelogs of next release (
e78a92b) - Merge branch 'maintenance' (
4454c9d) - Upgrade MSRV to v1.70 (
aea89c3)
- Release gix-date v0.8.2, gix-hash v0.14.0, gix-trace v0.1.5, gix-features v0.37.0, gix-actor v0.29.0, gix-validate v0.8.2, gix-object v0.40.0, gix-path v0.10.2, gix-glob v0.15.0, gix-quote v0.4.9, gix-attributes v0.21.0, gix-command v0.3.1, gix-packetline-blocking v0.17.1, gix-utils v0.1.7, gix-filter v0.8.0, gix-fs v0.9.0, gix-chunk v0.4.6, gix-commitgraph v0.23.0, gix-hashtable v0.5.0, gix-revwalk v0.11.0, gix-traverse v0.36.0, gix-worktree-stream v0.8.0, gix-archive v0.8.0, gix-config-value v0.14.2, gix-tempfile v12.0.0, gix-lock v12.0.0, gix-ref v0.40.0, gix-sec v0.10.2, gix-config v0.33.0, gix-prompt v0.8.1, gix-url v0.26.0, gix-credentials v0.23.0, gix-ignore v0.10.0, gix-bitmap v0.2.9, gix-index v0.28.0, gix-worktree v0.29.0, gix-diff v0.39.0, gix-discover v0.28.0, gix-macros v0.1.2, gix-mailmap v0.21.0, gix-negotiate v0.11.0, gix-pack v0.46.0, gix-odb v0.56.0, gix-pathspec v0.5.0, gix-packetline v0.17.1, gix-transport v0.40.0, gix-protocol v0.43.0, gix-revision v0.25.0, gix-refspec v0.21.0, gix-status v0.4.0, gix-submodule v0.7.0, gix-worktree-state v0.6.0, gix v0.57.0, gix-fsck v0.2.0, gitoxide-core v0.35.0, gitoxide v0.33.0, safety bump 40 crates (
- trace credential helper invocations. This should make it easier to understand what's going on in case something isn't working as expected.
- 6 commits contributed to the release.
- 1 commit was understood as conventional.
- 1 unique issue was worked on: #1103
view details
- #1103
- Trace credential helper invocations. (
bc44497)
- Trace credential helper invocations. (
- Uncategorized
- Release gix-date v0.8.1, gix-hash v0.13.2, gix-trace v0.1.4, gix-features v0.36.1, gix-actor v0.28.1, gix-validate v0.8.1, gix-object v0.39.0, gix-path v0.10.1, gix-glob v0.14.1, gix-quote v0.4.8, gix-attributes v0.20.1, gix-command v0.3.0, gix-packetline-blocking v0.17.0, gix-utils v0.1.6, gix-filter v0.7.0, gix-fs v0.8.1, gix-chunk v0.4.5, gix-commitgraph v0.22.1, gix-hashtable v0.4.1, gix-revwalk v0.10.0, gix-traverse v0.35.0, gix-worktree-stream v0.7.0, gix-archive v0.7.0, gix-config-value v0.14.1, gix-tempfile v11.0.1, gix-lock v11.0.1, gix-ref v0.39.0, gix-sec v0.10.1, gix-config v0.32.0, gix-prompt v0.8.0, gix-url v0.25.2, gix-credentials v0.22.0, gix-ignore v0.9.1, gix-bitmap v0.2.8, gix-index v0.27.0, gix-worktree v0.28.0, gix-diff v0.38.0, gix-discover v0.27.0, gix-macros v0.1.1, gix-mailmap v0.20.1, gix-negotiate v0.10.0, gix-pack v0.45.0, gix-odb v0.55.0, gix-pathspec v0.4.1, gix-packetline v0.17.0, gix-transport v0.39.0, gix-protocol v0.42.0, gix-revision v0.24.0, gix-refspec v0.20.0, gix-status v0.3.0, gix-submodule v0.6.0, gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0, safety bump 27 crates (
55d386a) - Prepare changelogs prior to release (
d3dcbe5) - Merge branch 'error' (
c372321) - Merge branch 'size-optimization' (
c0e72fb) - Remove CHANGELOG.md from all packages (
b65a80b)
- Release gix-date v0.8.1, gix-hash v0.13.2, gix-trace v0.1.4, gix-features v0.36.1, gix-actor v0.28.1, gix-validate v0.8.1, gix-object v0.39.0, gix-path v0.10.1, gix-glob v0.14.1, gix-quote v0.4.8, gix-attributes v0.20.1, gix-command v0.3.0, gix-packetline-blocking v0.17.0, gix-utils v0.1.6, gix-filter v0.7.0, gix-fs v0.8.1, gix-chunk v0.4.5, gix-commitgraph v0.22.1, gix-hashtable v0.4.1, gix-revwalk v0.10.0, gix-traverse v0.35.0, gix-worktree-stream v0.7.0, gix-archive v0.7.0, gix-config-value v0.14.1, gix-tempfile v11.0.1, gix-lock v11.0.1, gix-ref v0.39.0, gix-sec v0.10.1, gix-config v0.32.0, gix-prompt v0.8.0, gix-url v0.25.2, gix-credentials v0.22.0, gix-ignore v0.9.1, gix-bitmap v0.2.8, gix-index v0.27.0, gix-worktree v0.28.0, gix-diff v0.38.0, gix-discover v0.27.0, gix-macros v0.1.1, gix-mailmap v0.20.1, gix-negotiate v0.10.0, gix-pack v0.45.0, gix-odb v0.55.0, gix-pathspec v0.4.1, gix-packetline v0.17.0, gix-transport v0.39.0, gix-protocol v0.42.0, gix-revision v0.24.0, gix-refspec v0.20.0, gix-status v0.3.0, gix-submodule v0.6.0, gix-worktree-state v0.5.0, gix v0.56.0, gix-fsck v0.1.0, gitoxide-core v0.34.0, gitoxide v0.32.0, safety bump 27 crates (
- use
dyntrait where possible. This reduces compile time due to avoiding duplication.
- 5 commits contributed to the release over the course of 17 calendar days.
- 17 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.8.0, gix-hash v0.13.0, gix-features v0.34.0, gix-actor v0.26.0, gix-object v0.36.0, gix-path v0.10.0, gix-glob v0.12.0, gix-attributes v0.18.0, gix-packetline-blocking v0.16.6, gix-filter v0.4.0, gix-fs v0.6.0, gix-commitgraph v0.20.0, gix-hashtable v0.4.0, gix-revwalk v0.7.0, gix-traverse v0.32.0, gix-worktree-stream v0.4.0, gix-archive v0.4.0, gix-config-value v0.14.0, gix-tempfile v9.0.0, gix-lock v9.0.0, gix-ref v0.36.0, gix-sec v0.10.0, gix-config v0.29.0, gix-prompt v0.7.0, gix-url v0.23.0, gix-credentials v0.19.0, gix-diff v0.35.0, gix-discover v0.24.0, gix-ignore v0.7.0, gix-index v0.24.0, gix-macros v0.1.0, gix-mailmap v0.18.0, gix-negotiate v0.7.0, gix-pack v0.42.0, gix-odb v0.52.0, gix-pathspec v0.2.0, gix-packetline v0.16.6, gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0, safety bump 39 crates (
8bd0456) - Prepare changelogs for release (
375db06) - Merge branch
dynification (f658fcc) - Use
dyntrait where possible. (072ee32) - Merge branch 'gix-submodule' (
363ee77)
- Release gix-date v0.8.0, gix-hash v0.13.0, gix-features v0.34.0, gix-actor v0.26.0, gix-object v0.36.0, gix-path v0.10.0, gix-glob v0.12.0, gix-attributes v0.18.0, gix-packetline-blocking v0.16.6, gix-filter v0.4.0, gix-fs v0.6.0, gix-commitgraph v0.20.0, gix-hashtable v0.4.0, gix-revwalk v0.7.0, gix-traverse v0.32.0, gix-worktree-stream v0.4.0, gix-archive v0.4.0, gix-config-value v0.14.0, gix-tempfile v9.0.0, gix-lock v9.0.0, gix-ref v0.36.0, gix-sec v0.10.0, gix-config v0.29.0, gix-prompt v0.7.0, gix-url v0.23.0, gix-credentials v0.19.0, gix-diff v0.35.0, gix-discover v0.24.0, gix-ignore v0.7.0, gix-index v0.24.0, gix-macros v0.1.0, gix-mailmap v0.18.0, gix-negotiate v0.7.0, gix-pack v0.42.0, gix-odb v0.52.0, gix-pathspec v0.2.0, gix-packetline v0.16.6, gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0, safety bump 39 crates (
- don't call crate 'WIP' in manifest anymore.
- make clear that
normalize()does not touch duplicate path separators nor single..
- remove
Spectype in favor ofgix-pathspec::Pattern. The latter isn't included to keep concerns and crates separate.
- 6 commits contributed to the release over the course of 12 calendar days.
- 30 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates (
30b2761) - Update changelogs prior to release (
f23ea88) - Don't call crate 'WIP' in manifest anymore. (
229bd48) - Merge branch 'pathspec-matching' (
9f4dfe0) - Remove
Spectype in favor ofgix-pathspec::Pattern. (df83d74) - Make clear that
normalize()does not touch duplicate path separators nor single.. (5b5983a)
- Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates (
A maintenance release without user-facing changes.
- 4 commits contributed to the release over the course of 1 calendar day.
- 23 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates (
16295b5) - Release gix-date v0.7.1, gix-hash v0.11.4, gix-trace v0.1.3, gix-features v0.32.0, gix-actor v0.24.0, gix-validate v0.7.7, gix-object v0.33.0, gix-path v0.8.4, gix-glob v0.10.0, gix-quote v0.4.6, gix-attributes v0.15.0, gix-command v0.2.7, gix-packetline-blocking v0.16.3, gix-filter v0.1.0, gix-fs v0.4.0, gix-chunk v0.4.4, gix-commitgraph v0.18.0, gix-hashtable v0.2.4, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.4, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.0, gix-sec v0.8.4, gix-prompt v0.5.3, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-ignore v0.5.0, gix-bitmap v0.2.6, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-packetline v0.16.4, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.1 (
5cb3589) - Update changelogs prior to release (
2fc66b5) - Update license field following SPDX 2.1 license expression standard (
9064ea3)
- Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates (
A maintenance release without user-facing changes.
- 3 commits contributed to the release.
- 6 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Add
clippy::redundant-closure-for-method-callslint
- provide basic
tracingspans for common operations. This is just the beginning and more crates will integrate with it over time.
- 8 commits contributed to the release over the course of 10 calendar days.
- 15 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.6.0, gix-hash v0.11.3, gix-trace v0.1.1, gix-features v0.31.0, gix-actor v0.22.0, gix-path v0.8.2, gix-glob v0.9.0, gix-quote v0.4.5, gix-attributes v0.14.0, gix-chunk v0.4.3, gix-commitgraph v0.17.0, gix-config-value v0.12.2, gix-fs v0.3.0, gix-tempfile v7.0.0, gix-utils v0.1.3, gix-lock v7.0.0, gix-validate v0.7.6, gix-object v0.31.0, gix-ref v0.31.0, gix-sec v0.8.2, gix-config v0.24.0, gix-command v0.2.6, gix-prompt v0.5.2, gix-url v0.20.0, gix-credentials v0.16.0, gix-diff v0.31.0, gix-discover v0.20.0, gix-hashtable v0.2.2, gix-ignore v0.4.0, gix-bitmap v0.2.5, gix-revwalk v0.2.0, gix-traverse v0.28.0, gix-index v0.19.0, gix-mailmap v0.14.0, gix-negotiate v0.3.0, gix-pack v0.38.0, gix-odb v0.48.0, gix-packetline v0.16.3, gix-transport v0.33.0, gix-protocol v0.34.0, gix-revision v0.16.0, gix-refspec v0.12.0, gix-worktree v0.20.0, gix v0.47.0, gitoxide-core v0.29.0, gitoxide v0.27.0, safety bump 30 crates (
ea9f942) - Prepare changelogs prior to release (
18b0a37) - Merge branch 'corpus' (
aa16c8c) - Release gix-trace v0.1.0 (
2ab69c6) - Change MSRV to 1.65 (
4f635fc) - Provide basic
tracingspans for common operations. (3cffa26) - Merge branch 'help-874-redundant-closures' (
fe59956) - Add
clippy::redundant-closure-for-method-callslint (bcad5c2)
- Release gix-date v0.6.0, gix-hash v0.11.3, gix-trace v0.1.1, gix-features v0.31.0, gix-actor v0.22.0, gix-path v0.8.2, gix-glob v0.9.0, gix-quote v0.4.5, gix-attributes v0.14.0, gix-chunk v0.4.3, gix-commitgraph v0.17.0, gix-config-value v0.12.2, gix-fs v0.3.0, gix-tempfile v7.0.0, gix-utils v0.1.3, gix-lock v7.0.0, gix-validate v0.7.6, gix-object v0.31.0, gix-ref v0.31.0, gix-sec v0.8.2, gix-config v0.24.0, gix-command v0.2.6, gix-prompt v0.5.2, gix-url v0.20.0, gix-credentials v0.16.0, gix-diff v0.31.0, gix-discover v0.20.0, gix-hashtable v0.2.2, gix-ignore v0.4.0, gix-bitmap v0.2.5, gix-revwalk v0.2.0, gix-traverse v0.28.0, gix-index v0.19.0, gix-mailmap v0.14.0, gix-negotiate v0.3.0, gix-pack v0.38.0, gix-odb v0.48.0, gix-packetline v0.16.3, gix-transport v0.33.0, gix-protocol v0.34.0, gix-revision v0.16.0, gix-refspec v0.12.0, gix-worktree v0.20.0, gix v0.47.0, gitoxide-core v0.29.0, gitoxide v0.27.0, safety bump 30 crates (
A maintenance release without user-facing changes.
- 7 commits contributed to the release over the course of 12 calendar days.
- 40 days passed between releases.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.5.1, gix-hash v0.11.2, gix-features v0.30.0, gix-actor v0.21.0, gix-path v0.8.1, gix-glob v0.8.0, gix-quote v0.4.4, gix-attributes v0.13.0, gix-chunk v0.4.2, gix-commitgraph v0.16.0, gix-config-value v0.12.1, gix-fs v0.2.0, gix-tempfile v6.0.0, gix-utils v0.1.2, gix-lock v6.0.0, gix-validate v0.7.5, gix-object v0.30.0, gix-ref v0.30.0, gix-sec v0.8.1, gix-config v0.23.0, gix-command v0.2.5, gix-prompt v0.5.1, gix-url v0.19.0, gix-credentials v0.15.0, gix-diff v0.30.0, gix-discover v0.19.0, gix-hashtable v0.2.1, gix-ignore v0.3.0, gix-bitmap v0.2.4, gix-traverse v0.26.0, gix-index v0.17.0, gix-mailmap v0.13.0, gix-revision v0.15.0, gix-negotiate v0.2.0, gix-pack v0.36.0, gix-odb v0.46.0, gix-packetline v0.16.2, gix-transport v0.32.0, gix-protocol v0.33.0, gix-refspec v0.11.0, gix-worktree v0.18.0, gix v0.45.0, safety bump 29 crates (
9a9fa96) - Prepare changelogs prior to release (
8f15cec) - Merge branch 'auto-clippy' (
dbf8aa1) - Merge branch 'main' into auto-clippy (
3ef5c90) - Merge branch 'blinxen/main' (
9375cd7) - Include custom clippy settings (
b057500) - Include license files in all crates (
facaaf6)
- Release gix-date v0.5.1, gix-hash v0.11.2, gix-features v0.30.0, gix-actor v0.21.0, gix-path v0.8.1, gix-glob v0.8.0, gix-quote v0.4.4, gix-attributes v0.13.0, gix-chunk v0.4.2, gix-commitgraph v0.16.0, gix-config-value v0.12.1, gix-fs v0.2.0, gix-tempfile v6.0.0, gix-utils v0.1.2, gix-lock v6.0.0, gix-validate v0.7.5, gix-object v0.30.0, gix-ref v0.30.0, gix-sec v0.8.1, gix-config v0.23.0, gix-command v0.2.5, gix-prompt v0.5.1, gix-url v0.19.0, gix-credentials v0.15.0, gix-diff v0.30.0, gix-discover v0.19.0, gix-hashtable v0.2.1, gix-ignore v0.3.0, gix-bitmap v0.2.4, gix-traverse v0.26.0, gix-index v0.17.0, gix-mailmap v0.13.0, gix-revision v0.15.0, gix-negotiate v0.2.0, gix-pack v0.36.0, gix-odb v0.46.0, gix-packetline v0.16.2, gix-transport v0.32.0, gix-protocol v0.33.0, gix-refspec v0.11.0, gix-worktree v0.18.0, gix v0.45.0, safety bump 29 crates (
A maintenance release without user-facing changes.
- Moved
home_dir()toenv::home_dir()andenv_var()toenv::var(). Please note that this change was previously and erroneously not declared as breaking.
- 4 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 (
7ebc9f7) - Prepare changelogs prior to release (
0135158) - Bump gix-path v0.8.0, safety bump 20 crates (gix set to 0.44.1 manually) (
43ebaf2) - Moved
home_dir()toenv::home_dir()andenv_var()toenv::var(). (94564df)
- Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 (
YANKED due to accidental breaking changes.
- add
join_bstr_unix_pathsep(base, component). It's useful to have to avoid certain conversions to happen otherwise. - add
xdg_config_home(), installation_configandinstallation_config_prefix()` functions.
-
join_bstr_unix_pathsep()works more suitably if base path is empty. - use
homeinenv::home_dir() - use
homeinenv::home_dir(). This way it should work better on windows as it now uses the home_dir implementation of a crate used bycargo.
- 15 commits contributed to the release over the course of 13 calendar days.
- 27 days passed between releases.
- 5 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (
91134a1) - Prepare changelogs prior to release (
30a1a71) - Merge branch 'index-entries-attrs' (
f37a930) join_bstr_unix_pathsep()works more suitably if base path is empty. (bd1ae0d)- Merge branch 'attributes-cache' (
3456c84) - Add
join_bstr_unix_pathsep(base, component). (1e73f3c) - Merge branch 'utkarshgupta137/main' (
74cb5ee) - Use
homeinenv::home_dir()(13edfe9) - Revert "fix: use
homeinenv::home_dir()." (222ece2) - Merge branch 'utkarshgupta137/main' (
5092c59) - Use
homeinenv::home_dir(). (ec049fe) - Make fmt (
5d2b5d0) - Merge branch 'main' into dev (
23ee47f) - Merge branch 'worktree-stack' (
3d47919) - Add
xdg_config_home(), installation_configandinstallation_config_prefix()functions. ([0d340f4`](https://github.com/Byron/gitoxide/commit/0d340f4fdeff1576460d43ca2210b11f0641c5dd))
- Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (
- $HOME detection on windows
- 4 commits contributed to the release.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-path v0.7.3, gix-config-value v0.10.2, gix-config v0.20.1, gix-discover v0.16.2, gix-index v0.15.1, gix-odb v0.43.1, gix-packetline v0.15.1, gix-protocol v0.30.2, gix-worktree v0.15.2, gix v0.43.1 (
38eed1d) - Merge branch 'pascalkuthe/main' (
d47cebe) - Refactor (
d1e5e12) - $HOME detection on windows (
d1bd513)
- Release gix-path v0.7.3, gix-config-value v0.10.2, gix-config v0.20.1, gix-discover v0.16.2, gix-index v0.15.1, gix-odb v0.43.1, gix-packetline v0.15.1, gix-protocol v0.30.2, gix-worktree v0.15.2, gix v0.43.1 (
-
note that crates have been renamed from
git-*togix-*. This also means that thegit-*prefixed crates of thegitoxideproject are effectively unmaintained. Use the crates with thegix-*prefix instead.If you were using
git-repository, thengixis its substitute. -
compatibility with
bstrv1.3, use*.as_bytes()instead of.as_ref().as_ref()relies on a known target type which isn't always present. However, once there is only one implementation, that's no problem, but when that changes compilation fails due to ambiguity.
- 2 commits contributed to the release.
- 3 days passed between releases.
- 1 commit was understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
view details
- Uncategorized
- Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 (
9604783) - Compatibility with
bstrv1.3, use*.as_bytes()instead of.as_ref(). (135d317)
- Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 (
-
Rename absolutize() to normalize() The name absolutize implies strongly that the returned path will be absolute, but the function only converts relative paths to absolute under a few specific circumstances.
The new name, normalize(), is inspired by Python's os.path.normpath(), Java's java.nio.file.Path.normalize(), Node's Path.normalize(), and maybe some others which have similar semantics to this function.
-
various name changes for more convenient API
-
absolutize()now takes a mandatorycurrent_dir()parameter and returnsOption<path>Previously the function was willing to return an empty path despite it being invalid. With thecurrent_dirbeing required, this won't be the case anymore and will yield logically consistent results in all cases.This forces the caller to deal with the relative path being invalid or crafted to produce some other path, maybe to bypass sanity checks.
-
Remove
git-configtest utilities fromgit-path.
-
upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn't more than a patch release as it should break nobody who is adhering to the MSRV, but let's be careful and mark it breaking.
Note that
git-featuresandgit-packare still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021. -
Make
realpath()easier to use by introducingrealpath_opt(). That way there is consistency about how many symlinks to follow.
- upgrade
bstrto1.0.1 -
realpath()handlescwdinternally This makes for more convenient usage in the common case.
- rename tests/convert/normalize.rs This renames the test module to match the new function name.
-
:discover()
now returns the shortest path. If and only if it canonicalized the source path. That way, users will still get a familiar path. This is due toparent()not operating in the file system, which otherwise would be equivalent to..`, but that's not how we work.Maybe we should overhaul the way this works to use
../instead and just 'absoluteize' the path later (std::path::absolute()) is on the way for that.
-
.substitution is only done if the input was relative. Previously it was possible to have/a/b/../band a CWD of/a/breplaced with.even though that clearly isn't what the user provided.Now the
.resubstitution only happens when it's in the interest of the caller. -
normalize()would fail to interpret../correctly and end up in an invalid path. This is now fixed and should never happen again thanks to the addition of a missing test. -
Handle
.specifically inabsolutize(). Previously, absolutizing./../../would lead to one path component of the../to be ignored as.was popped successfully, not realizing that it is a no-op.This could lead to problems with repository discovery if
.was passed.
-
Add
os_string_into_bstring()as sibling ofos_str_into_bstr(). -
add support for
wasiThis allows path conversions there to be just as efficient as on unix.This was adopted from a PR in the hexlix-editor.
-
add
is_absolute()for git-style absolute checks This essentially means that starting slashes are always absolute, even on windows. -
Add
absolutize_components()It helps to cleanup paths a little which comes in handy when dealing withcommondirappended paths.
- uniformize deny attributes
- remove default link to cargo doc everywhere
- fix typos
- 189 commits contributed to the release.
- 20 commits were understood as conventional.
- 6 unique issues were worked on: #301, #331, #422, #450, #470, #691
Clippy helped 5 times to make code idiomatic.
view details
- #301
- Update changelogs prior to release (
84cb256) absolutize_*(dir)is nowabsolutize(dir, Option<cwd>)(de87657)- More robust absolutize-paths implementation (
4800ebe) - Add
absolutize_components()(35f146a) - Allow reading patterns from stdin (
0c597fe) - :discover()
now returns the shortest path. ([e4f4c4b`](https://github.com/Byron/gitoxide/commit/e4f4c4b2c75a63a40a174e3a006ea64ef8d78809)) - Basic prefix support as well the first working version of
exclude query(9cb8385) - Frame for
gix repo exclude query(a331314) - Refactor (
21d4076) - The first indication that directory-based excludes work (
e868acc) - Various name changes for more convenient API (
5480159) - Use bstr intead of [u8] (
9380e99) - Use
git-pathcrate instead ofgit_features::path(47e607d) - Copy all existing functions from git-features::path to git-path:: (
725e198) - Add empty git-path crate (
8d13f81)
- Update changelogs prior to release (
- #331
realpath()handlescwdinternally (dfa1e05)
- #422
- Prepare changelog (
de2d587)
- Prepare changelog (
- #450
- #470
- #691
- Set
rust-versionto 1.64 (55066ce)
- Set
- Uncategorized
- Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (
6efd0d3) - Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (
6ccc88a) - Merge branch 'rename-crates' into inform-about-gix-rename (
c9275b9) - Rename
git-testtoolstogix-testtools(b65c33d) - Adjust to renaming of
git-packtogix-pack(1ee81ad) - Adjust to renaming of
git-odbtogix-odb(476e2ad) - Adjust to renaming of
git-indextogix-index(86db5e0) - Adjust to renaming of
git-difftogix-diff(49a163e) - Adjust to renaming of
git-commitgraphtogix-commitgraph(f1dd0a3) - Adjust to renaming of
git-mailmaptogix-mailmap(2e28c56) - Adjust to renaming of
git-discovertogix-discover(53adfe1) - Adjust to renaming of
git-chunktogix-chunk(59194e3) - Adjust to renaming of
git-bitmaptogix-bitmap(75f2a07) - Adjust to renaming for
git-protocoltogix-protocol(823795a) - Adjust to renaming of
git-refspectogix-refspec(c958802) - Adjust to renaming of
git-revisiontogix-revision(ee0ee84) - Adjust to renaming of
git-transporttogix-transport(b2ccf71) - Adjust to renaming of
git-credentialstogix-credentials(6b18abc) - Adjust to renaming of
git-prompttogix-prompt(6a4654e) - Adjust to renaming of
git-commandtogix-command(d26b8e0) - Adjust to renaming of
git-packetlinetogix-packetline(5cbd22c) - Adjust to renaming of
git-worktreetogix-worktree(73a1282) - Adjust to renamining of
git-worktreetogix-worktree(108bb1a) - Adjust to renaming of
git-urltogix-url(b50817a) - Adjust to renaming of
git-datetogix-date(9a79ff2) - Adjust to renaming of
git-pathspectogix-pathspec(37f7c6b) - Adjust to renamining of
git-attributestogix-attributes(4a8b3b8) - Adjust to renaminig of
git-quotetogix-quote(648025b) - Adjust to renaming of
git-configtogix-config(3a861c8) - Adjust to renaming of
git-reftogix-ref(1f5f695) - Adjust to renaming of
git-locktogix-lock(2028e78) - Adjust to renaming of
git-tempfiletogix-tempfile(b6cc3eb) - Adjust to renaming of
git-objecttogix-object(fc86a1e) - Adjust to renaming of
git-actortogix-actor(4dc9b44) - Adjust to renaming of
git-validatetogix-validate(5e40ad0) - Adjust to renaming of
git-hashtogix-hash(4a9d025) - Adjust to renaming of
git-featurestogix-features(e2dd68a) - Adjust to renaming of
git-globtogix-glob(35b2a3a) - Adjust to renaming of
git-sectogix-sec(eabbb92) - Adapt to renaming of
git-pathtogix-path(d3bbcfc) - Rename
git-pathtogix-path(9fe8e83) - Adjust to rename of
git-config-valuetogix-config-value(622b3e1) - Merge branch 'git-pack-wasm' (
4bc19d1) - CI validates WASM support (
0d4b804) - Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates (
c196d20) - Prepare changelogs prior to release (
7c846d2) - Merge branch 'Lioness100/main' (
1e544e8) - Fix typos (
39ed9ed) - Thanks clippy (
bac57dd) - Release git-date v0.3.1, git-features v0.25.0, git-actor v0.15.0, git-glob v0.5.1, git-path v0.7.0, git-attributes v0.7.0, git-config-value v0.10.0, git-lock v3.0.1, git-validate v0.7.1, git-object v0.24.0, git-ref v0.21.0, git-sec v0.6.0, git-config v0.13.0, git-prompt v0.3.0, git-url v0.12.0, git-credentials v0.8.0, git-diff v0.24.0, git-discover v0.10.0, git-traverse v0.20.0, git-index v0.10.0, git-mailmap v0.7.0, git-pack v0.28.0, git-odb v0.38.0, git-packetline v0.14.1, git-transport v0.24.0, git-protocol v0.25.0, git-revision v0.8.0, git-refspec v0.5.0, git-worktree v0.10.0, git-repository v0.30.0, safety bump 26 crates (
e6b9906) - Prepare chnagelogs prior to git-repository release (
7114bbb) - Merge branch 'main' into read-split-index (
c57bdde) - Merge branch 'adjustments-for-cargo' (
083909b) - Thanks clippy (
f1160fb) - Make fmt (
747008d) - Merge branch 'main' into http-config (
6b9632e) - Merge branch 'discovery-fix' (
689752e) .substitution is only done if the input was relative. (745d926)normalize()would fail to interpret../correctly and end up in an invalid path. (92d5d13)- Merge branch 'path-normalize' (
805329a) - Rename tests/convert/normalize.rs (
8ab47bb) - Rename absolutize() to normalize() (
37cab07) - Add
os_string_into_bstring()as sibling ofos_str_into_bstr(). (25e795f) - Merge branch 'main' into http-config (
bcd9654) - Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (
b2c301e) - Prepare changelogs prior to release (
e4648f8) - Merge branch 'discover-rel-path' (
5f908fb) - Improve documentation to clarify intent (
b8f73aa) - Merge branch 'cwd-consistency' (
ea7c6a3) - Adapt to changes in
git-discoverandgit-pathandgit-odb(98c2501) absolutize()now takes a mandatorycurrent_dir()parameter and returnsOption<path>(7dbab1c)- Merge branch 'version2021' (
0e4462d) - Upgrade edition to 2021 in most crates. (
3d8fa8f) - Merge branch 'diff' (
25a7726) - Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (
29a043b) - Merge branch 'filter-refs' (
fd14489) - Merge branch 'filter-refs-by-spec' (
5c05198) - Merge branch 'main' into index-from-tree (
bc64b96) - Release git-path v0.4.2, git-config-value v0.7.0 (
c48fb31) - Merge branch 'main' into filter-refs-by-spec (
cfa1440) - Release git-path v0.4.1 (
5e82346) - Handle
.specifically inabsolutize(). (9171adb) - Merge branch 'main' into remote-ls-refs (
e2ee3de) - Merge branch 'docsrs-show-features' (
31c2351) - Uniformize deny attributes (
f7f136d) - Remove default link to cargo doc everywhere (
533e887) - Merge pull request #2 from SidneyDouw/main (
ce885ad) - Merge branch 'Byron:main' into main (
9b9ea02) - Merge branch 'main' into rev-parse-delegate (
6da8250) - Merge branch 'main' into pathspec (
7b61506) - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (
4737b1e) - Prepare changelog prior to release (
3c50625) - Merge pull request #1 from Byron/main (
085e76b) - Make fmt (
0700b09) - Fix docs (
4f8e3b1) - Thanks clippy (
7a2a31e) - Merge branch 'main' into pathspec (
89ea12b) - Merge branch 'main' into cont_include_if (
0e9df36) - Generally avoid using
target_os = "windows"in favor ofcfg(windows)and negations (91d5402) - Use git_path::realpath in all places that allow it right now (
229dc91) - Avoid unwraps in tests as they are now stable (
efa1423) - Remove canonicalized-path abstraction (
9496e55) - Merge branch 'main' into cont_include_if (
41ea8ba) - Release git-path v0.3.0, safety bump 14 crates (
400c9be) - Fix git-paths tests; improve error handling. (
9c00504) - Docs for git-path (
a520092) - Remove
git-configtest utilities fromgit-path. (c9933c0) - Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (
a417177) - Update changelogs prior to release (
bb424f5) - Make fmt (
c665aef) - Merge branch 'main' into svetli-n-cont_include_if (
315c87e) - Make
realpath()easier to use by introducingrealpath_opt(). (266d437) - Merge branch 'main' into SidneyDouw-pathspec (
a22b1d8) - Release git-path v0.1.3, git-discover v0.1.2, git-repository v0.18.1, cargo-smart-release v0.10.1 (
b7399cc) - Prepare for smart-release release (
2f74cb0) - Adjust git-path size limits (
5ac8a3b) - Release git-path v0.1.2, git-sec v0.1.1, git-config v0.4.0, git-discover v0.1.1, git-pack v0.19.1, git-repository v0.18.0, cargo-smart-release v0.10.0, safety bump 2 crates (
ceb6dff) - Merge branch 'svetli-n-git_includeif' (
cf24fbe) - Remove forbid missing_docs (
23acebb) - Merge branch 'main' into git_includeif (
229d938) - Declare
git-pathusable (496594d) - Merge branch 'main' into git_includeif (
598c853) - Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (
654cf39) - Make fmt (
e043807) - Fix create_symlink (
714db70) - Add includeIf test with symlink. (
5d74404) - Fix realpath tests. (
0426f4d) - Refactor real_path tests. (
b696849) - Refactor real_path tests. (
8ade69f) - Fix windows (probably) (
c980014) - Thanks clippy (
da13aff) - Refactor (
6bba054) - Turn recursion into loop (
9b83c2c) - Refactor (
1ca0540) - Refactor (
1f6ecd2) - Refactor (
5efb972) - Refactor (
353c245) - Put
realpathinto its own module (d142e01) - Refactor (
50583f0) - Rename
real_path()torealpath()(478ff6c) - Refactor (
8f1daf5) - Fix linux test (
8a36810) - Fix windows test. (
1afb2da) - Temp ignore real_path_tests. (
c2f5db9) - Windows absolute path. (
8dc33cc) - Windows absolute path. (
070f8c7) - Windows absolute path. (
cefc8fb) - Windows absolute path. (
31a71f3) - Fix merge. (
f2b46df) - Merge branch 'main' into git_includeif (
b1bfc8f) - Add custom tempdir in. (
8bfd52a) - Merge branch 'basic-worktree-support' (
e058bda) - Thanks clippy (
a084951) - Temp ignore real_path_tests. (
27f4bfc) - Windows fix. (
ce0b408) - Windows fix. (
25dd319) - Windows fix. (
61bc0e7) - Merge branch 'main' into git_includeif (
05eb340) - Handle windows path prefix. (
1723236) - Max symlinks exceeded test. (
cfff300) - Use thiserror in
real_path()(2bd7a44) - Input_path is Iterator. (
c993d78) - Real_path wip (
3890a61) - Merge branch 'main' into msrv-for-windows (
7cb1972) - Make fmt (
251b6df) - Merge branch 'worktree-stack' (
98da8ba) - Release git-path v0.1.0 (
ca019fc)
- Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (
- Add
os_string_into_bstring()as sibling ofos_str_into_bstr().
-
.substitution is only done if the input was relative. Previously it was possible to have/a/b/../band a CWD of/a/breplaced with.even though that clearly isn't what the user provided.Now the
.resubstitution only happens when it's in the interest of the caller. -
normalize()would fail to interpret../correctly and end up in an invalid path. This is now fixed and should never happen again thanks to the addition of a missing test.
- rename tests/convert/normalize.rs This renames the test module to match the new function name.
-
Rename absolutize() to normalize() The name absolutize implies strongly that the returned path will be absolute, but the function only converts relative paths to absolute under a few specific circumstances.
The new name, normalize(), is inspired by Python's os.path.normpath(), Java's java.nio.file.Path.normalize(), Node's Path.normalize(), and maybe some others which have similar semantics to this function.
-
upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn't more than a patch release as it should break nobody who is adhering to the MSRV, but let's be careful and mark it breaking.
Note that
gix-featuresandgix-packare still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.
-
absolutize()now takes a mandatorycurrent_dir()parameter and returnsOption<path>Previously the function was willing to return an empty path despite it being invalid. With thecurrent_dirbeing required, this won't be the case anymore and will yield logically consistent results in all cases.This forces the caller to deal with the relative path being invalid or crafted to produce some other path, maybe to bypass sanity checks.
-
add support for
wasiThis allows path conversions there to be just as efficient as on unix.This was adopted from a PR in the hexlix-editor.
- upgrade
bstrto1.0.1
- add
is_absolute()for git-style absolute checks This essentially means that starting slashes are always absolute, even on windows.
- uniformize deny attributes
- remove default link to cargo doc everywhere
-
Handle
.specifically inabsolutize(). Previously, absolutizing./../../would lead to one path component of the../to be ignored as.was popped successfully, not realizing that it is a no-op.This could lead to problems with repository discovery if
.was passed.
-
realpath()handlescwdinternally This makes for more convenient usage in the common case.
- Remove
gix-configtest utilities fromgix-path.
- Make
realpath()easier to use by introducingrealpath_opt(). That way there is consistency about how many symlinks to follow.
A maintenance release without user-facing changes.
A maintenance release without user-facing changes.
- Add
absolutize_components()It helps to cleanup paths a little which comes in handy when dealing withcommondirappended paths.
-
:discover()
now returns the shortest path. If and only if it canonicalized the source path. That way, users will still get a familiar path. This is due toparent()not operating in the file system, which otherwise would be equivalent to..`, but that's not how we work.Maybe we should overhaul the way this works to use
../instead and just 'absolutize' the path later (std::path::absolute()) is on the way for that.
- various name changes for more convenient API
An empty crate without any content to reserve the name for the gitoxide project.