How can I display entry edit history on the front end? When editing an entry from the control panel you can switch versions of the entry. I would like to do the same thing but on the front end. Is there any way to do this using native craft functionality or do I need to use a plugin.
Something like this might work.

{% if not craft.request.isAjax %}

    {% set versions = craft.entryRevisions.getVersionsByEntryId(entry.id, entry.locale) %}

    Versions: 
    &lt;select class="js-versions-dropdown"&gt;
        &lt;option value=""&gt;Current&lt;/option&gt;
        {% for versionEntry in versions %}
            &lt;option value="{{ versionEntry.versionId }}"&gt;Version {{ loop.index }} ({{ versionEntry.postDate|date('m-d-Y') }} )&lt;/option&gt;
        {% endfor %}
    &lt;/select&gt;

{% endif %}

{% if craft.request.isAjax %}

    {% if craft.request.param('versionid') %}
        {% set entry = craft.entryRevisions.getVersionById(craft.request.param('versionid')) %}
    {% endif %}

{% endif %}

&lt;div&gt;
    {{ entry.title }}
    ...
&lt;/div&gt;


In this example, you would want to listen for an onChange event on the dropdown list and reload the template via ajax, passing the 'versionid' as a post variable. Alternatively you could also just reload the whole page, in which case remove the 'if ajax' stuff. In this case, you'll probably also need to add some logic to the drop-down list so as to display the correct 'selected' option in the list.