CI to automate build of cargo lockfiles on different Alpine releases for git-annex aports https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/git-annex
Find a file
Joey Hess f1ba21d698 OsPath conversion
While some RawFilePath and FilePath remain, this converts most of
git-annex to using OsPath.

(When built without the OsPath build flag, is falls back to using
type OsPath = RawFilePath.)

The goals are
1) improved performance by using OsPath end-to-end when possible
2) potentially avoiding memory use problems caused by pinned strict
   ByteString, since OsPath uses ShortByteString
3) eventually eliminating the filepath-bytestring dependency so I don't
   need to keep maintaining that library
   (this doesn't get all the way, but close)
4) generally improved type safety, since OsPath is a newtype, while
   FilePath and RawFilePath are just type aliaes.

This is the result of a type checker driven process. I started by
converting from System.Directory to System.Directory.OsPath, and from
System.FilePath to System.OsPath. Then I fixed all the compile errors,
which took 3 weeks of work.

Unfortunately, there are several test suite failures at this point.
Also, it only has been built on linux, on windows and OSX there are
probably ifdefs whose code still needs to be converted.

Note that there is a parallel line of commits, starting with
05bdce328d
which is the incremental progress as I worked on this. It will be merged
with this commit. In some cases, commits in that line explain in more
details the reasons for some specific changes.
2025-02-10 15:24:28 -04:00
Annex OsPath conversion 2025-02-10 15:24:28 -04:00
Assistant OsPath conversion 2025-02-10 15:24:28 -04:00
Backend OsPath conversion 2025-02-10 15:24:28 -04:00
Build OsPath conversion 2025-02-10 15:24:28 -04:00
CmdLine OsPath conversion 2025-02-10 15:24:28 -04:00
Command OsPath conversion 2025-02-10 15:24:28 -04:00
Config OsPath conversion 2025-02-10 15:24:28 -04:00
Database OsPath conversion 2025-02-10 15:24:28 -04:00
debian Refresh standlone patch to avoid fuzz and offsets 2024-08-06 16:39:48 -04:00
doc response 2025-01-22 16:48:51 -04:00
Git OsPath conversion 2025-02-10 15:24:28 -04:00
Limit treat "not present" in preferred content as invalid 2024-09-03 13:50:06 -04:00
Logs OsPath conversion 2025-02-10 15:24:28 -04:00
Messages OsPath conversion 2025-02-10 15:24:28 -04:00
P2P OsPath conversion 2025-02-10 15:24:28 -04:00
Remote OsPath conversion 2025-02-10 15:24:28 -04:00
RemoteDaemon OsPath conversion 2025-02-10 15:24:28 -04:00
standalone Fix installation on Android 2025-01-07 14:13:46 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates assistant: When generating a gpg secret key, avoid hardcoding the key algorithm and size 2024-01-09 15:31:53 -04:00
Test OsPath conversion 2025-02-10 15:24:28 -04:00
Types OsPath conversion 2025-02-10 15:24:28 -04:00
Upgrade OsPath conversion 2025-02-10 15:24:28 -04:00
Utility OsPath conversion 2025-02-10 15:24:28 -04:00
.appveyor.yml make git-remote-annex link available to test suite 2025-01-10 11:01:43 -04:00
.codespellrc A few more of typo fixes/skip as detected with bleeding edge codespell 2024-05-01 20:06:08 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes update changelog location 2016-08-22 23:54:11 -04:00
.gitignore ignore git-remote-annex 2024-05-06 13:13:39 -04:00
.mailmap ENH: add one more mailmap for yarikoptic 2024-06-03 13:00:45 -04:00
Annex.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Assistant.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs OsPath conversion 2025-02-10 15:24:28 -04:00
bash-completion.bash bash completion fix 2018-11-12 13:23:05 -04:00
Benchmark.hs --size-limit exit 101 2021-06-04 16:43:47 -04:00
BuildFlags.hs update servant build flag 2024-07-23 08:53:56 -04:00
BuildInfo.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CHANGELOG add file-io to build-depends when building with OsPath flag 2025-01-21 14:26:04 -04:00
CmdLine.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Command.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Common.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Config.hs OsPath conversion 2025-02-10 15:24:28 -04:00
COPYRIGHT prep for release tomorrow and copyright year update 2025-01-01 14:24:57 -04:00
Creds.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Crypto.hs OsPath conversion 2025-02-10 15:24:28 -04:00
git-annex.cabal OsPath conversion 2025-02-10 15:24:28 -04:00
git-annex.hs git-remote-annex: Fix buggy behavior when annex.stalldetection is configured 2024-11-25 12:14:52 -04:00
git-union-merge.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Git.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Key.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Limit.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Logs.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Makefile add git-remote-annex as a dep of the test target 2024-11-19 12:13:13 -04:00
Messages.hs OsPath conversion 2025-02-10 15:24:28 -04:00
NEWS prep release 2023-06-26 10:41:36 -04:00
README improve description 2022-01-06 12:24:27 -04:00
Remote.hs avoid head 2024-09-26 17:52:19 -04:00
Setup.hs Setup.hs: Stop installing man pages, desktop files, and the git-annex-shell and git-remote-tor-annex symlinks 2023-08-01 15:08:56 -04:00
stack.yaml rename OsString to OsPath 2025-01-21 11:57:44 -04:00
Test.hs OsPath conversion 2025-02-10 15:24:28 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs OsPath conversion 2025-02-10 15:24:28 -04:00

git-annex allows managing large files with git, without storing the file
contents in git. It can sync, backup, and archive your data, offline
and online. Checksums and encryption keep your data safe and secure. Bring
the power and distributed nature of git to bear on your large files with
git-annex.

For documentation, see doc/ or <https://git-annex.branchable.com/>