How is "Pages changed" generated?

We get a “Pages changed” list as part of deploy rich details notifications. How is that list generated? Asking because the list does not always seem correct. For example, on this public repo pull request, Git lists 16 “Files changed”, whereas Netlify reports 462 “Pages changed.”

Is it because Netlify compares against latest master, instead of against branch HEAD?

Follow-up question: Are we able to see the full list of “Pages changed” generated by Netlify somewhere? Clicking “View more details on Netlify” simply brings me to the build log.

Thank you!

The pages changes changed list count means even a single character being changed on the website’s pages.

For example, suppose you have imported a JavaScript file like this: <script src = "/js/foo-v1.0.0.js>. That line of code exists on all pages of your website, but only in one file (the base layout) of your GitHub repo. However, when you change it, say <script src = "/js/foo-v1.0.1.js>, you’re changing just one file of the repo, but in the build, it changes all the HTML pages that had that code. Thus, your repo will show 1 file changed, but Nelify will report n files changed as Netlify compares the built HTML files and not the Git repo’s files.

This was just an example of how even a small change in the code of one file can actually change a lot of pages in the build.

Hope this helps.

I don’t think that’s it. After reading a bit on Netlify caching, I believe this is what happens: When a branch is cut from main and then does not pull in main for a long time, it deviates from other contributor branches. Say contributor A with a recently cut branch kicks off a deploy build. “Pages changed” list is accurate. Then contributor B, with a branch cut from 3 months ago (and hasn’t pull in main since), kicks off another deploy build. The “Pages changed” diff for contributor B seems to be done by comparing branch B to contributor A’s branch content. Is that right?

Also bumping the other question again: Are we able to see the full list of “Pages changed” generated by Netlify somewhere? Clicking “View more details on Netlify” simply brings me to the build log. (See below where it says “There are more changes not included in the list” – is there any way to access the rest of the list?)

Hi, @cockroach. The “pages changed” count is the number of files ending in .html or .htm where the checksum of the file has changed since the last published deploy in the same deploy context. The “files changed” count is the same but without the filter for the file extension (it is all files change not just HTML files changed).

The list is calculated on the fly during the deploy and it is not saved anywhere that can be queried via our API. However, you can programmatically use the API to regenerate the list.

You can find the changed file information by querying the API and comparing the SHA checksums for all files in both deploys. There is more information about this API call here:

https://open-api.netlify.com/#tag/file

The files with identical with identical paths and new checksums are “changed”. The files which have no corresponding path in the previous deploy are considered new files (even if it is just the same file checksum just renamed to a new name).

About the number of files changing between deploys, this is typically not directly related to the number of files change in the commit. For example, if you edit a single file which is included as a header in all other files, you can update only a single file in the repo and cause all files in that deploy to change during the site build.

If there are other questions about this, please let us know.