From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id 80EC144CC0DB for <9fans@9fans.net>; Mon, 7 Sep 2020 00:53:35 -0400 (EDT) (envelope-from staal1978@gmail.com) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 5D919F41A88; Mon, 7 Sep 2020 00:53:35 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1599454415; b=KrJiGLH7StsVqr78x8PeeSOwQE5SKXhJvhmhlCZ3lpwqlL3Fxb 8W1K0gfe6jgNqPBlq7GGqtY0KKD9KfrgxOOzADlViM1Phqiy0ootF1xyqPdS/x9/ 4V9R0d1XfndDK4Vblfcr3Txm/Qfdy1WL+GFCDEbRDstQWmrsKZSjGDnFCJ3Db6/Z ec3FVtmCdB53slB0L+zNi2WS+GqcnnSC24FPfYN3K7NMDsgwgSQLtiSKn62TLjaI CQ3eTYeLZfyS7RbhdKlcmJKL+tvbGykacTSNHLsmLWhGV9/C+BYvodt2ybCWTMSl SXAxY5zgvZYLrb6CDNHDmJqY1m8HYyxCQ3cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-type; s=arcseal; t=1599454415; bh=AQFrsnNL5UkFXUwXeMQdsnsPwjAofgA1OdRP3ROIqHs=; b=MdrZflsaf2dN AWy/Lrlw/OJHKCa8fwjj33k7JKIWSik0hawhR4+I48+FoNm1yzWmx7KxAt4040vL ZngmqumPsimmmYszjUfwr3z5yRbVwY+WbKaU4qJatwbJXVKtJWV7xNpb0aoh0NrG UoNOLmf4Xcmyxxhl0IQtRaDfCjU+pfwepZUaWKlC5lAyYhst5jWr9KGCjICUkF0n oZdnboUtbR85CZ73EQ4SmGHq8k9J3helREZNkuQMoxFGJ/GHKfowxQHKtDs22hnw zmOT/SRqaNHmX0bpL8votd+f5W5Kn1ad13cFlhSBIA350so1A0Aqpi+ilvAaM5OP K3u47UUF7A== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=he0+Hdz6 header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.208.171 (mail-lj1-f171.google.com); spf=pass smtp.mailfrom=staal1978@gmail.com smtp.helo=mail-lj1-f171.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=NFLkQegh; x-ptr=pass smtp.helo=mail-lj1-f171.google.com policy.ptr=mail-lj1-f171.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-51 state=0 Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=he0+Hdz6 header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.208.171 (mail-lj1-f171.google.com); spf=pass smtp.mailfrom=staal1978@gmail.com smtp.helo=mail-lj1-f171.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=NFLkQegh; x-ptr=pass smtp.helo=mail-lj1-f171.google.com policy.ptr=mail-lj1-f171.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-51 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegledgfeeiucdltddurdegudehrddttd dmucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgf nhhsuhgsshgtrhhisggvpdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttd enucesvcftvggtihhpihgvnhhtshculddquddttddmnegoufhushhpvggtthffohhmrghi nhculdegledmnecujfgurhepgghfjgfhfffkuffvtgesrgdtreertddtjeenucfhrhhomh eplfgvnhhsucfuthgrrghluceoshhtrggrlhduleejkeesghhmrghilhdrtghomheqnecu ggftrfgrthhtvghrnhepvddvkefhteekvdelffeugedugffgheduhfdugeekjefhgfehle ejvedtteelffdunecuffhomhgrihhnpehhohhsthdrtghomhdpghhithhhuhgsrdhiohen ucfkphepvddtledrkeehrddvtdekrddujedunecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehinhgvthepvddtledrkeehrddvtdekrddujedupdhhvghlohepmhgrihhl qdhljhduqdhfudejuddrghhoohhglhgvrdgtohhmpdhmrghilhhfrhhomhepoehsthgrrg hludeljeeksehgmhgrihhlrdgtohhmqecuuffkkgfgpeekfeejle X-ME-VSScore: -51 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'staal1978@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="staal1978@gmail.com"; helo=mail-lj1-f171.google.com; client-ip=209.85.208.171 Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Mon, 7 Sep 2020 00:53:34 -0400 (EDT) (envelope-from staal1978@gmail.com) Received: by mail-lj1-f171.google.com with SMTP id t23so14521877ljc.3 for <9fans@9fans.net>; Sun, 06 Sep 2020 21:53:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AQFrsnNL5UkFXUwXeMQdsnsPwjAofgA1OdRP3ROIqHs=; b=he0+Hdz652Rznqwrp3ttCtQCix4F+oH+u8qSKlacY2a4m6m5oIiP7eVEQU/sYh7Yay 1P8v3AfmkLJOwApiQ4E3c4tUWG92yvtAIAZUVfyAFxXxvQ7RRM/x1B23r3E6Ln7kqnX5 gdTzIsFXhY3tsZdWmsyE7hMT6g9c1QmF/ZmE/ARkNMjxT+hedUqMu2ILPMUR/BCAO3J5 8aLGl+0bRtAoVGXJDeBcn8R/jLZOqSsWU3Rw1GM5LcXy26U+74Foaz1ukkoOppFpSfo5 +opCUB3WZtD9ju599rJcAX7StF6mbVaZPMGDlW+eFPMuFPBqwsT3oSwBzhDymwf3ZU3W 7Szw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AQFrsnNL5UkFXUwXeMQdsnsPwjAofgA1OdRP3ROIqHs=; b=NFLkQeghaMXBesDdrxNaWjs9j9FsWSvBT+eNfgDh9Z+9NanU8oZlzJ0HjgZyOxG7x5 2rMCjJfa9VLkuX9Kiv4BOO18Y1e8WUIU4YaMOXJ/a5Hy0GM88odUAxfnsKER9bHu3W6w cd9U4THI9dV2ett0LfaOTH3QedcETDr9CBDcoD0xp11M1WtcmjlLknTpCl5DoE28aT5D r/T8jDPQ4sm4skZsNcdp5j4I6ArBD9cG5/XWz/6H/8ANB3ZAZ7CZ+cxcdRGCjQwOap1M tU60XdG9G+3eAnX4DEvl/mBwZ7jTzF56jVC1W4ZdtSY3ymcBXCK3sLVn9SaOOTgY9sos GZ8Q== X-Gm-Message-State: AOAM5332yuuU8EOVohxd1uIW02YYr9AKBFX6pybAvNU1/dlfK50hYIvt FT33n/Q4zAw/nrTY+Wy1nFpU63cOvJWoKEyCiNQ= X-Google-Smtp-Source: ABdhPJxMNVdVF0bu/AfYlSIQVzFqHXb/gbYgMHtA3DlQfCDa8gh3sfU+5GOoFXKRwPBm4pWgRUU0opGv+0+EHzv6j0A= X-Received: by 2002:a05:651c:107b:: with SMTP id y27mr8638786ljm.338.1599454413445; Sun, 06 Sep 2020 21:53:33 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jens Staal Date: Mon, 7 Sep 2020 06:53:22 +0200 Message-ID: Subject: Re: [9front] git/serve, git/compat To: 9front@9front.org Cc: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary="00000000000025dd8405aeb20047" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 18ab8b12-f0c6-11ea-9a1c-8cb4d0ffedbb --00000000000025dd8405aeb20047 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Awesome! I just tried to package lufia's libressl but got stuck on that a script needed "real" git. Will try this! Den s=C3=B6n 6 sep. 2020 23:47 skrev: > Hey, > > I try not to be too verbose about new features landing in git9, but > I think these warrant some noise. Both git/compat and git/serve > have landed in the last few days. > > Git/compat is a script that drops you into a new rc shell with > a 'git' script in $path. This git script provides enough of the > upstream git interface that 'go get' and friends work out of the > box, as long as you're in a git repository. Thanks to halfwit > for doing the work on this! > > % git/compat > nested% cd $gorepo > nested% go get ./... > > Git/serve is exactly what it sounds like: A git server that runs > on plan 9. It supports both read-only and read-write access. > > # read-only git://$host server, works with git > % aux/listen1 'tcp!*!9418' git/serve > > Once that's running, you can clone from it using any git client > that supports the git:// protocol > > unix$ git clone git://host/path/to/repo.git > p9% git/clone git://host.com/path/to/repo > > You can also tunnel it over TLS with plan 9 auth, if you want > authenticated pushes: > > % aux/listen1 -t 'tcp!*!9418' tlsclient -a git/serve -wr`{pwd} > > With this, you currently need a plan 9 git client, since unix > git doesn't know how to tunnel over tlsclient or authenticate > with an auth server: > > p9% git/clone hjgit://host.com/path/to/repo > > But we can probably get a simple remote helper for unix git that > will dial using a plan9port copy of tlsclient: > > https://rovaughn.github.io/2015-2-9.html > > There are still rough edges: > > Git/compat only works under a git repository. There are some > commands that 'go get' invokes when run outside of a repository > that need some work. > > Git/serve does not currently support bare repositories, so > all repositories served must have a '.git' directory inside > them: > > % ls /usr/ori/srv/git9 > .git/ > > It's acceptably fast for small repositories, but there's a lot > of low hanging fruit to pick. And of course, it's only been > tested rather lightly. > > --00000000000025dd8405aeb20047 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Awesome! I just tried to package lufia's libress= l but got stuck on that a script needed "real" git. Will try this= !

D= en s=C3=B6n 6 sep. 2020 23:47 <ori= @eigenstate.org> skrev:
Hey,=

I try not to be too verbose about new features landing in git9, but
I think these warrant some=C2=A0 noise. Both git/compat and git/serve
have landed in the last few days.

Git/compat is a script that drops you into a new rc shell with
a 'git' script in $path. This git script provides enough of the
upstream git interface that 'go get' and friends work out of the box, as long as you're in a git repository. Thanks to halfwit
for doing the work on this!

=C2=A0 =C2=A0 =C2=A0 =C2=A0 % git/compat
=C2=A0 =C2=A0 =C2=A0 =C2=A0 nested% cd $gorepo
=C2=A0 =C2=A0 =C2=A0 =C2=A0 nested% go get ./...

Git/serve is exactly what it sounds like: A git server that runs
on plan 9. It supports both read-only and read-write access.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 # read-only git://$host server, works with git =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 % aux/listen1 'tcp!*!9418' git/serve
Once that's running, you can clone from it using any git client
that supports the git:// protocol

=C2=A0 =C2=A0 =C2=A0 =C2=A0 unix$ git clone git://host/path/to/repo.git
=C2=A0 =C2=A0 =C2=A0 =C2=A0 p9% git/clone git://host.com/path= /to/repo

You can also tunnel it over TLS with plan 9 auth, if you want
authenticated pushes:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 % aux/listen1 -t 'tcp!*!9418' tlsclient= -a git/serve -wr`{pwd}

With this, you currently need a plan 9 git client, since unix
git doesn't know how to tunnel over tlsclient or authenticate
with an auth server:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 p9% git/clone hjgit://host.com/pa= th/to/repo

But we can probably get a simple remote helper for unix git that
will dial using a plan9port copy of tlsclient:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 https://rovaughn.gith= ub.io/2015-2-9.html

There are still rough edges:

Git/compat only works under a git repository. There are some
commands that 'go get' invokes when run outside of a repository
that need some work.

Git/serve does not currently support bare repositories, so
all repositories served must have a '.git' directory inside
them:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 % ls /usr/ori/srv/git9
=C2=A0 =C2=A0 =C2=A0 =C2=A0 .git/

It's acceptably fast for small repositories, but there's a lot
of low hanging fruit to pick. And of course, it's only been
tested rather lightly.

--00000000000025dd8405aeb20047--