fix($last-updated): use file author time instead of submodule commit time (1.x) #1640
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When using a Git submodule, the "last updated" time for all files within that submodule is incorrect.
This happens because the
git log
command, when operating from a working directory that is part of the parent repository, only operates on that parent repository. As a result, any query for the log for a specific file that is located in a submodule will return the log for the submodule entry itself.So, for example, if we have a submodule
/foo
and a file/foo/bar.md
, then even ifbar.md
was last updated many years ago, if we commited a update of the submodule five minutes ago that will cause Vuepress to show thatbar.md
was last updated 5 minutes ago, while in fact it hasn't.This pull request resolves this bug by first changing the current working directory to the directory containing the file, so that if the file is part of a submodule,
git log
accesses the log of the submodule and retrieves the correct last updated time from that files history instead of only considering the submodule history of the parent repository. This of course also works the same for repositories without submodules so does not require any additional checks or workarounds.What kind of change does this PR introduce? (check at least one)
Does this PR introduce a breaking change? (check one)
The PR fulfills these requirements:
fix #xxx[,#xxx]
, where "xxx" is the issue number)You have tested in the following browsers: (Providing a detailed version will be better.)
Other information:
I've also opened a pull request with the exact same changes for
0.x
, see #1639.