Index: wp-includes/js/template.js
===================================================================
--- wp-includes/js/template.js	(revision 0)
+++ wp-includes/js/template.js	(revision 0)
@@ -0,0 +1,29 @@
+window.wp = window.wp || {};
+
+(function ($) {
+	var template;
+	/**
+	 * wp.template( id )
+	 *
+	 * Fetches a template by id.
+	 *
+	 * @param  {string} id   A string that corresponds to a DOM element with an id prefixed with "tmpl-".
+	 *                       For example, "attachment" maps to "tmpl-attachment".
+	 * @return {function}    A function that lazily-compiles the template requested.
+	 */
+	template = wp.template = _.memoize(function ( id ) {
+		var compiled,
+			options = {
+				evaluate:    /<#([\s\S]+?)#>/g,
+				interpolate: /\{\{\{([\s\S]+?)\}\}\}/g,
+				escape:      /\{\{([^\}]+?)\}\}(?!\})/g,
+				variable:    'data'
+			};
+
+		return function ( data ) {
+			compiled = compiled || _.template( $( '#tmpl-' + id ).html(), null, options );
+			return compiled( data );
+		};
+	});
+
+}(jQuery));
\ No newline at end of file
Index: wp-includes/js/revisions.js
===================================================================
--- wp-includes/js/revisions.js	(revision 0)
+++ wp-includes/js/revisions.js	(revision 0)
@@ -0,0 +1,178 @@
+window.wp = window.wp || {};
+
+(function ($) {
+	wp.revisions = {
+		views : {},
+		Model : Backbone.Model.extend({
+			defaults: { //include all fields for now, pair it down later
+				ID : 0,
+				revision_date_author : '',
+				revisiondiff : '',
+				restoreaction: '',
+				diff_max : 0,
+				diff_count : 0
+			}
+		}),
+		App : Backbone.Router.extend({
+			_revisionListView : null,
+			_revisionDifflView : null,
+			_revisions : null,
+			routes : {
+				"*actions": "revisionDiff",			},
+			showsplitview : '',
+			autosaves : false,
+			/*
+			 * initialize the revision appl;ication
+			 */
+			initialize : function (options) {
+				var self = this; //store the application instance
+				if (this._revisions === null) {
+					self.autosaves = '';
+					self._revisions = new wp.revisions.Collection(); //set up collection
+					self._revisions.autosaves = 'true';
+					self._revisions.fetch({ //load revision data
+						success : function () {
+							self.revisionDiffSetup();
+						},
+						error :  function () {
+							window.console && console.log( 'Error loading revision data' );
+						}
+					});
+
+				}
+				return this;
+			},
+
+			revisionDiffSetup : function () {
+				var modelcount = this._revisions.length, self = this, slider;
+
+				this._revisionView = new wp.revisions.views.View({
+					model : this._revisions
+				});
+				this._revisionView.render();
+
+				slider = $("#slider");
+
+				//set up slider
+				slider.slider({
+					value:0,
+					min : 0,
+					max : modelcount-1,
+					step : 1,
+					slide : function ( event, ui ) {
+						 self._revisionView.current_diff = ui.value+1;
+						 self._revisionView.render();
+					}
+				});
+
+				//set up buttons
+				$( 'input#previous' ).on("click", function () {
+					self._revisionView.current_diff--;
+					if ( self._revisionView.current_diff <= 1)
+						self._revisionView.current_diff = 1;
+
+					self._revisionView.render();
+					slider.slider('value', self._revisionView.current_diff - 1);
+					slider.trigger( 'slide' );
+				});
+
+				$( 'input#next' ).on( 'click', function () {
+					self._revisionView.current_diff++;
+					if ( self._revisionView.current_diff >= self._revisionView.total_length )
+						self._revisionView.current_diff = self._revisionView.total_length;
+
+					self._revisionView.render();
+					slider.slider('value', self._revisionView.current_diff-1);
+					slider.trigger('slide');
+				});
+
+				//set up autosave toggle
+				$( 'input#toggleshowautosaves' ).on( 'click', function () {
+					if ( $( 'input#toggleshowautosaves' ).is( ':checked' ) ) {
+						self.autosaves = true;
+					} else {
+						self.autosaves = false;
+					}
+					self._revisions.url =  'data/revisions-data.php?action=get&compareto=' + postid + '&showautosaves=' + self.autosaves +  '&showsplitview=' +  self.showsplitview;
+
+					self._revisions.fetch({ //reload revision data
+						success : function () {
+							var revisioncount = self._revisionView.model.length;
+							if ( self._revisionView.current_diff > revisioncount )
+								self._revisionView.current_diff = revisioncount;
+							self._revisionView.render();
+							slider.slider( 'option', 'max', revisioncount-1 );
+						}
+					});
+				} );
+
+				//set up showsplitview toggle
+				$( 'input#showsplitview' ).on( 'click', function () {
+					if ( $( 'input#showsplitview' ).is( ':checked' ) ) {
+						self.showsplitview = 'true';
+						$('.revisiondiffcontainer').addClass('diffsplit');
+					} else {
+						self.showsplitview = '';
+						$('.revisiondiffcontainer').removeClass('diffsplit');
+					}
+					self._revisions.url =  ajaxurl + '?action=revisions-data&compareto=' + postid + '&showautosaves=' + self.autosaves +  '&showsplitview=' +  self.showsplitview;
+					self._revisions.fetch({ //reload revision data
+						success : function () {
+							self._revisionView.render();
+						}
+					});
+				} );
+			}
+		})
+	};
+
+	wp.revisions.Collection = Backbone.Collection.extend({
+		model : wp.revisions.Model,
+		url : ajaxurl + '?action=revisions-data&compareto=' + postid + '&showautosaves=false'
+	});
+
+	_.extend(wp.revisions.views, {
+		View : Backbone.View.extend({
+			el : $('#backbonerevisionsdiff')[0],
+			tagName : 'revisionvview',
+			className : 'revisionview-container',
+			template : wp.template('revision'),
+			current_diff : 1,
+			total_length : 0,
+			initialize : function (){
+				this.total_length = this.model.length;
+				self = this;
+			},
+			render : function () {
+				var addhtml = '';
+				therevisions = this.model;
+				if ( therevisions.at( this.current_diff-1 ) ) {
+					addhtml = this.template( therevisions.at( this.current_diff-1 ).toJSON() );
+				}
+				this.$el.html( addhtml );
+				$( '#diff_max' ).html( this.model.length );
+				$( '#diff_count' ).html( this.current_diff );
+				return this;
+			}
+		}),
+		List : Backbone.View.extend({
+			el : $('#backbonerevisionslist')[0],
+			render : function () {
+				var self = this, addhtml = '', therevisions = self.model;
+				therevisions.each(function ( arevision ) {
+					addhtml = addhtml + '<br />' + (arevision.get("revision_date_author"));
+				});
+				self.$el.html( addhtml );
+				return this;
+			},
+			clear : function () {
+				this.model.destroy();
+			}
+		})
+	});
+
+	//instantiate RevisionApplication object
+	revapp = new wp.revisions.App();
+	Backbone.history.start();
+
+}(jQuery));
\ No newline at end of file
Index: wp-includes/wp-diff.php
===================================================================
--- wp-includes/wp-diff.php	(revision 23447)
+++ wp-includes/wp-diff.php	(working copy)
@@ -59,6 +59,8 @@
 	 */
 	var $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
 
+	var $_showsplitview = null;
+
 	/**
 	 * Constructor - Call parent constructor with params array.
 	 *
@@ -70,6 +72,8 @@
 	 */
 	function __construct( $params = array() ) {
 		parent::__construct( $params );
+		if ( isset( $params[ 'showsplitview' ] ) )
+			$this -> _showsplitview = $params[ 'showsplitview' ];
 	}
 
 	/**
@@ -98,7 +102,8 @@
 	 * @return string
 	 */
 	function addedLine( $line ) {
-		return "<td>+</td><td class='diff-addedline'>{$line}</td>";
+		return "<td class='diff-addedline-symbol'>+</td><td class='diff-addedline'>{$line}</td>";
+
 	}
 
 	/**
@@ -108,7 +113,7 @@
 	 * @return string
 	 */
 	function deletedLine( $line ) {
-		return "<td>-</td><td class='diff-deletedline'>{$line}</td>";
+		return "<td class='diff-deletedline-symbol'>-</td><td class='diff-deletedline'>{$line}</td>";
 	}
 
 	/**
@@ -118,7 +123,7 @@
 	 * @return string
 	 */
 	function contextLine( $line ) {
-		return "<td> </td><td class='diff-context'>{$line}</td>";
+		return "<td></td><td class='diff-context'>{$line}</td>";
 	}
 
 	/**
@@ -142,10 +147,14 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
-			$r .= '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
+				$line = wp_kses_post( $line );
+			if ( ! $this->_showsplitview ) {
+				$r .= '<tr>' . $this->addedLine( $line ) . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
+			}
 		}
-		return $r;
+		return $r.$this->_showsplitview;
 	}
 
 	/**
@@ -160,8 +169,13 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
-			$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n";
+				$line = wp_kses_post( $line );
+			if ( ! $this->_showsplitview ) {
+				$r .= '<tr>' . $this->deletedLine( $line ) . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n";
+			}
+
 		}
 		return $r;
 	}
@@ -178,9 +192,12 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
-			$r .= '<tr>' .
-				$this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n";
+				$line = wp_kses_post( $line );
+			if (  ! $this->_showsplitview ) {
+				$r .= '<tr>' . $this->contextLine( $line ) . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n";
+			}
 		}
 		return $r;
 	}
@@ -264,7 +281,11 @@
 			} elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row.
 				$r .= $this->_deleted( array($orig_line), false );
 			} else { // A true changed row.
-				$r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->addedLine( $final_line ) . "</tr>\n";
+				if ( ! $this->_showsplitview ) {
+					$r .= '<tr>' . $this->deletedLine( $orig_line ) . "</tr><tr>" . $this->addedLine( $final_line ) . "</tr>\n";
+				} else {
+					$r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->addedLine( $final_line ) . "</tr>\n";
+				}
 			}
 		}
 
Index: wp-includes/css/jquery-ui-slider.css
===================================================================
--- wp-includes/css/jquery-ui-slider.css	(revision 0)
+++ wp-includes/css/jquery-ui-slider.css	(revision 0)
@@ -0,0 +1,544 @@
+/*! jQuery UI - v1.10.1 - 2013-02-15
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.slider.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+* Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-slider {
+	position: relative;
+	text-align: left;
+}
+.ui-slider .ui-slider-handle {
+	position: absolute;
+	z-index: 2;
+	width: 1.2em;
+	height: 1.2em;
+	cursor: default;
+}
+.ui-slider .ui-slider-range {
+	position: absolute;
+	z-index: 1;
+	font-size: .7em;
+	display: block;
+	border: 0;
+	background-position: 0 0;
+}
+
+/* For IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+	filter: inherit;
+}
+
+.ui-slider-horizontal {
+	height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+	top: -.3em;
+	margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+	top: 0;
+	height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+	left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+	right: 0;
+}
+
+.ui-slider-vertical {
+	width: .8em;
+	height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+	left: -.3em;
+	margin-left: 0;
+	margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+	left: 0;
+	width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+	bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+	top: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #dddddd;
+	background: #eeeeee url(../images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;
+	color: #333333;
+}
+.ui-widget-content a {
+	color: #333333;
+}
+.ui-widget-header {
+	border: 1px solid #e78f08;
+	background: #f6a828 url(../images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;
+	color: #ffffff;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #ffffff;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #cccccc;
+	background: #f6f6f6 url(../images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #1c94c4;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #1c94c4;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #fbcb09;
+	background: #fdf5ce url(../images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #c77405;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited {
+	color: #c77405;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #fbd850;
+	background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #eb8f00;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #eb8f00;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fed22f;
+	background: #ffe45c url(../images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #b81900 url(../images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;
+	color: #ffffff;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #ffffff;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #ffffff;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70);
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35);
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+	background-position: 16px 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url(../images/ui-icons_222222_256x240.png);
+}
+.ui-widget-header .ui-icon {
+	background-image: url(../images/ui-icons_ffffff_256x240.png);
+}
+.ui-state-default .ui-icon {
+	background-image: url(../images/ui-icons_ef8c08_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url(../images/ui-icons_ef8c08_256x240.png);
+}
+.ui-state-active .ui-icon {
+	background-image: url(../images/ui-icons_ef8c08_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+	background-image: url(../images/ui-icons_228ef1_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url(../images/ui-icons_ffd27a_256x240.png);
+}
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #666666 url(../images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;
+	opacity: .5;
+	filter: Alpha(Opacity=50);
+}
+.ui-widget-shadow {
+	margin: -5px 0 0 -5px;
+	padding: 5px;
+	background: #000000 url(../images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;
+	opacity: .2;
+	filter: Alpha(Opacity=20);
+	border-radius: 5px;
+}
Index: wp-includes/pluggable.php
===================================================================
--- wp-includes/pluggable.php	(revision 23447)
+++ wp-includes/pluggable.php	(working copy)
@@ -1713,17 +1713,21 @@
 
 	$left_lines  = explode("\n", $left_string);
 	$right_lines = explode("\n", $right_string);
-
 	$text_diff = new Text_Diff($left_lines, $right_lines);
-	$renderer  = new WP_Text_Diff_Renderer_Table();
+	$renderer  = new WP_Text_Diff_Renderer_Table( $args );
 	$diff = $renderer->render($text_diff);
 
 	if ( !$diff )
 		return '';
 
 	$r  = "<table class='diff'>\n";
-	$r .= "<col class='ltype' /><col class='content' /><col class='ltype' /><col class='content' />";
 
+	if ( isset( $args[ 'showsplitview' ] ) && 'true' == $args[ 'showsplitview' ] ) {
+		$r .= "<col class='ltype' /><col class='content diffsplit' /><col class='ltype' /><col class='content diffsplit' />";
+	} else {
+		$r .= "<col class='ltype' /><col class='content' />";
+	}
+
 	if ( $args['title'] || $args['title_left'] || $args['title_right'] )
 		$r .= "<thead>";
 	if ( $args['title'] )
Index: wp-includes/script-loader.php
===================================================================
--- wp-includes/script-loader.php	(revision 23447)
+++ wp-includes/script-loader.php	(working copy)
@@ -270,8 +270,11 @@
 	$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2011-02-23');
 
 	$scripts->add( 'underscore', '/wp-includes/js/underscore.min.js', array(), '1.4.4', 1 );
-	$scripts->add( 'backbone', '/wp-includes/js/backbone.min.js', array('underscore','jquery'), '0.9.2', 1 );
+	$scripts->add( 'template', "/wp-includes/js/template$suffix.js", array('underscore'), '1.4.4', 1 );
+	$scripts->add( 'backbone', '/wp-includes/js/backbone.min.js', array('underscore','jquery', 'template'), '0.9.2', 1 );
 
+	$scripts->add( 'revisions', "/wp-includes/js/revisions$suffix.js", array('backbone'), '', 1 );
+
 	$scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.8', 1 );
 
 	$scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array('jquery'), false, 1 );
@@ -535,6 +538,8 @@
 	$styles->add( 'customize-controls', "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'ie' ) );
 	$styles->add( 'media-views', "/wp-includes/css/media-views$suffix.css", array( 'buttons' ) );
 	$styles->add( 'buttons', "/wp-includes/css/buttons$suffix.css" );
+	$styles->add( 'revisions', "/wp-admin/css/revisions$suffix.css" );
+	$styles->add( 'wp-jquery-ui-slider', "/wp-includes/css/jquery-ui-slider$suffix.css" );
 
 	foreach ( $rtl_styles as $rtl_style ) {
 		$styles->add_data( $rtl_style, 'rtl', true );
Index: wp-admin/admin-ajax.php
===================================================================
--- wp-admin/admin-ajax.php	(revision 23447)
+++ wp-admin/admin-ajax.php	(working copy)
@@ -42,7 +42,7 @@
 
 $core_actions_get = array(
 	'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache',
-	'autocomplete-user', 'dashboard-widgets', 'logged-in',
+	'autocomplete-user', 'dashboard-widgets', 'logged-in', 'revisions-data'
 );
 
 $core_actions_post = array(
@@ -56,7 +56,7 @@
 	'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
 	'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
 	'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
-	'send-attachment-to-editor', 'save-attachment-order', 'heartbeat',
+	'send-attachment-to-editor', 'save-attachment-order', 'heartbeat'
 );
 
 // Register core Ajax calls.
Index: wp-admin/includes/ajax-actions.php
===================================================================
--- wp-admin/includes/ajax-actions.php	(revision 23447)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -1379,7 +1379,7 @@
 	global $wp_list_table;
 
 	check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
-	
+
 	$post_data = wp_unslash( $_POST );
 
 	$taxonomy = sanitize_key( $post_data['taxonomy'] );
@@ -2086,7 +2086,7 @@
 		$screen_id = sanitize_key($_POST['screenid']);
 	else
 		$screen_id = 'site';
-	
+
 	if ( ! empty($_POST['data']) ) {
 		$data = wp_unslash( (array) $_POST['data'] );
 		// todo: how much to sanitize and preset and what to leave to be accessed from $data or $_POST..?
@@ -2112,3 +2112,76 @@
 
 	wp_send_json($response);
 }
+
+function wp_ajax_revisions_data() {
+	global $compareto, $revision, $showautosaves, $showsplitview;
+
+	$alltherevisions = array();
+
+	wp_reset_vars( array( 'postid', 'compareto', 'showautosaves', 'showsplitview' ) );
+
+	if ( ! $revisions = wp_get_post_revisions( $compareto ) )
+		return;
+
+	$count = 1;
+	foreach ( $revisions as $revision ) :
+	if ( ! current_user_can( 'read_post', $revision->ID )
+			|| 	'true' != $showautosaves && wp_is_post_autosave( $revision )
+		)
+			continue;
+
+		$author = get_the_author_meta( 'display_name', $revision->post_author );
+		/* translators: revision date format, see http://php.net/date */
+		$datef = _x( 'j F, Y @ G:i', 'revision date format');
+
+		$date = date_i18n( $datef, strtotime( $revision->post_modified ) );
+		$revision_date_author = sprintf(
+			'%s %s %s %s (%s)',
+			__( 'Viewing revision from' ),
+			human_time_diff( strtotime( $revision->post_modified ), current_time( 'timestamp' ) ),
+			__( ' ago, by ' ),
+			$author,
+			$date
+		);
+		$restoreaction = wp_nonce_url(
+			add_query_arg(
+				array( 'revision' => $revision->ID, 'action' => 'restore' ),
+				'/wp-admin/revision.php'
+			),
+			"restore-post_$compareto|$revision->ID"
+		);
+		$left_revision = get_post( $compareto ); 
+		$right_revision = get_post( $revision );
+		//
+		//compare from left to right, passed from application
+		$content='';
+		foreach ( array_keys( _wp_post_revision_fields() ) as $field ) {
+			$left_content = apply_filters( "_wp_post_revision_field_$field", $left_revision->$field, $field, $left_revision, 'left' );
+			$right_content = apply_filters( "_wp_post_revision_field_$field", $right_revision->$field, $field, $right_revision, 'right' );
+
+			add_filter( "_wp_post_revision_field_$field", 'wp_kses_post' );
+
+			$args = array();
+
+			if ( $showsplitview )
+				 $args = array( 'showsplitview' => 'true' );
+
+			$content .= wp_text_diff( $left_content, $right_content, $args );	
+		}
+
+		if ( '' != $content ) 
+			$alltherevisions[] = array (
+				'ID' => $revision->ID,
+				'revision_date_author' => $revision_date_author,
+				'revisiondiff' => $content,
+				'restoreaction' => urldecode( $restoreaction )
+			);
+
+	endforeach;
+
+	
+	//array_pop( $allrevisions );
+
+	echo json_encode( $alltherevisions );
+	exit();
+}
\ No newline at end of file
Index: wp-admin/includes/meta-boxes.php
===================================================================
--- wp-admin/includes/meta-boxes.php	(revision 23447)
+++ wp-admin/includes/meta-boxes.php	(working copy)
@@ -178,6 +178,18 @@
 	<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><?php _e('Edit') ?></a>
 	<div id="timestampdiv" class="hide-if-js"><?php touch_time(($action == 'edit'), 1); ?></div>
 </div><?php // /misc-pub-section ?>
+<?php endif;
+
+	$the_revisions = wp_get_post_revisions( $post->ID );
+
+	if ( post_type_supports( $post_type, 'revisions' ) && count( $the_revisions ) ) :
+?>
+<div id="post-revisions-link" class="misc-pub-section" >
+	<span id="revisions-link"><?php _e( 'Revisions:' ) ?></span>
+	<a href="<?php printf( 'revisions.php?revision=%s&postid=%s&action=edit', key( $the_revisions ), $post->ID )?>" class="edit-revisions hide-if-no-js">
+		<?php _e( 'View' ); ?>
+	</a>
+</div>
 <?php endif; ?>
 
 <?php do_action('post_submitbox_misc_actions'); ?>
@@ -979,4 +991,4 @@
 function post_thumbnail_meta_box( $post ) {
 	$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
 	echo _wp_post_thumbnail_html( $thumbnail_id, $post->ID );
-}
\ No newline at end of file
+}
Index: wp-admin/css/colors-fresh.css
===================================================================
--- wp-admin/css/colors-fresh.css	(revision 23447)
+++ wp-admin/css/colors-fresh.css	(working copy)
@@ -1299,17 +1299,28 @@
 
 /* Diff */
 table.diff .diff-deletedline {
-	background-color: #fdd;
+	background-color: #fae6e6;
+	color: #d2281f;
+	text-decoration: line-through;
 }
 
 table.diff .diff-deletedline del {
 	background-color: #f99;
 }
 
+table.diff .diff-deletedline-symbol {
+	color: #d2281f;
+}
+
 table.diff .diff-addedline {
-	background-color: #dfd;
+	background-color: #edf5ea;
+	color: #00a100;
 }
 
+table.diff .diff-addedline-symbol {
+	color: #00a100;
+}
+
 table.diff .diff-addedline ins {
 	background-color: #9f9;
 }
Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 23447)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -3427,9 +3427,17 @@
 }
 
 table.diff col.content {
+	width: auto;
+}
+
+table.diff col.content.diffsplit {
 	width: 50%;
 }
 
+table.diff col.ltype {
+	width: 30px;
+}
+
 table.diff tr {
 	background-color: transparent;
 }
Index: wp-admin/css/revisions.css
===================================================================
--- wp-admin/css/revisions.css	(revision 0)
+++ wp-admin/css/revisions.css	(revision 0)
@@ -0,0 +1,123 @@
+/* Styles for the revision screen */
+
+.revisiondiffcontainer {
+	width: 96%;
+}
+
+.revisiondiffcontainer input.button {
+	margin: 2px;
+}
+
+#diffrestore, #diffnext, #diffcancel {
+	float: right;
+	margin-right: 5px;
+}
+
+#diffprevious, #difftitle {
+	float: left;
+	margin-left: 5px;
+}
+
+#diffheader, #diffsubheader {
+	clear: both;
+	width: 100%;
+}
+
+#diffheader {
+	border-bottom: 2px solid #999;
+	width: 100%;
+	height: 55px;
+	line-height: 55px;
+	padding-top: 10px;
+}
+
+#diffsubheader {
+	background-color: #eee;
+	border-bottom: 2px solid #999;
+	width: 100%;
+	height: 2.8em;
+	line-height: 2.8em;
+}
+
+#diffslider {
+	width: 70%;
+	margin-left: auto;
+	margin-right: auto;
+	text-align: center;
+	height: 3.5em;
+
+}
+
+#revisioncount {
+	width: 50%;
+	margin-left: auto;
+	margin-right: auto;
+	margin-top: 0;
+	line-height: 1em;
+	height: 1em;
+	text-align: center;
+	clear: none;
+	padding: 5px;
+}
+
+.revisiondiffcontainer {
+	margin-top: 10px;
+}
+
+#diffsliderwrap {
+	width: 80%;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+#diffsliderwrap #sliderinner {
+	position: relative;
+	top: 47px;
+}
+
+#removedandadded {
+	width: 96%;
+	padding-left: 10px;
+	padding-right: 20px;
+	padding-bottom: 30px;
+	padding-top: 3px;
+	font-size: 16px;
+}
+
+#removed, #added {
+	width: auto;
+	text-align: left;
+	padding-left: 5px;
+	padding-right: 5px;
+	padding-top: 5px;
+	padding-bottom: 5px;
+	float: left;
+}
+.diffsplit #added {
+	float: right;
+}
+
+#added {
+ 	padding-left: 10px;
+}
+
+#removed {
+ 	padding-left: 0px;
+ }
+
+#removed {
+	color: #d2281f;
+}
+
+#added {
+	color: #00a100;
+}
+
+#revisionoptions {
+	margin-top: 30px;
+	line-height: 40px;
+}
+
+#comparetworevisions input{
+	float: right;
+}
\ No newline at end of file
Index: wp-admin/revisions.php
===================================================================
--- wp-admin/revisions.php	(revision 0)
+++ wp-admin/revisions.php	(revision 0)
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Revisions administration panel.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+/** WordPress Administration Bootstrap */
+require( './admin.php' );
+wp_reset_vars( array( 'postid', 'revision', 'action' ) );
+
+$postid = absint( $postid );
+if ( ! current_user_can( 'edit_post', $postid ) ) {
+	wp_redirect( 'edit.php' );
+	exit;
+}
+
+if ( ! WP_POST_REVISIONS || ! post_type_supports( get_post( $postid )->post_type, 'revisions') ) { // Revisions disabled
+	wp_redirect( get_edit_post_link( $postid , '') );
+	exit;
+}
+
+wp_enqueue_style( 'revisions' );
+wp_enqueue_style( 'wp-jquery-ui-slider' );
+
+wp_enqueue_script( 'jquery-ui-slider' );
+wp_enqueue_script( 'backbone' );
+wp_enqueue_script( 'revisions' );
+
+require( './admin-header.php' );
+
+$post_title = '<a href="' . get_edit_post_link( $postid ) . '">' . get_the_title( $postid ) . '</a>';
+$h2 = sprintf( __( 'Compare Revisions of &#8220;%1$s&#8221;' ), $post_title );
+
+?>
+<script type="text/javascript">
+var postid = <?php echo $postid; ?>;
+</script>
+<div class="wrap">
+	<div class="icon32 icon32-posts-post" id="icon-edit"><br></div>
+	<h2 class="long-header"><?php echo $h2; ?></h2>
+	<div class="revisiondiffcontainer">
+		<div id="diffheader">
+			<div id="diffprevious"><input class="button" type="submit" id="previous" value="Previous" /></div>
+			<div id="diffnext"><input class="button" type="submit" id="next" value="Next" /></div>
+			<div id="diffslider"><div id="revisioncount"><?php _e( 'Revision' ); ?> <span id="diff_count"></span> <?php _e( ' of ' ); ?><span id="diff_max" ></span></div><div id="slider"></div></div>
+		</div>
+		<div id="backbonerevisionsdiff"></div>
+<?php 
+	$comparetworevisionslink = admin_url ( sprintf( 'revision.php?revision=%d&action=edit', $revision ) );
+?>
+		<div id="comparetworevisions"><input class="button" onClick="document.location='<?php echo $comparetworevisionslink; ?>'" type="submit" id="comparetwo" value="<?php esc_attr_e( 'Compare two revisions' )?>" /></div>
+	</div>
+</div>
+<script id="tmpl-revision" type="text/html">
+	<div id="diffsubheader">
+		<div id="difftitle">{{{ data.revision_date_author }}}</div>
+		<div id="diffcancel"><input class="button" onClick="document.location='<?php echo get_edit_post_link( $postid ); ?>'" type="submit" id="cancel" value="<?php esc_attr_e( 'Cancel' )?>" /></div>
+		<div id="diffrestore"><input class="button button-primary" onClick="document.location='{{{ data.restoreaction }}}'" type="submit" id="restore" value="<?php esc_attr_e( 'Restore this Revision' )?>" /></div>
+	</div>
+	<div id="removedandadded">
+		<div id="removed"><?php _e( 'Removed -' ); ?></div>
+		<div id="added"><?php _e( 'Added +' ); ?></div>
+	</div
+	<div>{{{ data.revisiondiff }}}</div>
+</script>
+
+<div id="backbonerevisionslist"></div>
+
+<div id="revisionoptions">
+	<input type='checkbox' id="showsplitview" value="1" /> <?php _e( 'Show split diff view' ); ?>
+	<br />
+	<input type='checkbox' id="toggleshowautosaves" value="1" /> <?php _e( 'Show autosaves' ); ?>
+</div>
+
+<?php
+
+require( './admin-footer.php' );
\ No newline at end of file
