Skip to content

Commit 0ee7086

Browse files
committed
reorganize tasks to better match priorities
1 parent 5f66ee0 commit 0ee7086

File tree

1 file changed

+46
-42
lines changed

1 file changed

+46
-42
lines changed

tasks.md

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,50 @@
11
This file sketches out the tasks required to be able to clone a repository whilst checking out its head ref.
22

3-
### Index, worktree and diffing
3+
### Repository Clone
4+
5+
* **git-odb**
6+
* [x] all docs, sans examples
7+
* [x] Rename pack data/pack index `Kind` to `Version` or similar, because that's what it really is.
8+
* **git-object** refactor
9+
* [x] split `Id` and everything hash related into `git-hash`
10+
* [x] use `git-hash` inside of `git-features`, remove cycle
11+
* **git-config**
12+
* [x] Thanks to a generous contribution it's mostly done and well on the way
13+
* [ ] Push it towards 1.0
14+
* [ ] `Config` type which integrates multiple files into one interface, much like a *multi* version of `File`
15+
* [x] Make `gix organize` use `git-config` on single files (the repository configuration)
16+
* **git-ref**
17+
* [x] transactional creation of refs
18+
* [x] iteration of refs
19+
* **git-index**
20+
* [ ] Create an index from tree
21+
* **git-bitmap**
22+
* [ ]
23+
* **git-worktree**
24+
* [ ] checkout an index
25+
* **git-repository**
26+
* [x] instance for a valid looking repository
27+
* [ ] support shallow repos/references
28+
* [ ] create-update refs as received from clone/git-receive-pack safely (i.e. with required locking)
29+
* [ ] clone from https remote
30+
* **gix repository clone**
31+
* [ ] try initializing repo on output path - if so, use that to learn about pack location and place new pack there, allow Repo to create refs somehow.
32+
* _probably this is done using the repository itself, which steers the whole process and injects it's own delegates_.
33+
* [ ] otherwise create the scaffolding needed for a new repository, probably based on `init` implementation
34+
* **gix pack receive**
35+
* [x] resolve thin pack with Bundle
36+
37+
### FSCK an entire repository
38+
39+
* **multi-db** (incorporate object lookup for loose objects and packs)
40+
* [x] multi-threaded
41+
* [x] delta-tree cache for speedups
42+
* [ ] ref-validity check by traversing everything, including reflog, checking reachability of objects accordingly
43+
* [x] fs-check - verify all object content of a git repository
44+
* probably this should be based on indexed pack traversal for maximum decoding speed and not on individual
45+
object lookup
46+
47+
### Index, worktree and diffing - `git status` like
448

549
* [ ] a complete index implementation
650
* [ ] an understanding on how worktrees work (also consider `git worktree`) in conjunction git-index
@@ -19,7 +63,7 @@ This file sketches out the tasks required to be able to clone a repository whils
1963
* [ ] `ReceivePack` logic for V1 and V2
2064
* [ ] _async_ & _blocking_ negotiation of commits
2165

22-
### Client fetch/pull (server to client)
66+
### Server fetch/pull (server to client)
2367

2468
* **git-odb**
2569

@@ -60,46 +104,6 @@ Probably more like a toy at first merely for testing operation against various g
60104

61105
[sim-crate]: https://crates.io/crates/similar
62106

63-
### Repository Clone
64-
65-
* **git-odb**
66-
* [x] all docs, sans examples
67-
* [x] Rename pack data/pack index `Kind` to `Version` or similar, because that's what it really is.
68-
* **git-object** refactor
69-
* [x] split `Id` and everything hash related into `git-hash`
70-
* [x] use `git-hash` inside of `git-features`, remove cycle
71-
* **git-config**
72-
* [x] Thanks to a generous contribution it's mostly done and well on the way
73-
* [ ] Push it towards 1.0
74-
* [ ] `Config` type which integrates multiple files into one interface, much like a *multi* version of `File`
75-
* [x] Make `gix organize` use `git-config` on single files (the repository configuration)
76-
* **git-ref**
77-
* [x] transactional creation of refs
78-
* [x] iteration of refs
79-
* **git-index**
80-
* [ ] Create an index from tree
81-
* [ ] Checkout index to worktree
82-
* **git-repository**
83-
* [x] instance for a valid looking repository
84-
* [ ] support shallow repos/references
85-
* [ ] create-update refs as received from clone/git-receive-pack safely (i.e. with required locking)
86-
* [ ] clone from https remote
87-
* **gix repository clone**
88-
* [ ] try initializing repo on output path - if so, use that to learn about pack location and place new pack there, allow Repo to create refs somehow.
89-
* _probably this is done using the repository itself, which steers the whole process and injects it's own delegates_.
90-
* [ ] otherwise create the scaffolding needed for a new repository, probably based on `init` implementation
91-
* **gix pack receive**
92-
* [x] resolve thin pack with Bundle
93-
94-
### FSCK an entire repository
95-
96-
* **multi-db** (incorporate object lookup for loose objects and packs)
97-
* [x] multi-threaded
98-
* [x] delta-tree cache for speedups
99-
* [ ] ref-validity check by traversing everything, including reflog, checking reachability of objects accordingly
100-
* [x] fs-check - verify all object content of a git repository
101-
* probably this should be based on indexed pack traversal for maximum decoding speed and not on individual
102-
object lookup
103107

104108
### gix organize
105109

0 commit comments

Comments
 (0)