Commits

Jens Alfke  committed 3e79849

* Info pane is now tabbed and can also show file contents or diff.
* Fixed some bugs with handling errors from 'hg' tool.
* Fixed some bugs getting file contents and diffs.

  • Participants
  • Parent commits 80e5645

Comments (0)

Files changed (5)

File English.lproj/Repo.xib

 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">9G55</string>
+		<string key="IBDocument.SystemVersion">9J61</string>
 		<string key="IBDocument.InterfaceBuilderVersion">677</string>
-		<string key="IBDocument.AppKitVersion">949.43</string>
+		<string key="IBDocument.AppKitVersion">949.46</string>
 		<string key="IBDocument.HIToolboxVersion">353.00</string>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="300032"/>
+			<integer value="300037"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
 a5xaIbKVaegfAIFyKYAwGq7jUxYAASZ2nFwfSBNEgVRoEfCB+f53oIH5tMIIgIAAAA8BAAADAAAAAQAQ
 AAABAQADAAAAAQAQAAABAgADAAAABAAABDIBAwADAAAAAQAFAAABBgADAAAAAQACAAABEQAEAAAAAQAA
 AAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQgAAAABFwAEAAAAAQAAA28BHAADAAAAAQAB
-AAABPQADAAAAAQACAAABUgADAAAAAQABAAABUwADAAAABAAABDqHcwAHAAARHAAABEIAAAAAAAgACAAI
-AAgAAQABAAEAAQAAERxhcHBsAgAAAG1udHJSR0IgWFlaIAfZAAEAAQAJADkAImFjc3BBUFBMAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbA75NPFkO19GKBUJZBpBJk0AAAAAAAAAAAAA
+AAABPQADAAAAAQACAAABUgADAAAAAQABAAABUwADAAAABAAABDqHcwAHAAARIAAABEIAAAAAAAgACAAI
+AAgAAQABAAEAAQAAESBhcHBsAgAAAG1udHJSR0IgWFlaIAfZAAUAEwAMAAkABmFjc3BBUFBMAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbCq9nqYvT0UwvOo3M3eEJMQAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAADnJYWVoAAAEsAAAAFGdYWVoAAAFAAAAAFGJYWVoAAAFUAAAAFHd0
 cHQAAAFoAAAAFGNoYWQAAAF8AAAALHJUUkMAAAGoAAAADmdUUkMAAAG4AAAADmJUUkMAAAHIAAAADnZj
-Z3QAAAHYAAAGEm5kaW4AAAfsAAAGPmRlc2MAAA4sAAAAZGRzY20AAA6QAAACPm1tb2QAABDQAAAAKGNw
-cnQAABD4AAAAJFhZWiAAAAAAAABgAAAANcQAAAcqWFlaIAAAAAAAAG+RAACzYwAAGPJYWVogAAAAAAAA
+Z3QAAAHYAAAGEm5kaW4AAAfsAAAGPmRlc2MAAA4sAAAAZGRzY20AAA6QAAACQm1tb2QAABDUAAAAKGNw
+cnQAABD8AAAAJFhZWiAAAAAAAABgAAAANcQAAAcqWFlaIAAAAAAAAG+RAACzYwAAGPJYWVogAAAAAAAA
 J0QAABbzAACzCVhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//
 +6L///2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHN
 AAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAApAJABIAG6AnYDUARFBWEGlAfdCUEKugw5DcEPVxDoEnYT/hV5
 /QX9NP1k/ZP9w/3z/iL+T/56/qX+0P77/yf/Uv99/6j/1P//AABkZXNjAAAAAAAAAApDb2xvciBMQ0QA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAASAAAADG5iTk8AAAASAAAA6HB0UFQAAAAWAAAA+nN2
-U0UAAAAQAAABEGZpRkkAAAAQAAABIGRhREsAAAAcAAABMHpoQ04AAAAMAAABTGZyRlIAAAASAAABWGph
-SlAAAAAOAAABamVuVVMAAAASAAABeHBsUEwAAAASAAABinB0QlIAAAAYAAABnGVzRVMAAAASAAABtHpo
-VFcAAAAOAAABxnJ1UlUAAAAkAAAB1GtvS1IAAAAMAAAB+GRlREUAAAAQAAACBG5sTkwAAAAWAAACFGl0
-SVQAAAAUAAACKgBGAGEAcgBnAGUALQBMAEMARABMAEMARAAgAGEAIABDAG8AcgBlAHMARgDkAHIAZwAt
+U0UAAAAQAAABEGZpRkkAAAAQAAABIGRhREsAAAAcAAABMHpoQ04AAAAMAAABTGZyRlIAAAAWAAABWGph
+SlAAAAAOAAABbmVuVVMAAAASAAABfHBsUEwAAAASAAABjnB0QlIAAAAYAAABoGVzRVMAAAASAAABuHpo
+VFcAAAAOAAABynJ1UlUAAAAkAAAB2GtvS1IAAAAMAAAB/GRlREUAAAAQAAACCG5sTkwAAAAWAAACGGl0
+SVQAAAAUAAACLgBGAGEAcgBnAGUALQBMAEMARABMAEMARAAgAGEAIABDAG8AcgBlAHMARgDkAHIAZwAt
 AEwAQwBEAFYA5AByAGkALQBMAEMARABMAEMARAAtAGYAYQByAHYAZQBzAGsA5gByAG1faYJyACAATABD
-AEQAyQBjAHIAYQBuACAATABDAEQwqzDpMPwAIABMAEMARABDAG8AbABvAHIAIABMAEMARABLAG8AbABv
-AHIAIABMAEMARABMAEMARAAgAEMAbwBsAG8AcgBpAGQAbwBMAEMARAAgAGMAbwBsAG8Acl9pgnJtsmZ2
-mG95OlZoBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/BDsENQQ5zuy37AAgAEwAQwBEAEYAYQBy
-AGIALQBMAEMARABLAGwAZQB1AHIAZQBuAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIAaQAAbW1vZAAA
-AAAAAAYQAACcgQAAAADBvf+AAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlLCBJ
-bmMuLCAyMDA5AA</bytes>
+AEQATABDAEQAIABjAG8AdQBsAGUAdQByMKsw6TD8ACAATABDAEQAQwBvAGwAbwByACAATABDAEQASwBv
+AGwAbwByACAATABDAEQATABDAEQAIABDAG8AbABvAHIAaQBkAG8ATABDAEQAIABjAG8AbABvAHJfaYJy
+bbJmdphveTpWaAQmBDIENQRCBD0EPgQ5ACAEFgQaAC0ENAQ4BEEEPwQ7BDUEOc7st+wAIABMAEMARABG
+AGEAcgBiAC0ATABDAEQASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAGkAAG1t
+b2QAAAAAAAAGEAAAnIEAAAAAwb3/gAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBs
+ZSwgSW5jLiwgMjAwOQA</bytes>
 																				</object>
 																				<string key="NSCacheWindowColorSpace">NSCalibratedRGBColorSpace</string>
 																				<int key="NSCacheWindowBPS">8</int>
 										<bool key="EncodedWithXMLCoder">YES</bool>
 										<object class="NSScrollView" id="977457134">
 											<reference key="NSNextResponder" ref="599257509"/>
-											<int key="NSvFlags">274</int>
+											<int key="NSvFlags">4370</int>
 											<object class="NSMutableArray" key="NSSubviews">
 												<bool key="EncodedWithXMLCoder">YES</bool>
 												<object class="NSClipView" id="305294895">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<object class="NSOutlineView" id="408726427">
 															<reference key="NSNextResponder" ref="305294895"/>
-															<int key="NSvFlags">256</int>
-															<string key="NSFrameSize">{281, 262}</string>
+															<int key="NSvFlags">4352</int>
+															<string key="NSFrameSize">{292, 262}</string>
 															<reference key="NSSuperview" ref="305294895"/>
 															<bool key="NSEnabled">YES</bool>
 															<object class="NSTableHeaderView" key="NSHeaderView" id="435744945">
 																<reference key="NSNextResponder" ref="960155502"/>
 																<int key="NSvFlags">256</int>
-																<string key="NSFrameSize">{281, 17}</string>
+																<string key="NSFrameSize">{292, 17}</string>
 																<reference key="NSSuperview" ref="960155502"/>
 																<reference key="NSTableView" ref="408726427"/>
 															</object>
 																</object>
 																<object class="NSTableColumn" id="157704806">
 																	<string key="NSIdentifier">name</string>
-																	<double key="NSWidth">2.240000e+02</double>
+																	<double key="NSWidth">2.350000e+02</double>
 																	<double key="NSMinWidth">4.000000e+01</double>
 																	<double key="NSMaxWidth">1.000000e+03</double>
 																	<object class="NSTableHeaderCell" key="NSHeaderCell">
 															<reference key="NSOutlineViewOutlineTableColumnKey" ref="157704806"/>
 														</object>
 													</object>
-													<string key="NSFrame">{{0, 17}, {281, 262}}</string>
+													<string key="NSFrame">{{0, 17}, {292, 262}}</string>
 													<reference key="NSSuperview" ref="977457134"/>
 													<reference key="NSNextKeyView" ref="408726427"/>
 													<reference key="NSDocView" ref="408726427"/>
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<reference ref="435744945"/>
 													</object>
-													<string key="NSFrameSize">{281, 17}</string>
+													<string key="NSFrameSize">{292, 17}</string>
 													<reference key="NSSuperview" ref="977457134"/>
 													<reference key="NSNextKeyView" ref="435744945"/>
 													<reference key="NSDocView" ref="435744945"/>
 												</object>
 												<reference ref="674521879"/>
 											</object>
-											<string key="NSFrameSize">{281, 279}</string>
+											<string key="NSFrameSize">{292, 279}</string>
 											<reference key="NSSuperview" ref="599257509"/>
 											<reference key="NSNextKeyView" ref="305294895"/>
 											<int key="NSsFlags">560</int>
 											<reference key="NSCornerView" ref="674521879"/>
 											<bytes key="NSScrollAmts">QSAAAEEgAABBkAAAQZAAAA</bytes>
 										</object>
-										<object class="NSScrollView" id="554197517">
+										<object class="NSCustomView" id="987824090">
 											<reference key="NSNextResponder" ref="599257509"/>
-											<int key="NSvFlags">290</int>
+											<int key="NSvFlags">268</int>
 											<object class="NSMutableArray" key="NSSubviews">
 												<bool key="EncodedWithXMLCoder">YES</bool>
-												<object class="NSClipView" id="378280175">
-													<reference key="NSNextResponder" ref="554197517"/>
-													<int key="NSvFlags">2304</int>
+												<object class="NSScrollView" id="554197517">
+													<reference key="NSNextResponder" ref="987824090"/>
+													<int key="NSvFlags">274</int>
 													<object class="NSMutableArray" key="NSSubviews">
 														<bool key="EncodedWithXMLCoder">YES</bool>
-														<object class="NSTextView" id="1057217485">
-															<reference key="NSNextResponder" ref="378280175"/>
-															<int key="NSvFlags">2322</int>
-															<string key="NSFrameSize">{302, 12}</string>
-															<reference key="NSSuperview" ref="378280175"/>
-															<object class="NSTextContainer" key="NSTextContainer" id="178117438">
-																<object class="NSLayoutManager" key="NSLayoutManager">
-																	<object class="NSTextStorage" key="NSTextStorage">
-																		<object class="NSMutableString" key="NSString">
-																			<characters key="NS.bytes">x</characters>
+														<object class="NSClipView" id="378280175">
+															<reference key="NSNextResponder" ref="554197517"/>
+															<int key="NSvFlags">2304</int>
+															<object class="NSMutableArray" key="NSSubviews">
+																<bool key="EncodedWithXMLCoder">YES</bool>
+																<object class="NSTextView" id="1057217485">
+																	<reference key="NSNextResponder" ref="378280175"/>
+																	<int key="NSvFlags">2322</int>
+																	<string key="NSFrameSize">{88, 200}</string>
+																	<reference key="NSSuperview" ref="378280175"/>
+																	<object class="NSTextContainer" key="NSTextContainer" id="178117438">
+																		<object class="NSLayoutManager" key="NSLayoutManager">
+																			<object class="NSTextStorage" key="NSTextStorage">
+																				<object class="NSMutableString" key="NSString">
+																					<characters key="NS.bytes">x</characters>
+																				</object>
+																				<object class="NSDictionary" key="NSAttributes">
+																					<bool key="EncodedWithXMLCoder">YES</bool>
+																					<object class="NSMutableArray" key="dict.sortedKeys">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<string>NSFont</string>
+																						<string>NSParagraphStyle</string>
+																					</object>
+																					<object class="NSMutableArray" key="dict.values">
+																						<bool key="EncodedWithXMLCoder">YES</bool>
+																						<object class="NSFont">
+																							<string key="NSName">LucidaGrande</string>
+																							<double key="NSSize">1.000000e+01</double>
+																							<int key="NSfFlags">2843</int>
+																						</object>
+																						<object class="NSParagraphStyle">
+																							<int key="NSAlignment">4</int>
+																							<nil key="NSTabStops"/>
+																						</object>
+																					</object>
+																				</object>
+																				<nil key="NSDelegate"/>
+																			</object>
+																			<object class="NSMutableArray" key="NSTextContainers">
+																				<bool key="EncodedWithXMLCoder">YES</bool>
+																				<reference ref="178117438"/>
+																			</object>
+																			<float key="NSHyphenationFactor">1.540000e+02</float>
+																			<int key="NSLMFlags">134</int>
+																			<nil key="NSDelegate"/>
 																		</object>
-																		<object class="NSDictionary" key="NSAttributes">
+																		<reference key="NSTextView" ref="1057217485"/>
+																		<double key="NSWidth">8.800000e+01</double>
+																		<int key="NSTCFlags">1</int>
+																	</object>
+																	<object class="NSTextViewSharedData" key="NSSharedData">
+																		<int key="NSFlags">290561</int>
+																		<reference key="NSBackgroundColor" ref="1027376210"/>
+																		<reference key="NSInsertionColor" ref="102226568"/>
+																		<object class="NSDictionary" key="NSSelectedAttributes">
 																			<bool key="EncodedWithXMLCoder">YES</bool>
 																			<object class="NSMutableArray" key="dict.sortedKeys">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<string>NSFont</string>
-																				<string>NSParagraphStyle</string>
+																				<string>NSBackgroundColor</string>
+																				<string>NSColor</string>
 																			</object>
 																			<object class="NSMutableArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<object class="NSFont">
-																					<string key="NSName">LucidaGrande</string>
-																					<double key="NSSize">1.000000e+01</double>
-																					<int key="NSfFlags">2843</int>
+																				<object class="NSColor" id="553382639">
+																					<int key="NSColorSpace">6</int>
+																					<string key="NSCatalogName">System</string>
+																					<string key="NSColorName">selectedTextBackgroundColor</string>
+																					<reference key="NSColor" ref="210492841"/>
 																				</object>
-																				<object class="NSParagraphStyle">
-																					<int key="NSAlignment">4</int>
-																					<nil key="NSTabStops"/>
+																				<object class="NSColor" id="209421479">
+																					<int key="NSColorSpace">6</int>
+																					<string key="NSCatalogName">System</string>
+																					<string key="NSColorName">selectedTextColor</string>
+																					<reference key="NSColor" ref="102226568"/>
 																				</object>
 																			</object>
 																		</object>
-																		<nil key="NSDelegate"/>
+																		<nil key="NSMarkedAttributes"/>
+																		<object class="NSDictionary" key="NSLinkAttributes">
+																			<bool key="EncodedWithXMLCoder">YES</bool>
+																			<object class="NSMutableArray" key="dict.sortedKeys">
+																				<bool key="EncodedWithXMLCoder">YES</bool>
+																				<string>NSColor</string>
+																				<string>NSUnderline</string>
+																			</object>
+																			<object class="NSMutableArray" key="dict.values">
+																				<bool key="EncodedWithXMLCoder">YES</bool>
+																				<object class="NSColor" id="833730798">
+																					<int key="NSColorSpace">1</int>
+																					<bytes key="NSRGB">MCAwIDEAA</bytes>
+																				</object>
+																				<integer value="1" id="9"/>
+																			</object>
+																		</object>
+																		<nil key="NSDefaultParagraphStyle"/>
 																	</object>
-																	<object class="NSMutableArray" key="NSTextContainers">
-																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<reference ref="178117438"/>
-																	</object>
-																	<float key="NSHyphenationFactor">1.540000e+02</float>
-																	<int key="NSLMFlags">134</int>
+																	<int key="NSTVFlags">7</int>
+																	<string key="NSMaxSize">{1e+07, 1e+07}</string>
 																	<nil key="NSDelegate"/>
 																</object>
-																<reference key="NSTextView" ref="1057217485"/>
-																<double key="NSWidth">3.020000e+02</double>
-																<int key="NSTCFlags">1</int>
 															</object>
-															<object class="NSTextViewSharedData" key="NSSharedData">
-																<int key="NSFlags">11873</int>
-																<reference key="NSBackgroundColor" ref="1027376210"/>
-																<reference key="NSInsertionColor" ref="102226568"/>
-																<object class="NSDictionary" key="NSSelectedAttributes">
-																	<bool key="EncodedWithXMLCoder">YES</bool>
-																	<object class="NSMutableArray" key="dict.sortedKeys">
-																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<string>NSBackgroundColor</string>
-																		<string>NSColor</string>
-																	</object>
-																	<object class="NSMutableArray" key="dict.values">
-																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSColor" id="553382639">
-																			<int key="NSColorSpace">6</int>
-																			<string key="NSCatalogName">System</string>
-																			<string key="NSColorName">selectedTextBackgroundColor</string>
-																			<reference key="NSColor" ref="210492841"/>
-																		</object>
-																		<object class="NSColor" id="209421479">
-																			<int key="NSColorSpace">6</int>
-																			<string key="NSCatalogName">System</string>
-																			<string key="NSColorName">selectedTextColor</string>
-																			<reference key="NSColor" ref="102226568"/>
-																		</object>
-																	</object>
-																</object>
-																<nil key="NSMarkedAttributes"/>
-																<object class="NSDictionary" key="NSLinkAttributes">
-																	<bool key="EncodedWithXMLCoder">YES</bool>
-																	<object class="NSMutableArray" key="dict.sortedKeys">
-																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<string>NSColor</string>
-																		<string>NSUnderline</string>
-																	</object>
-																	<object class="NSMutableArray" key="dict.values">
-																		<bool key="EncodedWithXMLCoder">YES</bool>
-																		<object class="NSColor" id="833730798">
-																			<int key="NSColorSpace">1</int>
-																			<bytes key="NSRGB">MCAwIDEAA</bytes>
-																		</object>
-																		<integer value="1" id="9"/>
-																	</object>
-																</object>
-																<nil key="NSDefaultParagraphStyle"/>
+															<string key="NSFrame">{{1, 1}, {285, 252}}</string>
+															<reference key="NSSuperview" ref="554197517"/>
+															<reference key="NSNextKeyView" ref="1057217485"/>
+															<reference key="NSDocView" ref="1057217485"/>
+															<reference key="NSBGColor" ref="131218211"/>
+															<object class="NSCursor" key="NSCursor" id="770217247">
+																<string key="NSHotSpot">{4, -5}</string>
+																<int key="NSCursorType">1</int>
 															</object>
-															<int key="NSTVFlags">6</int>
-															<string key="NSMaxSize">{600, 1e+07}</string>
-															<string key="NSMinize">{88, 0}</string>
-															<nil key="NSDelegate"/>
+															<int key="NScvFlags">4</int>
+														</object>
+														<object class="NSScroller" id="31961279">
+															<reference key="NSNextResponder" ref="554197517"/>
+															<int key="NSvFlags">-2147483392</int>
+															<string key="NSFrame">{{271, 1}, {15, 237}}</string>
+															<reference key="NSSuperview" ref="554197517"/>
+															<reference key="NSTarget" ref="554197517"/>
+															<string key="NSAction">_doScroller:</string>
+															<double key="NSPercent">9.404762e-01</double>
+														</object>
+														<object class="NSScroller" id="79423723">
+															<reference key="NSNextResponder" ref="554197517"/>
+															<int key="NSvFlags">-2147483392</int>
+															<string key="NSFrame">{{1, 238}, {270, 15}}</string>
+															<reference key="NSSuperview" ref="554197517"/>
+															<int key="NSsFlags">1</int>
+															<reference key="NSTarget" ref="554197517"/>
+															<string key="NSAction">_doScroller:</string>
+															<double key="NSPercent">9.278350e-01</double>
 														</object>
 													</object>
-													<string key="NSFrame">{{1, 1}, {296, 277}}</string>
-													<reference key="NSSuperview" ref="554197517"/>
-													<reference key="NSNextKeyView" ref="1057217485"/>
-													<reference key="NSDocView" ref="1057217485"/>
-													<reference key="NSBGColor" ref="131218211"/>
-													<object class="NSCursor" key="NSCursor" id="770217247">
-														<string key="NSHotSpot">{4, -5}</string>
-														<int key="NSCursorType">1</int>
+													<string key="NSFrameSize">{287, 254}</string>
+													<reference key="NSSuperview" ref="987824090"/>
+													<reference key="NSNextKeyView" ref="378280175"/>
+													<int key="NSsFlags">562</int>
+													<reference key="NSVScroller" ref="31961279"/>
+													<reference key="NSHScroller" ref="79423723"/>
+													<reference key="NSContentView" ref="378280175"/>
+												</object>
+												<object class="NSSegmentedControl" id="955311734">
+													<reference key="NSNextResponder" ref="987824090"/>
+													<int key="NSvFlags">269</int>
+													<string key="NSFrame">{{39, 259}, {209, 20}}</string>
+													<reference key="NSSuperview" ref="987824090"/>
+													<bool key="NSEnabled">YES</bool>
+													<object class="NSSegmentedCell" key="NSCell" id="901185224">
+														<int key="NSCellFlags">67239424</int>
+														<int key="NSCellFlags2">131072</int>
+														<reference key="NSSupport" ref="26"/>
+														<reference key="NSControlView" ref="955311734"/>
+														<object class="NSMutableArray" key="NSSegmentImages">
+															<bool key="EncodedWithXMLCoder">YES</bool>
+															<object class="NSSegmentItem">
+																<string key="NSSegmentItemLabel">Rev Log</string>
+																<string key="NSSegmentItemTooltip">Shows the information and checkin comment for this revision</string>
+																<bool key="NSSegmentItemSelected">YES</bool>
+																<int key="NSSegmentItemImageScaling">0</int>
+															</object>
+															<object class="NSSegmentItem">
+																<string key="NSSegmentItemLabel">File Contents</string>
+																<string key="NSSegmentItemTooltip">Shows the contents of this revision of the file</string>
+																<int key="NSSegmentItemTag">1</int>
+																<int key="NSSegmentItemImageScaling">0</int>
+															</object>
+															<object class="NSSegmentItem">
+																<string key="NSSegmentItemLabel">File Diff</string>
+																<int key="NSSegmentItemImageScaling">0</int>
+															</object>
+														</object>
+														<int key="NSSegmentStyle">1</int>
 													</object>
-													<int key="NScvFlags">2</int>
-												</object>
-												<object class="NSScroller" id="31961279">
-													<reference key="NSNextResponder" ref="554197517"/>
-													<int key="NSvFlags">-2147483392</int>
-													<string key="NSFrame">{{281, 1}, {15, 276}}</string>
-													<reference key="NSSuperview" ref="554197517"/>
-													<reference key="NSTarget" ref="554197517"/>
-													<string key="NSAction">_doScroller:</string>
-													<double key="NSPercent">8.706625e-01</double>
-												</object>
-												<object class="NSScroller" id="79423723">
-													<reference key="NSNextResponder" ref="554197517"/>
-													<int key="NSvFlags">256</int>
-													<string key="NSFrame">{{-100, -100}, {87, 18}}</string>
-													<reference key="NSSuperview" ref="554197517"/>
-													<bool key="NSEnabled">YES</bool>
-													<int key="NSsFlags">1</int>
-													<reference key="NSTarget" ref="554197517"/>
-													<string key="NSAction">_doScroller:</string>
-													<double key="NSCurValue">1.000000e+00</double>
-													<double key="NSPercent">9.456522e-01</double>
 												</object>
 											</object>
-											<string key="NSFrame">{{290, 0}, {298, 279}}</string>
+											<string key="NSFrame">{{301, 0}, {287, 279}}</string>
 											<reference key="NSSuperview" ref="599257509"/>
-											<reference key="NSNextKeyView" ref="378280175"/>
-											<int key="NSsFlags">658</int>
-											<reference key="NSVScroller" ref="31961279"/>
-											<reference key="NSHScroller" ref="79423723"/>
-											<reference key="NSContentView" ref="378280175"/>
+											<string key="NSClassName">NSView</string>
 										</object>
 									</object>
 									<string key="NSFrame">{{0, 211}, {588, 279}}</string>
 									</object>
 									<string key="NSFrame">{{1, 1}, {366, 101}}</string>
 									<reference key="NSSuperview" ref="912248093"/>
+									<reference key="NSNextKeyView" ref="925909873"/>
 									<reference key="NSDocView" ref="925909873"/>
 									<reference key="NSBGColor" ref="1027376210"/>
 									<reference key="NSCursor" ref="770217247"/>
 							</object>
 							<string key="NSFrame">{{20, 60}, {368, 103}}</string>
 							<reference key="NSSuperview" ref="601455988"/>
+							<reference key="NSNextKeyView" ref="592092130"/>
 							<int key="NSsFlags">530</int>
 							<reference key="NSVScroller" ref="263886132"/>
 							<reference key="NSHScroller" ref="104809913"/>
 					</object>
 					<int key="connectionID">300303</int>
 				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">_infoChooser</string>
+						<reference key="source" ref="798535885"/>
+						<reference key="destination" ref="955311734"/>
+					</object>
+					<int key="connectionID">300315</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">infoChooserChanged:</string>
+						<reference key="source" ref="798535885"/>
+						<reference key="destination" ref="901185224"/>
+					</object>
+					<int key="connectionID">300316</int>
+				</object>
 			</object>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 				<object class="NSArray" key="orderedObjects">
 						<reference key="object" ref="599257509"/>
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="554197517"/>
 							<reference ref="977457134"/>
+							<reference ref="987824090"/>
 						</object>
 						<reference key="parent" ref="333363212"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">300037</int>
-						<reference key="object" ref="554197517"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1057217485"/>
-							<reference ref="79423723"/>
-							<reference ref="31961279"/>
-						</object>
-						<reference key="parent" ref="599257509"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">3</int>
 						<reference key="object" ref="977457134"/>
 						<object class="NSMutableArray" key="children">
 						<reference key="parent" ref="453707715"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">300040</int>
-						<reference key="object" ref="1057217485"/>
-						<reference key="parent" ref="554197517"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">300039</int>
-						<reference key="object" ref="79423723"/>
-						<reference key="parent" ref="554197517"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">300038</int>
-						<reference key="object" ref="31961279"/>
-						<reference key="parent" ref="554197517"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">300205</int>
 						<reference key="object" ref="141369703"/>
 						<object class="NSMutableArray" key="children">
 						<reference key="object" ref="457325178"/>
 						<reference key="parent" ref="722134955"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300306</int>
+						<reference key="object" ref="987824090"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="955311734"/>
+							<reference ref="554197517"/>
+						</object>
+						<reference key="parent" ref="599257509"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300037</int>
+						<reference key="object" ref="554197517"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="31961279"/>
+							<reference ref="79423723"/>
+							<reference ref="1057217485"/>
+						</object>
+						<reference key="parent" ref="987824090"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300038</int>
+						<reference key="object" ref="31961279"/>
+						<reference key="parent" ref="554197517"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300039</int>
+						<reference key="object" ref="79423723"/>
+						<reference key="parent" ref="554197517"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300040</int>
+						<reference key="object" ref="1057217485"/>
+						<reference key="parent" ref="554197517"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300307</int>
+						<reference key="object" ref="955311734"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="901185224"/>
+						</object>
+						<reference key="parent" ref="987824090"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">300308</int>
+						<reference key="object" ref="901185224"/>
+						<reference key="parent" ref="955311734"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
 					<string>300284.IBPluginDependency</string>
 					<string>300291.IBPluginDependency</string>
 					<string>300300.IBPluginDependency</string>
+					<string>300306.IBPluginDependency</string>
+					<string>300307.IBPluginDependency</string>
+					<string>300307.IBSegmentedControlTracker.RoundRobinState</string>
+					<string>300307.IBSegmentedControlTracker.WasGrowing</string>
+					<string>300308.IBPluginDependency</string>
 					<string>6.IBPluginDependency</string>
 					<string>6.ImportedFromIB2</string>
 					<string>8.IBPluginDependency</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<reference ref="9"/>
-					<string>{{208, 182}, {586, 488}}</string>
-					<string>{{208, 182}, {586, 488}}</string>
+					<string>{{213, 21}, {586, 488}}</string>
+					<string>{{213, 21}, {586, 488}}</string>
 					<reference ref="9"/>
 					<string>{{166, 135}, {586, 488}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<reference ref="9"/>
+					<reference ref="9"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<reference ref="9"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<reference ref="9"/>
 				</object>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">300304</int>
+			<int key="maxID">300316</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
 							<string>commitChanges:</string>
 							<string>discardChanges:</string>
 							<string>endCommitSheet:</string>
+							<string>infoChooserChanged:</string>
 							<string>openSelectedFile:</string>
 							<string>pushPullRevisions:</string>
 							<string>refreshStatus:</string>
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
+							<string>id</string>
 						</object>
 					</object>
 					<object class="NSMutableDictionary" key="outlets">
 							<string>_commitMessageField</string>
 							<string>_commitSheet</string>
 							<string>_hideShowUnmodifiedToolbarItem</string>
+							<string>_infoChooser</string>
 							<string>_infoSplitter</string>
 							<string>_infoView</string>
 							<string>_outline</string>
 							<string>NSTextView</string>
 							<string>NSPanel</string>
 							<string>NSToolbarItem</string>
+							<string>NSSegmentedControl</string>
 							<string>NSSplitView</string>
 							<string>NSTextView</string>
 							<string>NSOutlineView</string>

File Source/HgRevision.m

 /** Fills in the full info of this revision (and nearby ones) */
 - (BOOL) _getDetails {
     NSRange revs = {_localNumber - (_localNumber % 20), 20};
-    return [_repository getDetailsOfRevisions: revs];
+    if (![_repository getDetailsOfRevisions: revs]) {
+        Warn(@"HgRevision _getDetails: Failed to get details");
+        return NO;
+    } else if (!_date)
+        Warn(@"HgRevision _getDetails: _date still not set!");
+    return YES;
 }
 
 - (NSDate*) date {
         *outError = op.error;
         return nil;
     }
-    return op.output;    
+    return op.output ?: @"";    
 }
 
 

File Source/HgUncommittedRevision.m

 
 - (NSAttributedString*) richFormattedDescription {
     if (_comment)
-        return [[NSAttributedString alloc] initWithString: _comment];
+        return [[NSAttributedString alloc] initWithString: _comment
+                                               attributes: $dict({NSFontAttributeName, [NSFont systemFontOfSize: 12.0f]})];
     else
         return nil;
 }
 
 - (NSData*) getFileContents: (HgFile*)file error: (NSError**)outError
 {
-    return [NSData dataWithContentsOfFile: self.absolutePath
+    return [NSData dataWithContentsOfFile: file.absolutePath
                                   options: NSMappedRead
                                     error: outError];
 }
                                                      command: @"diff",
                        @"--rev", [NSString stringWithFormat: @"%i",otherRev],
                        @"--", file.path, nil];
-    if( ! [op run] )
+    if( ! [op run] ) {
+        *outError = op.error;
         return nil;
-    return op.output;    
+    }
+    return op.output ?: @"";    
+}
+
+- (NSString*) diffFile: (HgFile*)file withRevision: (HgRevision*)other error: (NSError**)outError
+{
+    if (other==self)
+        return @"";
+    return [self diffFile: file withRevisionNumber: other.localNumber error: outError];
 }
 
 

File Source/RepoController.h

     IBOutlet NSSplitView *_splitter, *_infoSplitter;
     IBOutlet NSTreeController *_tree;
     IBOutlet NSArrayController *_revisions;
+    
+    IBOutlet NSSegmentedControl *_infoChooser;
     IBOutlet NSTextView *_infoView;
     
     IBOutlet NSPanel *_commitSheet;
 - (void) setValue: (id)value forSetting: (NSString*)setting;
 - (void) saveSettings;
 
+- (IBAction) infoChooserChanged: (id)sender;
 
 // internal:
 @property (readonly) HgTempDir* tempDir;

File Source/RepoController.m

     return MAX(proposedMinimumPosition,minSize);
 }
 
+- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex
+{
+    if (splitView != _splitter) {
+        float maxPos = splitView.frame.size.width - _infoChooser.frame.size.width - splitView.dividerThickness;
+        proposedMaximumPosition = MIN(proposedMaximumPosition,maxPos);
+    }
+    return proposedMaximumPosition;
+}
+
 - (void)splitViewDidResizeSubviews:(NSNotification *)notification
 {
     if( self.window.isVisible ) {
     }
 }
 
+- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize {
+    NSView *top = [[splitView subviews] objectAtIndex: 0];
+    NSView *bottom = [[splitView subviews] objectAtIndex: 1];
+    NSRect topFrame=top.frame, bottomFrame=bottom.frame;
+    NSSize newSize = splitView.frame.size;
+    if (splitView.isVertical) {
+        topFrame.size.height = newSize.height;
+        bottomFrame.size.height = newSize.height;
+        
+        float dx = newSize.width - oldSize.width;
+        if( NO/*(_resizePaneMode ?: [self _resizePaneMode]) < 0*/ ) {
+            topFrame.size.width += dx;
+            bottomFrame.origin.x += dx;
+        } else {
+            bottomFrame.size.width += dx;
+        }
+    } else {
+        topFrame.size.width = newSize.width;
+        bottomFrame.size.width = newSize.width;
+        
+        float dy = newSize.height - oldSize.height;
+        if( NO/*(_resizePaneMode ?: [self _resizePaneMode]) < 0*/ ) {
+            topFrame.size.height += dy;
+            bottomFrame.origin.y += dy;
+        } else {
+            bottomFrame.size.height += dy;
+        }
+    }
+    top.frame = topFrame;
+    bottom.frame = bottomFrame;
+}
+
 - (BOOL)splitView:(NSSplitView *)splitView canCollapseSubview:(NSView *)subview
 {
     return YES;
 #pragma mark INFO PANE:
 
 
+enum {
+    kInfoLogSegment = 0,
+    kInfoContentsSegment,
+    kInfoDiffSegment
+};
+
+
+- (void) _updateInfoChooser {
+    BOOL hasRev = self.selectedRevision != nil;
+    BOOL hasFile = self.selectedFile.isFile;
+    [_infoChooser setEnabled: hasRev  forSegment: kInfoLogSegment];
+    [_infoChooser setEnabled: hasFile forSegment: kInfoContentsSegment];
+    [_infoChooser setEnabled: hasFile forSegment: kInfoDiffSegment];
+}
+
+
+- (IBAction) infoChooserChanged: (id)sender {
+    [self _updateInfoView];
+}
+
+
+static NSAttributedString* attributedStringForSourceCode( NSString *code ) {
+    if (!code) return nil;
+    NSFont *font = [NSFont fontWithName: @"Courier" size: 10.0f];
+    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
+    paraStyle.lineBreakMode = NSLineBreakByClipping;
+    NSDictionary *attrs = $dict({NSFontAttributeName, font},
+                                {NSParagraphStyleAttributeName, paraStyle});
+    return [[NSAttributedString alloc] initWithString: code
+                                           attributes: attrs];
+}
+    
+    
 - (void) _updateInfoView
 {
+    NSAttributedString *text = nil;
+    BOOL editable = NO, wraps = NO;
+    
     HgRevision *revision = self.selectedRevision;
-    NSAttributedString *text = revision.richFormattedDescription;
-    if (text)
+    HgFile *file = self.selectedFile;
+    if (!file.isFile)
+        file = nil;
+    
+    switch (_infoChooser.selectedSegment) {
+        case kInfoLogSegment:
+            text = revision.richFormattedDescription;
+            editable = revision.isUncommitted;
+            wraps = YES;
+            break;
+        case kInfoContentsSegment:
+            if (file) {
+                NSString *str = nil;
+                NSError *error;
+                NSData *contents = [revision getFileContents: file error: &error];
+                if (contents) {
+                    str = [[NSString alloc] initWithData: contents encoding: NSUTF8StringEncoding];
+                } else {
+                    str = error.localizedRecoverySuggestion;
+                }
+                text = attributedStringForSourceCode(str);
+            }
+            break;
+        case kInfoDiffSegment:
+            if (file) {
+                NSError *error;
+                NSString *str = [revision diffFile: file withRevision: revision.parent error: &error];
+                if (!str)
+                    str = error.localizedRecoverySuggestion;
+                text = attributedStringForSourceCode(str);
+            }
+            break;
+    }
+    
+    [_infoView setEditable: editable];
+    [_infoView setHorizontallyResizable: !wraps];
+    NSSize containerSize = _infoView.textContainer.containerSize;
+    Log(@"containerSize.width = %g", containerSize.width);
+    containerSize.width = wraps ?_infoView.enclosingScrollView.documentVisibleRect.size.width :FLT_MAX;
+    Log(@"\t\tnow %g", containerSize.width);
+    [[_infoView textContainer] setContainerSize: containerSize];
+    [[_infoView textContainer] setWidthTracksTextView: wraps];
+    
+    if (text) {
         [_infoView.textStorage setAttributedString: text];
-    else
+    } else {
         [_infoView setString: @""];
-    [_infoView setEditable: revision.isUncommitted];
-    _infoView.drawsBackground = revision.isUncommitted;
-    [_infoView didChangeText];
+    }
     [_infoView setNeedsDisplay: YES];
 }
 
     }
 }
 
+- (void) infoViewFocusChanged: (NSNotification*)n {
+    HgRevision *revision = self.selectedRevision;
+    if (revision.isUncommitted && !revision.richFormattedDescription) {
+        NSString *text = @"";
+        if (_infoView != _infoView.window.firstResponder)
+            text = @"(Describe your changes here)";
+        [_infoView setString: text];
+    }
+}
+
+
 
 #pragma mark -
 #pragma mark SELECTION:
 - (void) _fileSelectionChanged: (NSTreeController*)controller change: (NSDictionary*)change
 {
     //Log(@"File Selection = %@",self.selectedFile);
-    //[_revisionTable setNeedsDisplay: YES];
+    [self _updateInfoChooser];
+    if (_infoChooser.selectedSegment != kInfoLogSegment)
+        [self _updateInfoView];
 }
 
 - (void) _revisionSelectionChanged: (NSTreeController*)controller change: (NSDictionary*)change
 {
     Log(@"Revision Selection = %@",self.selectedRevision);
+    [self _updateInfoChooser];
     [self _updateInfoView];
     [self _updateWindowTitle];
 }