<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in changelog_getrelativerevision.test.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>01e8d739c8b53aeb1d0a653331d65eb1f8394002 - refactor(changelog): persist external-edit detection on first read</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#01e8d739c8b53aeb1d0a653331d65eb1f8394002</link>
        <description>refactor(changelog): persist external-edit detection on first readThis addresses the flaky test that makes tests randomly fail (mostly onwindows runners).The flake in common_saveWikiText_test::test_savesequence5 came fromthis line in ChangeLog::getCurrentRevisionInfo():    &apos;date&apos; =&gt; max($lastRev + 1, time() - 1)The synthesized &quot;external delete&quot; entry was kept in memory only andonly persisted later, when saveWikiText next called detectExternalEdit.That meant the formula was evaluated twice on different ChangeLoginstances &#8212; once during the test&apos;s inspection, and again during thefollowing saveWikiText &#8212; and the two evaluations could pick differentseconds depending on how long the surrounding I/O took. The testcached the first result in $expectExternal and asserted it against theon-disk entry written during the second call. On the slower Windowsrunner the second call sometimes crossed a second boundary, producingthe off-by-one date mismatch.The questions I had was, why are we persisting external file deletions(or edits) only when a page is saved when we are obviously alreadydetecting it earlier during the changelog read already?Instead of recording the external delete at the time a new page iswritten, it makes sense to record it as soon as we detect it (when thechangelog is requested by a user or a bot). This will make the recodedtimestamp closer to the actual deletion.This patch refactors the changelog accordingly, but still tries to beminimal invasive (I think the changelog handling would need much morerefactoring, but that&apos;s beyond the scope of this change).To enable proper locking (when logging an external edit and copyingthe attic file), locking had to be moved to the Changelog class,duplicating some code of io_saveFile.PageFile::detectExternalEdit() and the deprecated procedural wrapperdetectExternalEdit() in inc/common.php are removed. A codesearch.dokuwiki.orgcheck confirmed no plugin calls the method directly; the only externalcaller of the procedural function is the farmsync plugin, which needsa parallel update.

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Sat, 25 Apr 2026 15:30:23 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>72d8810b2bb7425024081eb1e2f8ec02092b08bc - Fix unit test, little refactor</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#72d8810b2bb7425024081eb1e2f8ec02092b08bc</link>
        <description>Fix unit test, little refactor

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Sun, 24 Sep 2023 23:23:25 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>719518410a1283d17edc7698f3ec52660c245adf - deprecate parseChangelogLine()</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#719518410a1283d17edc7698f3ec52660c245adf</link>
        <description>deprecate parseChangelogLine()It was already replace in code, replaced in unit test as well.

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Sun, 24 Sep 2023 23:22:54 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>fb285245a7e0188369a3e6cc179ed20795bd3799 - UnitTest around changelog, set correct time of  page source</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#fb285245a7e0188369a3e6cc179ed20795bd3799</link>
        <description>UnitTest around changelog, set correct time of  page sourceChangeLog constructor will check the date of current page/media file to detect external edits via getCurrentRevisionInfo()

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Sat, 23 Oct 2021 04:01:36 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1c33cec37215d0c964cf961bdbc49ae7db3657e6 - add needed type hints for phpunit8</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#1c33cec37215d0c964cf961bdbc49ae7db3657e6</link>
        <description>add needed type hints for phpunit8This will break a lot of plugin tests, but can&apos;t be avoided

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Thu, 04 Feb 2021 19:41:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>0c3a5702735953748f68955d51bb478538fb6eda - split changelog classes into their own namespace</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#0c3a5702735953748f68955d51bb478538fb6eda</link>
        <description>split changelog classes into their own namespaceThe remaining functions in inc/changelog.php should be moved into autility class.

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Fri, 15 Jun 2018 09:45:58 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>59cce2d943ee9a18fafc9a0594ede031f7bf7190 - Improve changelog reading. Inclusive unittests for chunks smaller than changelog lines.</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#59cce2d943ee9a18fafc9a0594ede031f7bf7190</link>
        <description>Improve changelog reading. Inclusive unittests for chunks smaller than changelog lines.

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Fri, 22 Nov 2013 14:30:48 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>332817fccb0577125da59b71f437e72ae823a7c8 - improve unittests getrelativerevision. Bit code reformatting unit tests</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#332817fccb0577125da59b71f437e72ae823a7c8</link>
        <description>improve unittests getrelativerevision. Bit code reformatting unit tests

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Thu, 21 Nov 2013 21:48:08 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>047bad06fab8157452aa0dd04379a7c507b1f39f - refactor PageRevisionLog into Media- and PageChangelog extending Changelog</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#047bad06fab8157452aa0dd04379a7c507b1f39f</link>
        <description>refactor PageRevisionLog into Media- and PageChangelog extending Changelog

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Thu, 21 Nov 2013 20:07:08 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0f13c836f0ee71a3188a775b9ea64025e10d38f5 - Improved isCurrentRevision(), tests included</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#0f13c836f0ee71a3188a775b9ea64025e10d38f5</link>
        <description>Improved isCurrentRevision(), tests included

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Thu, 21 Nov 2013 17:02:12 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>55545bcc9b8532818cc1fc8b920deb07cc3f2c61 - Add unit tests for getRelativerevision</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php#55545bcc9b8532818cc1fc8b920deb07cc3f2c61</link>
        <description>Add unit tests for getRelativerevision

            List of files:
            /dokuwiki/_test/tests/inc/changelog_getrelativerevision.test.php</description>
        <pubDate>Wed, 20 Nov 2013 12:21:44 +0000</pubDate>
        <dc:creator>Gerrit Uitslag &lt;klapinklapin@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
