Push the draco-aw80 branches somewhere #33

Closed
opened 2026-08-28 00:05:17 +00:00 by tiagoagueda · 1 comment
Owner

patches/ now holds a faithful export of both trees, verified byte-exact for the AR100
driver. But an export is not a tree with its history: the draco-aw80 branches in
~/a80/linux and ~/a80/u-boot still exist only on ouranos.

If that host died now, every line of code survives in this repository — the commit history,
the bases, and the ability to rebase cleanly onto a newer mainline would not.

Done when

  • both branches are pushed to a remote (a fork, or bare repos alongside this one)
  • the remotes are recorded in ARCHIVE.md
`patches/` now holds a faithful export of both trees, verified byte-exact for the AR100 driver. But an export is not a tree with its history: the `draco-aw80` branches in `~/a80/linux` and `~/a80/u-boot` still exist only on ouranos. If that host died now, every line of code survives in this repository — the commit history, the bases, and the ability to rebase cleanly onto a newer mainline would not. **Done when** - [ ] both branches are pushed to a remote (a fork, or bare repos alongside this one) - [ ] the remotes are recorded in [ARCHIVE.md](ARCHIVE.md)
Author
Owner

Done 2026-08-29. Both boxes ticked.

linux  draco-aw80 -> tiagoagueda/a80-linux   @0a8c6926d04f   1 480 017 commits
u-boot draco-aw80 -> tiagoagueda/a80-u-boot  @82219ff61d18     106 990 commits

Heads verified against ouranos rather than read off the branch names, and recorded in
ARCHIVE.md along with the bases. draco-aw80 is the default branch on both. Both are public,
matching this repository.

Two obstacles this ticket did not anticipate

A shallow clone cannot be pushed. Both trees were shallow, and the server refuses them
outright:

! [remote rejected] draco-aw80 -> draco-aw80 (shallow update not allowed)

So each needed git fetch --unshallow first - u-boot 60 M -> 375 M in 72 s, linux 297 M ->
5.5 G in 1244 s
. The "just push it" ticket was really 20 minutes and 5 GB of disk before a
single byte could move.

And a 5.5 GB push dies on the reverse proxy, at 241 s, with
fatal: the remote end hung up unexpectedly. Pushing progressively newer tags to a throwaway
staging ref keeps each request small, and that worked:

ok v2.6.12-rc2 (4s)  v3.0 (195s)  v4.0 (212s)  v5.0 (306s)  v6.0 (369s)
   v6.6 (153s)  v6.12 (150s)  v6.16 (108s)  v6.19 (91s)
* [new branch] draco-aw80 -> draco-aw80  [119s]

Both filed against the server as
docker-recipes#78,
together with why git-over-SSH was not an option: Forgejo advertises
ssh://git@192.168.27.38/, which answers nothing from a host on the same /24, and its SSH
port is not published.

Worth knowing

An earlier attempt reported success and had pushed nothing.
fatal: the remote end hung up unexpectedly was followed by Everything up-to-date, and I
reported the branch as pushed - the repository was 22 KB with no branches at all. Checking the
server, not the exit status, is what caught it.

a80-linux is 8.48 GB on the server against 5.5 GB locally, because the staged pushes left
objects unpacked. A server-side git gc would reclaim most of that.

This does not retire patches/: with the bases recorded in ARCHIVE.md, git am still
reconstructs either branch exactly, and it costs kilobytes rather than gigabytes.

**Done 2026-08-29.** Both boxes ticked. ``` linux draco-aw80 -> tiagoagueda/a80-linux @0a8c6926d04f 1 480 017 commits u-boot draco-aw80 -> tiagoagueda/a80-u-boot @82219ff61d18 106 990 commits ``` Heads verified against ouranos rather than read off the branch names, and recorded in `ARCHIVE.md` along with the bases. `draco-aw80` is the default branch on both. Both are public, matching this repository. ## Two obstacles this ticket did not anticipate **A shallow clone cannot be pushed.** Both trees were shallow, and the server refuses them outright: ``` ! [remote rejected] draco-aw80 -> draco-aw80 (shallow update not allowed) ``` So each needed `git fetch --unshallow` first - u-boot 60 M -> 375 M in 72 s, **linux 297 M -> 5.5 G in 1244 s**. The "just push it" ticket was really 20 minutes and 5 GB of disk before a single byte could move. **And a 5.5 GB push dies on the reverse proxy**, at 241 s, with `fatal: the remote end hung up unexpectedly`. Pushing progressively newer tags to a throwaway `staging` ref keeps each request small, and that worked: ``` ok v2.6.12-rc2 (4s) v3.0 (195s) v4.0 (212s) v5.0 (306s) v6.0 (369s) v6.6 (153s) v6.12 (150s) v6.16 (108s) v6.19 (91s) * [new branch] draco-aw80 -> draco-aw80 [119s] ``` Both filed against the server as [docker-recipes#78](https://source.tiagoagueda.com/tiagoagueda/docker-recipes/issues/78), together with why git-over-SSH was not an option: Forgejo advertises `ssh://git@192.168.27.38/`, which answers nothing from a host on the same /24, and its SSH port is not published. ## Worth knowing **An earlier attempt reported success and had pushed nothing.** `fatal: the remote end hung up unexpectedly` was followed by `Everything up-to-date`, and I reported the branch as pushed - the repository was 22 KB with no branches at all. Checking the server, not the exit status, is what caught it. `a80-linux` is 8.48 GB on the server against 5.5 GB locally, because the staged pushes left objects unpacked. A server-side `git gc` would reclaim most of that. This does not retire `patches/`: with the bases recorded in `ARCHIVE.md`, `git am` still reconstructs either branch exactly, and it costs kilobytes rather than gigabytes.
Sign in to join this conversation.
No description provided.