Skip to content

Commit 2b5d891

Browse files
committed
Sketch of next work block to get pack generation going
1 parent 58e40b9 commit 2b5d891

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

tasks.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1+
### Send Pack (client to server)
2+
3+
* **git-odb**
4+
5+
The below is a very early draft - it would be better to study existing implementations first to get a better overview on what (not) to do.
6+
This one starts with the fun part to allow writing tests early and experiment with different diff algorithms and potentially their performance.
7+
8+
* [ ] generate a pack from objects received by an iterator producing
9+
* [ ] base objects only
10+
* [ ] best-fit delta objects using the [similar][sim-crate]
11+
* [ ] A mechanism to declare some bases to be 'out of pack' for thin pack support
12+
* [ ] **Traversal** (as building blocks to feed pack generation)
13+
* [ ] Traverse a commit graph (look around to see what's common, if in doubt walk back the commit graph and see how to deal with branching)
14+
* [ ] Traverse trees
15+
* [ ] **Iterator** to feed pack generation efficiently
16+
17+
* **git-transport**
18+
19+
Certainly needs more research, but roughly…
20+
21+
* [ ] Server side `accept()`
22+
* [ ] http(s)
23+
* [ ] ssh
24+
* [ ] ~~daemon~~ probaby only used in testing, and we might implement it if it's useful for us as well
25+
26+
* **git-protocol**
27+
28+
* [ ] Server side chatter to negotiate a pack for
29+
* [ ] protocol V2
30+
* [ ] protocol V1 (_probably not worth it, let's see_)
31+
32+
* **gixp serve**
33+
34+
Probably more like a toy at first merely for testing operation against various git clients.
35+
36+
* [ ] A server able to answer via
37+
* [ ] http(s)
38+
* [ ] file protocol (or remote invocation via SSH)
39+
40+
[sim-crate]: https://crates.io/crates/similar
41+
142
### Repository Clone
243

344
* **git-odb**

0 commit comments

Comments
 (0)