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 7036044C69BB for <9fans@9fans.net>; Sun, 6 Sep 2020 17:46:53 -0400 (EDT) (envelope-from ori@eigenstate.org) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 1549342A478; Sun, 6 Sep 2020 17:46:53 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1599428813; b=m1FJUB3jGzXU6RyI0UcHMvQtdWiOsvBUC9sQcqMQG/s8XyPhfV TvJUqTpo2GWU47RmFWj/3ARA0DUoQ/kNT3pJ/70O1srASJj8aSbUMjg9SVTs+DYB d3oA2iHsLRwoPnB699MZSOPq3FSIaZ7PfV8iP4N99hUZSyrRUHfvcFdtUDGgg1ZZ dVP0HCi0bxe8A9LeEjO4s8QSWOvQbuAi8MEaIgfPjf2unSzraWwh7Cwd6Jpdpfzd G72YifZms1cX3hzBOqrxuy5gc9jZp4iAzCU0Q9WB1Frb8+J5poVGcqpIYfU5rW7e z3Gx3MWB1JQ6EYg3QmMWVudBV7pcT7dI0Wxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=message-id:to:subject:date:from:mime-version :content-type:content-transfer-encoding; s=arcseal; t= 1599428813; bh=RPwxzpUJlFvW+n49sf3xriQCc1J/iUaO4hbspzJPAbA=; b=U IqiCHF4us3HOcBCZSY0xzK8Ls5VSIgFBnBNuuNSFsgnrF/RDdAWH2O1hXtLWd9cF lsC46pd9trL4l0Y1YfqoGlOedRx/+FEAPmT8tm9SwyPgMAb+4sNzzXYRr5BVAORq Wh8IQWB/vYIb44TOp0nj4Fy8FxGPYJ9HPopKqisxtdXMOP5Kz1mRG10x8WUfMmzz gVw9RdLjgS3W+KP8JBgm6VATZM1pr7NRZsMPRM8Q8TXoc43OxZb5SsFD6EzkfsUF fO5k1/wBD202GooTV3g/wzfxeX0zdKOwAobeToN3tpVVc9EaXkJriygCXIvy7ssS RVSuKJsjh2ODy7i4m2ogA== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=none (no signatures found); dmarc=pass policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=eigenstate.org; iprev=pass smtp.remote-ip=206.124.132.107 (mimir.eigenstate.org); spf=pass smtp.mailfrom=ori@eigenstate.org smtp.helo=mimir.eigenstate.org; x-aligned-from=pass (Address match); x-ptr=pass smtp.helo=mimir.eigenstate.org policy.ptr=mimir.eigenstate.org; x-return-mx=pass header.domain=eigenstate.org policy.is_org=yes (MX Records found: kusuri.pikopiko.org,nokogiri.pikopiko.org,mail.pikopiko.org,eigenstate.org); x-return-mx=pass smtp.domain=eigenstate.org policy.is_org=yes (MX Records found: kusuri.pikopiko.org,nokogiri.pikopiko.org,mail.pikopiko.org,eigenstate.org); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=50 state=0 Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=none (Domain is not BIMI enabled); dkim=none (no signatures found); dmarc=pass policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=eigenstate.org; iprev=pass smtp.remote-ip=206.124.132.107 (mimir.eigenstate.org); spf=pass smtp.mailfrom=ori@eigenstate.org smtp.helo=mimir.eigenstate.org; x-aligned-from=pass (Address match); x-ptr=pass smtp.helo=mimir.eigenstate.org policy.ptr=mimir.eigenstate.org; x-return-mx=pass header.domain=eigenstate.org policy.is_org=yes (MX Records found: kusuri.pikopiko.org,nokogiri.pikopiko.org,mail.pikopiko.org,eigenstate.org); x-return-mx=pass smtp.domain=eigenstate.org policy.is_org=yes (MX Records found: kusuri.pikopiko.org,nokogiri.pikopiko.org,mail.pikopiko.org,eigenstate.org); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=50 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegjedgudeijecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecuogfuuhhsphgvtghtff homhgrihhnucdlgeelmdenogfuphgrmhfkphfpvghtfihorhhkucdluddmnecujfgurhep kffvufffhfggtgfgsehtjeejtddttddvnecuhfhrohhmpehorhhisegvihhgvghnshhtrg htvgdrohhrghenucggtffrrghtthgvrhhnpeejueduleekieduffelhefhiedtuddutdek gefhvedtffehteegudekleeikefhheenucffohhmrghinhepghhithhhuhgsrdhiohenuc fkphepvddtiedruddvgedrudefvddruddtjedpjeegrddutddurddvrdeinecuufhprghm kfhppfgvthifohhrkhepvddtiedruddvgedrudefvddruddtjeenucevlhhushhtvghruf hiiigvpedtnecurfgrrhgrmhepihhnvghtpedvtdeirdduvdegrddufedvrddutdejpdhh vghlohepmhhimhhirhdrvghighgvnhhsthgrthgvrdhorhhgpdhmrghilhhfrhhomhepoe horhhisegvihhgvghnshhtrghtvgdrohhrgheq X-ME-VSScore: 50 X-ME-VSCategory: clean Received-SPF: pass (eigenstate.org: 206.124.132.107 is authorized to use 'ori@eigenstate.org' in 'mfrom' identity (mechanism 'mx' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="ori@eigenstate.org"; helo=mimir.eigenstate.org; client-ip=206.124.132.107 Received: from mimir.eigenstate.org (mimir.eigenstate.org [206.124.132.107]) (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>; Sun, 6 Sep 2020 17:46:52 -0400 (EDT) (envelope-from ori@eigenstate.org) Received: from abbatoir.fios-router.home (pool-74-101-2-6.nycmny.fios.verizon.net [74.101.2.6]) by mimir.eigenstate.org (OpenSMTPD) with ESMTPSA id a0af5b18 (TLSv1.2:ECDHE-RSA-AES256-SHA:256:NO); Sun, 6 Sep 2020 14:46:51 -0700 (PDT) Message-ID: To: 9front@9front.org, 9fans@9fans.net Subject: git/serve, git/compat Date: Sun, 06 Sep 2020 14:46:50 -0700 From: ori@eigenstate.org MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 7d0cf212-f08a-11ea-8959-a286cb9b6aa4 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.