Re: A static site repo viewer
Tucker McKnight <[email protected]> Sat, 29 Mar 2025 01:49:31 -0600
| Newsgroups | gmane.comp.version-control.darcs.user |
|---|---|
| Message-ID | <CAE1hpOjhCPV4EANaHz+GDOiTUN4YKVgMCKU21QVruGze7MCVzg@mail.gmail.com> |
--===============3788031157808619767== Content-Type: multipart/alternative; boundary="0000000000001129450631766efe" --0000000000001129450631766efe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Oh I see! Wow, that is REALLY cool. Great writeup, too. Yes, it would be nice if one of the site's build options was "generate the site for the intersection of these other repos." Like, "put this up on the main site if all of the other maintainers and testers have put it up on their personal sites (or various subsets of that)." On Fri, Mar 28, 2025 at 4:07=E2=80=AFPM Max Battcher <[email protected]> wr= ote: > =C2=ABThis is interesting. Let me make sure I'm understanding that: do yo= u > mean that it would automatically figure out where each branch deviated fr= om > the others?=C2=BB > > Yeah, darcs clone/pull =E2=80=94intersection a takes the list of repos yo= u give it > and pulls all of the patches that every repo listed has. (Set > intersection.) So far as I=E2=80=99ve seen, intersection pulls are still = one of the > things that darcs does somewhat easily enough that doesn=E2=80=99t exist = in many > other VCSes. (Versus the =E2=80=9Cmerge all/integration branch=E2=80=9D a= utomation of > =E2=80=94union.) The =E2=80=9Cconsensus branch=E2=80=9D alternative to a = =E2=80=9Cintegration branch=E2=80=9D. > > A long time back [0] I figured there were some cool workflows you could > build around automated consensus branching that would feel very different > from the =E2=80=9Ccentral pull request model=E2=80=9D of something like G= itHub, but given > it is mostly just darcs that makes that branching model easy I remain > unsurprised I=E2=80=99ve not seen it adopted much in the wild. > > [0] 2008 apparently: > https://blog.worldmaker.net/2008/aug/10/darcs-workflow-completely-distrib= uted-pull-only-wo/ > ------------------------------ > *From:* Tucker McKnight <[email protected]> > *Sent:* Friday, March 28, 2025 15:44 > *To:* Max Battcher <[email protected]> > *Subject:* Re: [darcs-users] A static site repo viewer > > > I think a =E2=80=9Cunique=E2=80=9D darcs way to handle it would be give= it a list of two > or more repos (branches) and let darcs compute the intersection of those > branches in the static site build. > > This is interesting. Let me make sure I'm understanding that: do you mean > that it would automatically figure out where each branch deviated from th= e > others? > > (P.S. I'm re-sending this message because I think I didn't hit the right > "reply" button earlier, haha. Sorry if you already got this!) > > > On Thu, Mar 27, 2025 at 4:56=E2=80=AFPM Max Battcher <[email protected]> = wrote: > > Neat! > > I think the =E2=80=9Cclassic=E2=80=9D darcs way to handle what=E2=80=99s = in the static site would > be to use a full branch (repo) for that and actual darcs push to it. > > I think a =E2=80=9Cunique=E2=80=9D darcs way to handle it would be give i= t a list of two > or more repos (branches) and let darcs compute the intersection of those > branches in the static site build. > > I used to have Python app (django app) that so heavily used static caches > it probably should have been a static site generator. Maybe I should dig = it > out of storage and see if had any good ideas to pass along. (Though my > recollection is that most of its good ideas were never actually > implemented.) > > Sent from my wireless telegraph. Full stop. > > ------------------------------ > *From:* darcs-users <[email protected]> on behalf of > Tucker McKnight <[email protected]> > *Sent:* Thursday, March 27, 2025 03:14 > *To:* [email protected] <[email protected]> > *Subject:* [darcs-users] A static site repo viewer > > Hi! Darcs newbie here. I've been enjoying learning about it. > > I spent some time over the weekend working on a static site generator for > displaying a darcs repository. It's very basic at the moment, but it does > work, allowing you to browse files, view patches, clone, and pull a > specific patch. > > It's here: https://repos.tuckerm.us/repos/eleventy-darcs > > Since I only learned about darcs recently, I have a question about how a > typical darcs user would "push" their work to a static website. > > If you were working on multiple changes locally and only wanted one of > those changes to show up on your website, how would you want to do that? = I > know that with "darcs push" you can specify which patch(es) you want to > push. But in this case, with a static website, you aren't actually pushin= g > to a remote repository. The idea here is that the plain HTML pages are > generated locally on your computer, and then you copy those HTML pages to > your web server. Would it make sense to have a config file where you list > specific tags and patches that should show up on the site, with a default > option of showing all available patches? That doesn't seem all that > different from typing "darcs push" to either send all patches or send som= e > specific ones. But maybe there is a more darcs-y way of doing this that I= 'm > not familiar with. > > Some other notes: > > - It works on the darcs.net repository. > - It takes about a minute (on my computer, at least) to generate the site > for darcs.net. > - The full output of "darcs log --verbose" alone is 87 megabytes. > - The resulting HTML pages are 300+ megabytes. > > I plan to add features to this over the next few weekends. Would love to > hear any suggestions people have! > > -Tucker > > --0000000000001129450631766efe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Oh I see! Wow, that is REALLY cool. Great writeup, to= o.</div><div><br></div><div>Yes, it would be nice if one of the site's = build options was "generate the site for the intersection of these oth= er repos." Like, "put this up on the main site if all of the othe= r maintainers and testers have put it up on their personal sites (or variou= s subsets of that)."</div></div><br><div class=3D"gmail_quote gmail_qu= ote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Mar 28, 2025 a= t 4:07=E2=80=AFPM Max Battcher <<a href=3D"mailto:[email protected]">me@= worldmaker.net</a>> wrote:<br></div><blockquote class=3D"gmail_quote" st= yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd= ing-left:1ex"><div><div dir=3D"ltr">=C2=AB<span style=3D"color:rgb(0,0,0);b= ackground-color:rgb(255,255,255)">This is interesting. Let me make sure I&#= 39;m understanding that: do you mean that it would automatically figure out= where each branch deviated from the others?=C2=BB</span></div><div dir=3D"= ltr" style=3D"color:rgb(0,0,0)"><span style=3D"background-color:rgb(255,255= ,255)"><br></span></div><div dir=3D"ltr" style=3D"color:rgb(0,0,0)"><span s= tyle=3D"background-color:rgb(255,255,255)">Yeah, darcs clone/pull =E2=80=94= intersection a takes the list of repos you give it and pulls all of the pat= ches that every repo listed has. (Set intersection.) So far as I=E2=80=99ve= seen, intersection pulls are still one of the things that darcs does somew= hat easily enough that doesn=E2=80=99t exist in many other VCSes. (Versus t= he =E2=80=9Cmerge all/integration branch=E2=80=9D automation of =E2=80=94un= ion.) The =E2=80=9Cconsensus branch=E2=80=9D alternative to a =E2=80=9Cinte= gration branch=E2=80=9D.</span></div><div dir=3D"ltr" style=3D"color:rgb(0,= 0,0)"><span style=3D"background-color:rgb(255,255,255)"><br></span></div><d= iv dir=3D"ltr" style=3D"color:rgb(0,0,0)"><span style=3D"background-color:r= gb(255,255,255)">A long time back [0] I figured there were some cool workfl= ows you could build around automated consensus branching that would feel ve= ry different from the =E2=80=9Ccentral pull request model=E2=80=9D of somet= hing like GitHub, but given it is mostly just darcs that makes that branchi= ng model easy I remain unsurprised I=E2=80=99ve not seen it adopted much in= the wild.</span></div><div dir=3D"ltr" style=3D"color:rgb(0,0,0)"><span st= yle=3D"background-color:rgb(255,255,255)">=C2=A0</span></div><div dir=3D"lt= r"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">[0] 2= 008 apparently: </span><span style=3D"color:rgb(0,0,0);background-color:rgb= (255,255,255)"><a rel=3D"noreferrer noopener" href=3D"https://blog.worldmak= er.net/2008/aug/10/darcs-workflow-completely-distributed-pull-only-wo/" tar= get=3D"_blank">https://blog.worldmaker.net/2008/aug/10/darcs-workflow-compl= etely-distributed-pull-only-wo/</a></span></div><div id=3D"m_-5437882582017= 388865ms-outlook-mobile-body-separator-line" dir=3D"ltr"></div><div id=3D"m= _-5437882582017388865ms-outlook-mobile-signature" dir=3D"ltr"></div><hr sty= le=3D"display:inline-block;width:98%"><div id=3D"m_-5437882582017388865divR= plyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Calibri,sans-serif"><b>Fr= om:</b>=C2=A0Tucker McKnight <<a href=3D"mailto:[email protected]= m" target=3D"_blank">[email protected]</a>><br><b>Sent:</b>=C2= =A0Friday, March 28, 2025 15:44<br><b>To:</b>=C2=A0Max Battcher <<a href= =3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>><b= r><b>Subject:</b>=C2=A0Re: [darcs-users] A static site repo viewer</span><d= iv style=3D"font-family:Calibri,sans-serif">=C2=A0</div></div><div dir=3D"l= tr">> I think a =E2=80=9Cunique=E2=80=9D darcs way to handle it would be= give=20 it a list of two or more repos (branches) and let darcs compute the=20 intersection of those branches in the static site build.</div><div dir=3D"l= tr"><br></div><div dir=3D"ltr">This is interesting. Let me make sure I'm understanding that: do you mean= =20 that it would automatically figure out where each branch deviated from=20 the others?<br><br></div><div dir=3D"ltr">(P.S. I'm re-sending this mes= sage because I think I didn't hit the right "reply" button ea= rlier, haha. Sorry if you already got this!)</div><div dir=3D"ltr"><br></di= v><br><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Mar 27, 2025 at 4:56=E2= =80=AFPM Max Battcher <<a href=3D"mailto:[email protected]" target=3D"_b= lank">[email protected]</a>> wrote:</div><blockquote style=3D"margin:0px= 0px 0px 0.8ex;padding-left:1ex;border-left:1px solid rgb(204,204,204)"><di= v dir=3D"ltr" class=3D"gmail_quote">Neat!</div><div dir=3D"ltr" class=3D"gm= ail_quote"><br></div><div dir=3D"ltr" class=3D"gmail_quote">I think the =E2= =80=9Cclassic=E2=80=9D darcs way to handle what=E2=80=99s in the static sit= e would be to use a full branch (repo) for that and actual darcs push to it= .</div><div dir=3D"ltr" class=3D"gmail_quote"><br></div><div dir=3D"ltr" cl= ass=3D"gmail_quote">I think a =E2=80=9Cunique=E2=80=9D darcs way to handle = it would be give it a list of two or more repos (branches) and let darcs co= mpute the intersection of those branches in the static site build.</div><di= v dir=3D"ltr" class=3D"gmail_quote"><br></div><div dir=3D"ltr" class=3D"gma= il_quote">I used to have Python app (django app) that so heavily used stati= c caches it probably should have been a static site generator. Maybe I shou= ld dig it out of storage and see if had any good ideas to pass along. (Thou= gh my recollection is that most of its good ideas were never actually imple= mented.)</div><div id=3D"m_-5437882582017388865m_6587825899223644214ms-outl= ook-mobile-body-separator-line" dir=3D"ltr"><br></div><div id=3D"m_-5437882= 582017388865m_6587825899223644214ms-outlook-mobile-signature"><div dir=3D"l= tr">Sent from my wireless telegraph. Full stop.</div></div><div class=3D"gm= ail_quote">=C2=A0</div><hr style=3D"display:inline-block;width:98%"><div id= =3D"m_-5437882582017388865m_6587825899223644214divRplyFwdMsg" dir=3D"ltr"><= span style=3D"font-family:Calibri,sans-serif"><b>From:</b>=C2=A0darcs-users= <<a href=3D"mailto:[email protected]" target=3D"_blan= k">[email protected]</a>> on behalf of Tucker McKnight= <<a href=3D"mailto:[email protected]" target=3D"_blank">tucker.= [email protected]</a>><br><b>Sent:</b>=C2=A0Thursday, March 27, 2025 03= :14<br><b>To:</b>=C2=A0<a href=3D"mailto:[email protected]" targe= t=3D"_blank">[email protected]</a>=C2=A0<<a href=3D"mailto:dar= [email protected]" target=3D"_blank">[email protected]</a>= ><br><b>Subject:</b>=C2=A0[darcs-users] A static site repo viewer</span>= <div style=3D"font-family:Calibri,sans-serif">=C2=A0</div></div><div dir=3D= "ltr" class=3D"gmail_quote">Hi! Darcs newbie here. I've been enjoying l= earning about it.</div><div dir=3D"ltr" class=3D"gmail_quote"><br></div><di= v dir=3D"ltr" class=3D"gmail_quote">I spent some time over the weekend work= ing on a static site generator for displaying a darcs repository. It's = very basic at the moment, but it does work, allowing you to browse files, v= iew patches, clone, and pull a specific patch.</div><div dir=3D"ltr" class= =3D"gmail_quote"><br></div><div dir=3D"ltr" class=3D"gmail_quote">It's = here: <a href=3D"https://repos.tuckerm.us/repos/eleventy-darcs" target=3D"_= blank">https://repos.tuckerm.us/repos/eleventy-darcs</a></div><div dir=3D"l= tr" class=3D"gmail_quote"><br></div><div dir=3D"ltr" class=3D"gmail_quote">= Since I only learned about darcs recently, I have a question about how a ty= pical darcs user would "push" their work to a static website.</di= v><div dir=3D"ltr" class=3D"gmail_quote"><br></div><div dir=3D"ltr" class= =3D"gmail_quote">If you were working on multiple changes locally and only w= anted one of those changes to show up on your website, how would you want t= o do that? I know that with "darcs push" you can specify which pa= tch(es) you want to push. But in this case, with a static website, you aren= 't actually pushing to a remote repository. The idea here is that the p= lain HTML pages are generated locally on your computer, and then you copy t= hose HTML pages to your web server. Would it make sense to have a config fi= le where you list specific tags and patches that should show up on the site= , with a default option of showing all available patches? That doesn't = seem all that different from typing "darcs push" to either send a= ll patches or send some specific ones. But maybe there is a more darcs-y wa= y of doing this that I'm not familiar with.</div><div dir=3D"ltr" class= =3D"gmail_quote"><br></div><div dir=3D"ltr" class=3D"gmail_quote">Some othe= r notes:</div><div dir=3D"ltr" class=3D"gmail_quote"><br></div><div dir=3D"= ltr" class=3D"gmail_quote">- It works on the <a href=3D"http://darcs.net" t= arget=3D"_blank">darcs.net</a>=C2=A0repository.</div><div dir=3D"ltr" class= =3D"gmail_quote">- It takes about a minute (on my computer, at least) to ge= nerate the site for <a href=3D"http://darcs.net" target=3D"_blank">darcs.ne= t</a>.</div><div dir=3D"ltr" class=3D"gmail_quote">- The full output of &qu= ot;darcs log --verbose" alone is 87 megabytes.</div><div dir=3D"ltr" c= lass=3D"gmail_quote">- The resulting HTML pages are 300+ megabytes.</div><d= iv dir=3D"ltr" class=3D"gmail_quote"><br></div><div dir=3D"ltr" class=3D"gm= ail_quote">I plan to add features to this over the next few weekends. Would= love to hear any suggestions people have!</div><div dir=3D"ltr" class=3D"g= mail_quote"><br></div><div dir=3D"ltr" class=3D"gmail_quote">-Tucker</div><= /blockquote></div></blockquote></div> --0000000000001129450631766efe-- --===============3788031157808619767== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ darcs-users mailing list [email protected] https://lists.darcs.net/mailman/listinfo/darcs-users --===============3788031157808619767==--