Have you tried adding an extra clause checking for the revision post type in function pts_save_post( $post_id, $post ) {
of post-type-switcher.php
?
E.g. as taken from trunk and modified:
/**
* Set the post type on save_post but only when editing
*
* @since PostTypeSwitcher (0.3)
* @global string $pagenow
* @param int $post_id
* @param object $post
* @return If any number of condtions are met
*/
function pts_save_post( $post_id, $post ) {
global $pagenow;
// Only show switcher when editing
if ( ! in_array( $pagenow, pts_allowed_pages() ) )
return;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( ! isset( $_POST['pts-nonce-select'] ) )
return;
if ( ! wp_verify_nonce( $_POST['pts-nonce-select'], 'post-type-selector' ) )
return;
if ( ! current_user_can( 'edit_post', $post_id ) )
return;
if ( $_POST['pts_post_type'] == $post->post_type )
return;
if ( ! $new_post_type_object = get_post_type_object( $_POST['pts_post_type'] ) )
return;
if ( ! current_user_can( $new_post_type_object->cap->publish_posts ) )
return;
if($post->post_type == 'revision')
return;
set_post_type( $post_id, $new_post_type_object->name );
}
add_action( 'save_post', 'pts_save_post', 10, 2 );