9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Dave MacFarlane <driusan@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: [9fans] git client-ish
Date: Sat,  3 Dec 2016 14:20:43 -0500	[thread overview]
Message-ID: <CAG2UyHoAan2UJp_y9Hk4i9f_u0h8Hqae5cf554h4WaTRSDdY7A@mail.gmail.com> (raw)

I mentioned in another thread that I had started working on a pure go
git client a while ago, then abandoned it, which gave me an itch to
pick it up again. I've finally implemented enough that it can
bootstrap its own development, and theoretically be used on Plan 9,
but then I realized I don't currently have any machines with all of
Plan 9, Go, and a network connection to test it on.

Would someone who has all of the above kindly try compiling it on Plan
9 and let me know if there's any problems? It's at
https://github.com/driusan/go-git.You'll need the 9legacy git rc hack
for Go to bootstrap it..

You should be able to:
go-git init
go-git clone*
go-git fetch*
go-git add file (from the root of the working directory only)
go-git checkout file (same)
go-git commit -m 'message'
go-git status
go-git merge (fast-forward only)
go-git push works over https to GitLab, but not GitHub (GitHub
responds with "200 OK" and no body but doesn't update the references,
so I opened a ticket to see if I can get more information from them
about why it doesn't work.. you also need to run as "go-git push
localbranchname", which isn't the standard git command line.. )

The happy paths for a few other git plumbing commands are implemented.

The code's not very well written (I didn't know much about git
internals or Go when I started, and mostly just wanted to hack
something together that works at first), but if anyone wants to
contribute, you can try to email me a patch using ape/diff in some
kind of format that I can apply under DragonFlyBSD and commit under
your name until whatever the issue with GitHub is is resolved..

* large repositories will likely crash because the Go zlib
implementation is greedy on the underlying io.Reader, and the hack
that I added to rewind to the end of the last compressed block when
reading packfiles isn't 100% accurate.

- Dave



             reply	other threads:[~2016-12-03 19:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-03 19:20 Dave MacFarlane [this message]
2016-12-03 20:05 ` Bakul Shah
2016-12-04  1:12 ` Chris McGee
2016-12-04  2:14   ` Dave MacFarlane
2016-12-05 17:14   ` Dave MacFarlane
2016-12-05 18:49     ` Chris McGee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAG2UyHoAan2UJp_y9Hk4i9f_u0h8Hqae5cf554h4WaTRSDdY7A@mail.gmail.com \
    --to=driusan@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).