Add support for re-writing a project’s history
If you’re consuming this tool and using it to tell the story of your project’s origins and growth, you might be tempted to become a bit of a revisionist historian.
This might come as a shock, but this project was not perfected
implemented from the start, and is in fact the result of countless
pick
, squash
, reword
, fixup
, and drop
rebase
operations.
While this can be harmless for pre-released projects, rewriting history
once the resulting website is deployed and publicized would result in
404
s and broken URLs.
To counteract this, git-read
will include and compile pages for any
commits that are git tag
-ed, along with the rest of their
history.
To denote that a commit is “out of date”, and is no longer available on
the main branch, calls to Middleman’s proxy
have been updated
to pass in the out_of_date
local Boolean to denote whether or not a
page is built from a tagged commit. When rendering from the main branch
or the project’s README.md
, out_of_date
is declared as false
.
In the case where the main branch and the tagged commit share ancestors, the main branch’s version will be rendered second, and won’t display the “stale” banner.
Test coverage
To ensure that the new feature is covered by tests, this commit extends
the new GitHelpers
module to enable tests to
switch git
branches (via #switch_branch
), and to add tagged commits
(via #add_tag
).