Show HN: Learn to use email with Git
git-send-email.io
git-send-email.io
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/la...
<label style="padding:5pt"><input type=checkbox> this is label</label>
Here is how I started doing it:
<label for=abc><input type=checkbox id=abc ...> display alphabet<label>
Anti-snark edit: what's the URL to a specific step?
https://lists.sr.ht/~sircmpwn/public-inbox/%3C20190404212127...
Find the message ID to reply to.
Don't stress too much about getting
this step right, but it's a nice
Courtesy for the people receiving
your patch. On the mailing list
Archives, look up the latest email
In your thread and expand "Details"
to find the Message ID. Copy this
for the next step.
IMHO, needing to lookup email header IDs for each patch revision is an insane and terrible workflow! (At least, compared to gitbucketlabhub.)Other mail clients should have something similar.
Edit: you don't have to set up a terminal email client at this point, but if you figure out how to use git-send-email, you're just inches away from using mutt.
I should be able to create a credential that's valid for just SMTP, with no IMAP or cal/card access at all.
I've been toying with writing a credential helper to obtain the oauth bearer token, but Authen::SASL::XOAUTH2 still needs to be written so that git-send-mail knows how to use it.
The magic password is the token. The "scoping" options are just a label (I suppose this might have recently changed), mostly targeting folks who are looking at using legacy mail/cal/card clients with only user/pass support, and are unsure what's going on.
edit: Just triple checked -- the 16 character string returned when creating a "Calendar on iPhone" password works perfectly for SMTP via PLAIN over TLS.
> Without any credential helpers defined, Git will try the following strategies to ask the user for usernames and passwords:
> 1. If the GIT_ASKPASS environment variable is set, the program specified by the variable is invoked. A suitable prompt is provided to the program on the command line, and the user’s input is read from its standard output.
> 2. Otherwise, if the core.askPass configuration variable is set, its value is used as above.
> 3. Otherwise, if the SSH_ASKPASS environment variable is set, its value is used as above.
> 4. Otherwise, the user is prompted on the terminal.
So, for example, if you're using `pass`, the password-store, you can just set one of these to `pass smtp/me@example.com`, and pass will prompt you for your decryption password for your smtp password.
That's not necessary for git. git has a facility called git credential that can allow it to cache the password (or other piece of information) for a given period of time[1]. So, when you use git send-email, it will prompt you for the the password.
Is there such a thing as SSMTP/SIMAP (i.e. something that is to SMTP/IMAP as SFTP is to FTP - i.e. an SSH-based thing that sends and/or receives mail to/from a mail server)? It'd be badass to be able to literally just use my SSH keys to authenticate when sending/receiving mail.
Edit: My setup with mu4e is described in more detail at https://defanor.uberspace.net/notes/email.xhtml
If I'm not your target audience, then that's fine, but it might be helpful to have some background on this.
Otherwise, the site and layout look great to me. It is a little tricky to have step 1 be installation, because someone who just wants to find out more without installing might stop there (I was a little deterred, then I just picked a random OS and clicked through the instructions).
This is a great reason to use email! You don't need a platform at all, you can use the tools presented in this tutorial to email your work directly to your collaborators.
Outside of that, email is used for collaboration with many large and important projects, such as Linux, PostgreSQL, and git itself. I have some writings about why I think this workflow is nice:
https://drewdevault.com/2018/07/23/Git-is-already-distribute...
https://drewdevault.com/2018/07/02/Email-driven-git.html
(forgive the formatting on the latter, fix is being deployed now)
My understanding of git is that there is a server, and users push/pull to the server.
So from an initial look at everything you provided, it sounded to me like git-send-email gives people email notifications to know what has been changed on the server, for example. I don't know what "email-driven workflow" means and that was my best guess.
But from someone else's reply, it sounds like you are discussing an alternative to the server model, where there is no server at all and pushes and pulls are communicated completely via email. This seems consistent with your 2018-07-02 post, but honestly I didn't really get it from there the first time. Is it correct?
Git is a distributed VCS and so doesn't need a (centralised) server to share code.
Sites like GitHub, GitLab or SourceHut let you host a git repository that you can push/pull from. It's a convenient way of sharing code, and collaborating with others.
But you can also apply changes to a repo using patches prepared by email.
> ....where there is no server at all and pushes and pulls are communicated completely via email.
I'd emphasise that changes to a repo can come from diffs or patches as well, not just pushes/pulls from another repository.
FWIW, Git book has details about how one might make use of patches received by email. https://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a... https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Em...
This is a different workflow. Instead of staying in sync via a hosted service, people stay in sync and send 'pull requests' via email.
``git daemon`` is entirely self-contained and permits the git:// protocol for clones/push/pull etc
``git instaweb`` will piggyback a simple git web service on top of a number of httpd's including lighttpd.
I'm sure that git's homepage used to use instaweb for it's repo access, but it seems they've switched to github :(
I think the author of this is the same one who has pushed back against ForgeFed and is now tackling some of the criticisms shared in response to his "git is already decentralized" piece (namely, git over email being too hard or not well known enough).
Keyboard and screen-reader accessibility of the radio button accordion technique is completely ruined by the use of `display: none` on the radio buttons. That could be remedied by zero-sizing them instead in one of quite a few ways. Note however that this will make Up/Down arrows switch section instead of scroll as a user might expect—that’s part of why radio buttons are not a good match for this type of widget (to say nothing of improper exposure to accessibility tech).
Keyboard accessibility is also poor due to weak and missing focus indication.
I would strongly recommend replacing the magic radio button technique with semantically and functionally appropriate <details> elements; then, if you want opening one to close the rest, add a small snippet of JavaScript to that effect. (Then users with JS disabled will be able to open multiple sections, and that’s fine.)
The use of various CSS tricks has the side-effect that scroll position doesn’t always act in the way you might expect. I recommend augmenting such cases with small JS snippets to enhance the behaviour.
If anyone has problems with using closed-source platforms like github, there are open-source alternatives like gogs/gitea so you're fully in charge. Abandoning the openness of such platforms in favor of mailing lists would be a big step backwards.
But email lists (and newsgroups) have one thing that even HN and reddit do not. That is, the ability to quickly see new posts. In HN, I have to search through the entire thread to find new posts when I refresh the page. It's the same issue with reddit unless you're a subreddit moderator or have a reddit gold subscription.
On the contrary, I largely prefer mailing lists for non-code discussions (i.e. things that are not code review or filing bugs). When Swift's mailing lists moved to Discourse I realized that I stopped interacting with it as much because it was more inconvenient to work with (especially on mobile).
What makes mailing lists worse for large discussions? Decent mail readers support threaded conversations and decent mailing list participants know how to quote properly. This has been around for decades and I don't think github discussions add anything except more noise maybe.
the first is rare(in that no one bothers using mail readers) and the latter is non existent in the current generation - which you do have to interact with.
In my experience, any Microsoft Exchange/O365 server will most likely mangle the email server side (introducing quoted-printable encoding characters or changing the message-id field. Gmail will require that you enable insecure application access in order to use git-send-email. If you don't do that, then using git-send-email will result in a authentication failure error (which you can see if you use the --debug flag).
git send-email -v2 ...
I tried to find documentation regarding the -v[0-9]+ parameter but couldn't find it at all. What am I missing in the docs? Seems a lot of guides recommend people to use this feature, however there is not a word regarding it in the git docs. It seems that it takes a positive integer as a parameter and adds it to the [PATCH v1] prefix in the subject.