Re: svn commit: r1936555 - in subversion/site/staging: . blog docs docs/community-guide docs/release-notes pronunciation security style

Branko Čibej <[email protected]> Wed, 29 Jul 2026 15:46:22 +0200
Newsgroups gmane.comp.version-control.subversion.devel
Organization The Apache Software Foundation
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------QQ06oDiysomd9q0fGJLLzLNH
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 29. 7. 2026 14:15, Daniel Sahlberg wrote:
> Den ons 29 juli 2026 kl 12:58 skrev Branko Čibej <[email protected]>:
>
>     On 29. 7. 2026 11:38, Ivan Zhakov wrote:
>>     On Tue, 28 Jul 2026 at 19:51, Nathan Hartman
>>     <[email protected]> wrote:
>>
>>         On Tue, Jul 28, 2026 at 10:57 AM Ivan Zhakov
>>         <[email protected]> wrote:
>>         >
>>         > On Tue, 28 Jul 2026 at 17:11, Nathan Hartman
>>         <[email protected]> wrote:
>>         >>
>>         >> On Fri, Jul 24, 2026 at 12:40 PM <[email protected]> wrote:
>>         >> >
>>         >> > Author: ivan
>>         >> > Date: Fri Jul 24 16:39:48 2026
>>         >> > New Revision: 1936555
>>         >> >
>>         >> > Log:
>>         >> > In site/staging:
>>         >> >
>>         >> > Use 'content' CSS property to add section link symbol.
>>         >> >
>>         >> > * style/site.css
>>         >> >   (.sectionlink::before): New class. Add 'pilcrow'
>>         symbol via 'content' CSS
>>         >> >    property.
>>         >> >
>>         >> > * blog/2006-09-10-EnhancingSubversionServer.html
>>         >> > * blog/2007-03-27-authz-and-anon-authn-agony.html
>>         >> > * blog/2007-06-13-merge_auditing.html
>>         >> > * blog/2008-03-29-merging-from-foreign-repositories.html
>>         >> > * blog/2008-05-06-merge-info.html
>>         >> > * blog/2009-11-19-where-did-that-mergeinfo-come-from.html
>>         >> > *
>>         blog/2012-10-24-reducing_network_traffic_in_subversion_1-8.html
>>         >> > *
>>         blog/2013-06-24-repository-dictated-configuration-part-1-inheritable-properties.html
>>         >> > *
>>         blog/2013-06-25-repository-dictated-configuration-part-2-autoprops.html
>>         >> > *
>>         blog/2013-06-26-repository-dictated-configuration-part-3-global-ignores.html
>>         >> > * blog/2013-06-28-foreign-repository-copies.html
>>         >> > * blog/index.html
>>         >> > * contributing.html
>>         >> > * docs/community-guide/building.part.html
>>         >> > * docs/community-guide/conventions.part.html
>>         >> > * docs/community-guide/debugging.part.html
>>         >> > * docs/community-guide/general.part.html
>>         >> > * docs/community-guide/issues.part.html
>>         >> > * docs/community-guide/l10n.part.html
>>         >> > * docs/community-guide/mailing-lists.part.html
>>         >> > * docs/community-guide/releasing.part.html
>>         >> > * docs/community-guide/roles.part.html
>>         >> > * docs/community-guide/web.part.html
>>         >> > * docs/index.html
>>         >> > * docs/release-notes/1.1.html
>>         >> > * docs/release-notes/1.10.html
>>         >> > * docs/release-notes/1.11.html
>>         >> > * docs/release-notes/1.12.html
>>         >> > * docs/release-notes/1.13.html
>>         >> > * docs/release-notes/1.14.html
>>         >> > * docs/release-notes/1.15.html
>>         >> > * docs/release-notes/1.2.html
>>         >> > * docs/release-notes/1.3.html
>>         >> > * docs/release-notes/1.4.html
>>         >> > * docs/release-notes/1.5.html
>>         >> > * docs/release-notes/1.6.html
>>         >> > * docs/release-notes/1.6.zh.html
>>         >> > * docs/release-notes/1.7.html
>>         >> > * docs/release-notes/1.8.html
>>         >> > * docs/release-notes/1.9.html
>>         >> > * docs/release-notes/index.html
>>         >> > * download.html
>>         >> > * faq.html
>>         >> > * faq.ja.html
>>         >> > * faq.zh.html
>>         >> > * features.html
>>         >> > * ideas.html
>>         >> > * index.html
>>         >> > * mailing-lists.html
>>         >> > * news.html
>>         >> > * opw.html
>>         >> > * packages.html
>>         >> > * pronunciation/index.html
>>         >> > * quick-start.html
>>         >> > * reporting-issues.html
>>         >> > * roadmap.html
>>         >> > * security/index.html
>>         >> > * source-code.html
>>         >> >   Remove "&para;" from section links: we add it via
>>         'content' CSS property.
>>         >>
>>         >> Hi,
>>         >>
>>         >> Sorry, this change doesn't seem to work on Firefox.
>>         >>
>>         >> I am using the very latest Firefox, version 153.0.1.
>>         >>
>>         > I am using Firefox 153.0.1 and it works for me.
>>         >
>>         > I have also tested Microsoft Edge 150.0.4078.99 and it also
>>         works.
>>         >
>>         > May it's some kind of caching issue?
>>
>>
>>         You are correct, it was a caching issue. This confused me
>>         because I
>>         believed that I had force-reloaded the page. However, I just
>>         checked
>>         and it turns out that Cmd + R only reloads the HTML. You have
>>         to press
>>         Cmd + Shift + R to also reload stylesheets. I had forgotten this.
>>
>>         Strangely, an earlier change of the stylesheets (to add
>>         td.success,
>>         td.warning, td.danger) took effect here without any special
>>         action on
>>         my part.
>>
>>         This issue is rather annoying. I was searching for a reliable
>>         method
>>         to force browsers to reload CSS when it changes without forcing a
>>         reload every time the page is accessed. One StackOverflow
>>         page [1]
>>         contains an entire debate about this. The most simplistic
>>         idea from
>>         that page is to rename the CSS file with some sort of
>>         monotonically
>>         increasing version number in the filename each time the file is
>>         edited. This method would always work; the downside is that
>>         it would
>>         necessitate changes to all the files across the site, each
>>         time we
>>         edit the CSS. That could be annoying for us.
>>
>>     An alternative solution would be to add a query argument and
>>     increment it on every CSS change. Something like this:
>>     <link rel="stylesheet" href="/style/site.css?v=1" type="text/css"
>>     media="all">
>>
>>     But we would still have to update 63 HTML files on every CSS
>>     change. I'm not sure it is worth it, but I can do this
>
>
>     It's not worth it. Some browsers are just notorious for caching
>     too much. That is not the case for Firefox – the difference
>     between ^R/Shift-^R (or ⌘R/Shift-⌘R on the Mac) is well known.
>     Safari, on the other hand, is way too smart, it doesn't have an
>     equivalent to Shift-⌘R and will happily cache CSS and favicons and
>     such even when they no longer exist at the source...
>
>     TL;DR: This will only happen to people who are regularly tracking
>     the changing staging web site.
>
>
> It will also happen to anyone who regularly check the main website, 
> whenever we merge this kind of changes. I have no idea how long it 
> takes before the web browsers refresh a cached resource.
>
> That said, I don't think it is worth changing 63 HTML files on every 
> CSS change.
>
> One possible solution: We already use mod_ssi to <!-- #include --> 
> other files. One possible solution would be to have the head as a 
> separate include. If I understand mod_ssi correctly, we could <!-- 
> #set var="title" value="Some title" --> and then <title><!-- #echo 
> var="title" --></title> in the header file. That way we only need to 
> update the header-include file.


Changing this in the source code just smells wrong to me. I had a quick 
look and it appears that none of the HTML responses from apache.org have 
any cache control headers set. However, the response for our 
'style/site.css' does have both ETag and Last-Modified (about 3 hours 
ago on the main site, apparently). Still, since there's no Cache-Control 
max_age or similar, any browser can decide to cache the page as long as 
it likes.

The correct way to fix this is to set cache-control headers 
appropriately, but this should be done by Infra, not us.

-- Brane
--------------QQ06oDiysomd9q0fGJLLzLNH
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 29. 7. 2026 14:15, Daniel Sahlberg
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAMHy98PznwsETrTvSNOqHWJd6PRttdj=RjCHpKG9evUnx7qNeg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr"><span style="background-color:transparent">Den
            ons 29 juli 2026 kl 12:58 skrev Branko Čibej &lt;<a
              href="mailto:[email protected]" moz-do-not-send="true"
              class="moz-txt-link-freetext">[email protected]</a>&gt;:</span></div>
        <div class="gmail_quote gmail_quote_container">
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div>
              <div>On 29. 7. 2026 11:38, Ivan Zhakov wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr">
                    <div dir="ltr">On Tue, 28 Jul 2026 at 19:51, Nathan
                      Hartman &lt;<a
                        href="mailto:[email protected]"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">[email protected]</a>&gt;
                      wrote:</div>
                    <div class="gmail_quote">
                      <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On
                        Tue, Jul 28, 2026 at 10:57 AM Ivan Zhakov &lt;<a
                          href="mailto:[email protected]" target="_blank"
                          moz-do-not-send="true"
                          class="moz-txt-link-freetext">[email protected]</a>&gt;
                        wrote:<br>
                        &gt;<br>
                        &gt; On Tue, 28 Jul 2026 at 17:11, Nathan
                        Hartman &lt;<a
                          href="mailto:[email protected]"
                          target="_blank" moz-do-not-send="true"
                          class="moz-txt-link-freetext">[email protected]</a>&gt;
                        wrote:<br>
                        &gt;&gt;<br>
                        &gt;&gt; On Fri, Jul 24, 2026 at 12:40 PM &lt;<a
                          href="mailto:[email protected]" target="_blank"
                          moz-do-not-send="true"
                          class="moz-txt-link-freetext">[email protected]</a>&gt;
                        wrote:<br>
                        &gt;&gt; &gt;<br>
                        &gt;&gt; &gt; Author: ivan<br>
                        &gt;&gt; &gt; Date: Fri Jul 24 16:39:48 2026<br>
                        &gt;&gt; &gt; New Revision: 1936555<br>
                        &gt;&gt; &gt;<br>
                        &gt;&gt; &gt; Log:<br>
                        &gt;&gt; &gt; In site/staging:<br>
                        &gt;&gt; &gt;<br>
                        &gt;&gt; &gt; Use 'content' CSS property to add
                        section link symbol.<br>
                        &gt;&gt; &gt;<br>
                        &gt;&gt; &gt; * style/site.css<br>
                        &gt;&gt; &gt;   (.sectionlink::before): New
                        class. Add 'pilcrow' symbol via 'content' CSS<br>
                        &gt;&gt; &gt;    property.<br>
                        &gt;&gt; &gt;<br>
                        &gt;&gt; &gt; *
                        blog/2006-09-10-EnhancingSubversionServer.html<br>
                        &gt;&gt; &gt; *
                        blog/2007-03-27-authz-and-anon-authn-agony.html<br>
                        &gt;&gt; &gt; *
                        blog/2007-06-13-merge_auditing.html<br>
                        &gt;&gt; &gt; *
                        blog/2008-03-29-merging-from-foreign-repositories.html<br>
                        &gt;&gt; &gt; * blog/2008-05-06-merge-info.html<br>
                        &gt;&gt; &gt; *
                        blog/2009-11-19-where-did-that-mergeinfo-come-from.html<br>
                        &gt;&gt; &gt; *
                        blog/2012-10-24-reducing_network_traffic_in_subversion_1-8.html<br>
                        &gt;&gt; &gt; *
blog/2013-06-24-repository-dictated-configuration-part-1-inheritable-properties.html<br>
                        &gt;&gt; &gt; *
                        blog/2013-06-25-repository-dictated-configuration-part-2-autoprops.html<br>
                        &gt;&gt; &gt; *
blog/2013-06-26-repository-dictated-configuration-part-3-global-ignores.html<br>
                        &gt;&gt; &gt; *
                        blog/2013-06-28-foreign-repository-copies.html<br>
                        &gt;&gt; &gt; * blog/index.html<br>
                        &gt;&gt; &gt; * contributing.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/building.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/conventions.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/debugging.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/general.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/issues.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/l10n.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/mailing-lists.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/releasing.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/roles.part.html<br>
                        &gt;&gt; &gt; *
                        docs/community-guide/web.part.html<br>
                        &gt;&gt; &gt; * docs/index.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.1.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.10.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.11.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.12.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.13.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.14.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.15.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.2.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.3.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.4.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.5.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.6.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.6.zh.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.7.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.8.html<br>
                        &gt;&gt; &gt; * docs/release-notes/1.9.html<br>
                        &gt;&gt; &gt; * docs/release-notes/index.html<br>
                        &gt;&gt; &gt; * download.html<br>
                        &gt;&gt; &gt; * faq.html<br>
                        &gt;&gt; &gt; * faq.ja.html<br>
                        &gt;&gt; &gt; * faq.zh.html<br>
                        &gt;&gt; &gt; * features.html<br>
                        &gt;&gt; &gt; * ideas.html<br>
                        &gt;&gt; &gt; * index.html<br>
                        &gt;&gt; &gt; * mailing-lists.html<br>
                        &gt;&gt; &gt; * news.html<br>
                        &gt;&gt; &gt; * opw.html<br>
                        &gt;&gt; &gt; * packages.html<br>
                        &gt;&gt; &gt; * pronunciation/index.html<br>
                        &gt;&gt; &gt; * quick-start.html<br>
                        &gt;&gt; &gt; * reporting-issues.html<br>
                        &gt;&gt; &gt; * roadmap.html<br>
                        &gt;&gt; &gt; * security/index.html<br>
                        &gt;&gt; &gt; * source-code.html<br>
                        &gt;&gt; &gt;   Remove "&amp;para;" from section
                        links: we add it via 'content' CSS property.<br>
                        &gt;&gt;<br>
                        &gt;&gt; Hi,<br>
                        &gt;&gt;<br>
                        &gt;&gt; Sorry, this change doesn't seem to work
                        on Firefox.<br>
                        &gt;&gt;<br>
                        &gt;&gt; I am using the very latest Firefox,
                        version 153.0.1.<br>
                        &gt;&gt;<br>
                        &gt; I am using Firefox 153.0.1 and it works for
                        me.<br>
                        &gt;<br>
                        &gt; I have also tested Microsoft Edge
                        150.0.4078.99 and it also works.<br>
                        &gt;<br>
                        &gt; May it's some kind of caching issue?<br>
                        <br>
                        <br>
                        You are correct, it was a caching issue. This
                        confused me because I<br>
                        believed that I had force-reloaded the page.
                        However, I just checked<br>
                        and it turns out that Cmd + R only reloads the
                        HTML. You have to press<br>
                        Cmd + Shift + R to also reload stylesheets. I
                        had forgotten this.<br>
                        <br>
                        Strangely, an earlier change of the stylesheets
                        (to add td.success,<br>
                        td.warning, td.danger) took effect here without
                        any special action on<br>
                        my part.<br>
                        <br>
                        This issue is rather annoying. I was searching
                        for a reliable method<br>
                        to force browsers to reload CSS when it changes
                        without forcing a<br>
                        reload every time the page is accessed. One
                        StackOverflow page [1]<br>
                        contains an entire debate about this. The most
                        simplistic idea from<br>
                        that page is to rename the CSS file with some
                        sort of monotonically<br>
                        increasing version number in the filename each
                        time the file is<br>
                        edited. This method would always work; the
                        downside is that it would<br>
                        necessitate changes to all the files across the
                        site, each time we<br>
                        edit the CSS. That could be annoying for us.<br>
                        <br>
                      </blockquote>
                      <span>
                        <div>An alternative solution would be to add a
                          query argument and increment it on every CSS
                          change. Something like this:<br>
                          &lt;link rel="stylesheet"
                          href="/style/site.css?v=1" type="text/css"
                          media="all"&gt;<br>
                          <br>
                          But we would still have to update 63 HTML
                          files on every CSS change. I'm not sure it is
                          worth it, but I can do this<br>
                        </div>
                      </span></div>
                  </div>
                </div>
              </blockquote>
              <br>
              <br>
              It's not worth it. Some browsers are just notorious for
              caching too much. That is not the case for Firefox – the
              difference between ^R/Shift-^R (or ⌘R/Shift-⌘R on the Mac)
              is well known. Safari, on the other hand, is way too
              smart, it doesn't have an equivalent to Shift-⌘R and will
              happily cache CSS and favicons and such even when they no
              longer exist at the source...<br>
              <br>
              TL;DR: This will only happen to people who are regularly
              tracking the changing staging web site.<br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>It will also happen to anyone who regularly check the
            main website, whenever we merge this kind of changes. I have
            no idea how long it takes before the web browsers refresh a
            cached resource.</div>
          <div><br>
          </div>
          <div>That said, I don't think it is worth changing 63 HTML
            files on every CSS change.</div>
          <div><br>
          </div>
          <div>One possible solution: We already use mod_ssi to &lt;!--
            #include --&gt; other files. One possible solution would be
            to have the head as a separate include. If I understand
            mod_ssi correctly, we could &lt;!-- #set var="title"
            value="Some title" --&gt; and then &lt;title&gt;&lt;!--
            #echo var="title" --&gt;&lt;/title&gt; in the header file.
            That way we only need to update the header-include file.</div>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    Changing this in the source code just smells wrong to me. I had a
    quick look and it appears that none of the HTML responses from
    apache.org have any cache control headers set. However, the response
    for our 'style/site.css' does have both ETag and Last-Modified
    (about 3 hours ago on the main site, apparently). Still, since
    there's no Cache-Control max_age or similar, any browser can decide
    to cache the page as long as it likes.<br>
    <br>
    The correct way to fix this is to set cache-control headers
    appropriately, but this should be done by Infra, not us.<br>
    <br>
    -- Brane
  </body>
</html>

--------------QQ06oDiysomd9q0fGJLLzLNH--