<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Doing this via ssh seemed easier and straight forward as it integrated<br>
into an existing backend infrastructure, but the more time I spent<br>
thinking about the details of how this would be implemented, the more I<br>
questioned my earlier assumptions.<br>
<br></blockquote><div><br></div><div>I always just felt icky about this. Using various git and ssh tools on Windows (for work) is depressing, and they all make a real mess of ssh, trying to push you towards using putty/pageant as opposed to linux/cygwin/msys .ssh dir. It's a nightmare trying to support other developers unfamiliar with git/linux when you're trying to be an evangelist. I realise those same problems wouldn't exist with libgit as it would all be hidden, but it just seemed like a lot of hoop jumping. </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I spent a good chunk of today stubbing out what I think Martin suggested.<br>
I pushed this to master so people can play with it.<br>
<br></blockquote><div><br></div><div>Great. I'll certainly have a look. </div><div> </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To avoid people messing with things I am encoding email so that everything<br>
that isn't a letter, number, '.', '-', '_' is dropped and the '@' is<br>
changed to "_at_". So <a href="mailto:subsurface@hohndel.org">subsurface@hohndel.org</a> turns into<br>
<a href="http://subsurface_at_hohndel.org" target="_blank">subsurface_at_hohndel.org</a>. I think this should still keep them uniqu but<br>
prevent bad people from trying to insert shell escapes, functions,<br>
processes and what not into things...<br></blockquote><div><br></div><div>That seems like a sane choice. Dropping chars, though, could lead to different email addresses mapping to the same account. I know that is unlikely to happen, but would it be just as simple to use an SHA hash of the email for the username? Please feel free to shoot me down on that one. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So this is all done via https (and yes, I ended up buying a wildcard<br>
certificate for Subsurface). Once I figured out (and cleaned up) the UI,<br>
we can even allow additional branches so people easily can track the dives<br>
for multiple divers without having to change their email/password in the<br>
settings).<br></blockquote><div><br></div><div>Slightly off-topic and perhaps a sensitive subject. Might it be time to consider accepting donations to cover hosting, certs, bandwidth, etc?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Right now I realize that there are no checks on what users store on the<br>
server - I need to figure out a way to do some sanity checks so that this<br>
doesn't become an abused free git server for people. But no one on this<br>
list would do something like that to me, right?<br>
<br></blockquote><div><br></div><div>You could probably use a server-side hook which simply rejects commits containing any files other than those matching the pattern used for the dive format. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Anyway, I'm sure I'm missing two thirds of the explanation, but please<br>
poke at it and let me know what you think, what I need to change, etc.<br>
<br>
I simply ran out of steam trying to implement the automated repo setup<br>
(the authentication / authorization infrastructures already is in place).<br>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div> <br></div></div>This is really exciting stuff, and is something I've been looking for since I started diving. It'll take subsurface to a new level. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>