AminetAminet
Search:
85461 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/misc/am-git.lha

Mirror:Random
Showing: ppc-amigaos icongeneric icon
No screenshot available
Short:git client (clone/commit/push/pull)
Author:"Anders Kjeldsen" kjeldsenanders at gmail.com
Uploader:Anders Kjeldsen <kjeldsenanders gmail com>
Type:dev/misc
Version:0.12.1
Architecture:m68k-amigaos
Date:2026-08-03
Requires:AmiSSL 4+ (https remotes); bebbossh (optional, ssh remotes)
Distribution:Aminet
Download:dev/misc/am-git.lha - View contents
Readme:dev/misc/am-git.readme
Downloads:565

am-git is a native git client for AmigaOS, written in AmLang.
It speaks the git smart protocol directly over TCP/TLS - there
is no shelling out to a real git binary at runtime.

Commands: init, clone, fetch, pull, push, commit, add, unstage,
rm, mv, status, log, diff, show, branch, tag, checkout, merge,
rebase, cherry-pick, revert, reset, merge-base, config and more.
Clone/fetch/push/pull work over https://, http:// and ssh
remotes (validated byte-for-byte against reference git output
on GitHub and a local git http-backend).

https:// remotes need AmiSSL 4+. Per-host credentials can be
kept in ENV:AM_GIT_NETRC (netrc format), with
AM_GIT_USERNAME/AM_GIT_PASSWORD as a simple single-login
fallback - use a personal access token for GitHub.

ssh remotes use an external ssh client - BebboSSH from Aminet:
  1. setenv AM_GIT_SSH bebbossh
  2. bebbosshkeygen -f ENVARC:.ssh/id_ed25519
  3. register ENVARC:.ssh/id_ed25519.pub with the server
     (GitHub: Settings -> SSH and GPG keys)
On first connect am-git forwards bebbossh's trust-this-host
question to your shell; answer yes once per host.

Set stack to at least 100000 before running.

Changes in 0.12.1 (performance and fixes):
 - Packed repositories are much faster. am-git now writes
   a small index (.amidx) next to each packfile, so
   commands read only the objects they need instead of
   parsing the whole pack on every run.
 - status/diff no longer re-hash unchanged files: they use
   the index's stored size and timestamp (the same trick
   real git uses), so status is quick even on large trees.
 - Reading large files is dramatically faster (bulk reads
   instead of one byte at a time).
 - Fixed: files that are tracked but sit under a
   .gitignore'd directory were wrongly reported as
   deleted; they are now handled like real git.
 - commit reads user.name / user.email from .git/config
   and ~/.gitconfig, not just environment variables, so it
   works on an already-configured repo.
 - New command: unstage <path> - the inverse of add
   (like git restore --staged / git reset HEAD <path>).
 - show <commit>:<path> now prints a file's contents at
   that commit, and log accepts a start ref
   (log <branch|tag|commit>).

See am-git.txt in the archive for full usage, the complete
command set and credential setup.


Contents of dev/misc/am-git.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                1719880 4949556  34.7% -lh5- ce2b Aug  3 20:27 am-git/am-git
[Amiga]                   1426    2648  53.9% -lh5- 2e54 Aug  3 20:27 am-git/am-git.readme
[Amiga]                   3180    8055  39.5% -lh5- 2e34 Aug  3 20:27 am-git/am-git.txt
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         3 files 1724486 4960259  34.8%            Aug  3 23:57
Page generated in 0.01 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>