Imported Upstream version 2.3.3
[scm/test.git] / ROADMAP.md
1 # Git LFS Roadmap
2
3 This is a high level overview of some of the big changes we want to make for
4 Git LFS. If you have an idea for a new feature, open an issue for discussion.
5
6 ## Bugs/Features
7
8 | | Name | Ref |
9 | ------ | ---- | --- |
10 | | git index issues | [#937](https://github.com/git-lfs/git-lfs/issues/937) |
11 | :soon: | Add ref information to upload request | [#969](https://github.com/git-lfs/git-lfs/issues/969) |
12 | :soon: | Socks proxy support | [#1424](https://github.com/git-lfs/git-lfs/issues/1424) |
13 | :no_entry_sign: | Not following 301 redirect | [#1129](https://github.com/git-lfs/git-lfs/issues/1129) |
14 | | add all lfs.\* git config keys to git lfs env output | |
15 | | credential output hidden while transferring files | [#387](https://github.com/git-lfs/git-lfs/pull/387) |
16 | | Support multiple git alternates | |
17 | | Investigate `git lfs checkout` hardlinking instead of copying files. | |
18 | | Investigate `--shared` and `--dissociate` options for `git clone` (similar to `--references`) | |
19 | | Investigate `GIT_SSH_COMMAND` | [#1142](https://github.com/git-lfs/git-lfs/issues/1142) | |
20 | | Teach `git lfs install` to use `git config --system` instead of `git config --global` by default | [#1177](https://github.com/git-lfs/git-lfs/pull/1177) |
21 | | Investigate `git -c lfs.url=... lfs clone` usage | |
22 | | Test that manpages are built and included | [#1149](https://github.com/git-lfs/git-lfs/pull/1149) |
23 | | Update CI to build from source outside of git repo | [#1156](https://github.com/git-lfs/git-lfs/issues/1156#issuecomment-211574343) |
24 | :soon: | Teach `git lfs track` and others to warn when `git lfs install` hasn't been run (or auto-install) | [#1167](https://github.com/git-lfs/git-lfs/issues/1167) |
25 | | Investigate hanging pushes/pulls when git credential helper is not set | [#197](https://github.com/git-lfs/git-lfs/issues/197) |
26 | | Support git ssh shorthands | [#278](https://github.com/git-lfs/git-lfs/issues/278) |
27 | | Support `GIT_CONFIG` | [#318](https://github.com/git-lfs/git-lfs/issues/318) |
28 | | Warn when Git version is unsupported | [#410](https://github.com/git-lfs/git-lfs/issues/410) |
29 | | Detect when credential cacher is not setup | [#523](https://github.com/git-lfs/git-lfs/issues/523) |
30 | | Fix error logging from `git clone` errors | [#513](https://github.com/git-lfs/git-lfs/issues/513) |
31 | | Investigate cherry picking issues | [#438](https://github.com/git-lfs/git-lfs/issues/438) |
32 | | dynamic blob size cutoff for pointers | [#524](https://github.com/git-lfs/git-lfs/issues/524) |
33 | | windows `--help` support | [#394](https://github.com/git-lfs/git-lfs/issues/394) |
34 | | Investigate git hook installs within git worktree | [#1385](https://github.com/git-lfs/git-lfs/issues/1385) |
35 | | Support ssh username in ssh config | [#754](https://github.com/git-lfs/git-lfs/issues/754) |
36 | | Investigate `autocrlf` for lfs objects | [#723](https://github.com/git-lfs/git-lfs/issues/723) |
37
38 ## Upcoming Features
39
40 | | Name | Ref |
41 | ------ | ---- | --- |
42 | :construction: | File locking | [#666](https://github.com/git-lfs/git-lfs/pull/666) |
43 | :ship: | Resumable uploads and downloads | [#414](https://github.com/git-lfs/git-lfs/issues/414) |
44 | :construction: | Wrapped versions of `git pull` & `git checkout` that optimize without filters like `git lfs clone` | |
45 | | Remove non-batch API route in client | |
46
47 ## Possible Features
48
49 | | Name | Ref |
50 | ------ | ---- | --- |
51 | | Support tracking files by size | [#282](https://github.com/git-lfs/git-lfs/issues/282)
52 | | Binary diffing - reduce the amount of content sent over the wire. | |
53 | | Client side metrics reporting, so the Git LFS server can optionally track how clients are performing. | |
54 | | Pure SSH: full API & transfer support for SSH without redirect to HTTP | |
55 | | Compression of files in `.git/lfs/objects` | [#260](https://github.com/git-lfs/git-lfs/issues/260) |
56 | | LFS Migration tool | [#326](https://github.com/git-lfs/git-lfs/issues/326) |
57 | | Automatic upgrades | [#531](https://github.com/gihtub/git-lfs/issues/531) |
58 | | Investigate `git add` hash caching | [#574](https://github.com/git-lfs/git-lfs/issues/574) |
59 | | `git lfs archive` command | [#1322](https://github.com/git-lfs/git-lfs/issues/1322) |
60 | | Support 507 http responses | [#1327](https://github.com/git-lfs/git-lfs/issues/1327) |
61 | | Investigate shared object directory | [#766](https://github.com/git-lfs/git-lfs/issues/766) |
62
63 ## Project Related
64
65 These are items that don't affect Git LFS end users.
66
67 | | Name | Ref |
68 | ------ | ---- | --- |
69 | :ship: | CI builds for Windows. | [#1567](https://github.com/git-lfs/git-lfs/pull/1567) |
70 | | Automated build servers that build Git LFS on native platforms. | |
71 | | Automated QA test suite for running release candidates through a gauntlet of open source and proprietary Git LFS environments. | |
72 | | Automatic updates of the Git LFS client. | [#531](https://github.com/git-lfs/git-lfs/issues/531) |
73
74 ## Legend
75
76 * :ship: - Completed
77 * :construction: - In Progress
78 * :soon: - Up next
79 * :no_entry_sign: - Blocked
80
81 ## How this works
82
83 0. Roadmap items are listed within their category in order of priority.
84 0. Roadmap items are kept up-to-date with the above legend.
85 0. Roadmap items are pruned once a release of LFS has been published.