Changeset 2630987
- Timestamp:
- 11/16/2021 07:31:29 PM (4 years ago)
- Location:
- shoppable-recipes
- Files:
-
- 16 edited
- 1 copied
-
tags/1.1.3 (copied) (copied from shoppable-recipes/trunk)
-
tags/1.1.3/includes/class-settings.php (modified) (1 diff)
-
tags/1.1.3/includes/class-widget.php (modified) (4 diffs)
-
tags/1.1.3/readme.txt (modified) (5 diffs)
-
tags/1.1.3/shoppable-recipes.php (modified) (2 diffs)
-
tags/1.1.3/vendor/autoload.php (modified) (1 diff)
-
tags/1.1.3/vendor/composer/autoload_real.php (modified) (3 diffs)
-
tags/1.1.3/vendor/composer/autoload_static.php (modified) (2 diffs)
-
tags/1.1.3/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/includes/class-settings.php (modified) (1 diff)
-
trunk/includes/class-widget.php (modified) (4 diffs)
-
trunk/readme.txt (modified) (5 diffs)
-
trunk/shoppable-recipes.php (modified) (2 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (3 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
shoppable-recipes/tags/1.1.3/includes/class-settings.php
r2630737 r2630987 115 115 $this->wposa_obj->add_section( 116 116 [ 117 'id' => 'advanced', 118 'title' => __('Advanced', 'shoppable-recipes'), 119 ] 120 ); 121 122 $this->wposa_obj->add_field( 123 'advanced', 124 [ 125 'id' => 'toggle-custom-widget', 126 'type' => 'checkbox', 127 'name' => __('Custom Widget', 'shoppable-recipes'), 128 'desc' => __('Enable', 'shoppable-recipes'), 129 ] 130 ); 131 132 $this->wposa_obj->add_field( 133 'advanced', 134 [ 135 'id' => 'custom-widget', 136 'type' => 'textarea', 137 'name' => __('Custom Widget Code', 'shoppable-recipes'), 138 'desc' => __('Can be used to customize widget further, if needed. Overrides all other widget settings!', 'shoppable-recipes'), 139 ] 140 ); 141 142 $this->wposa_obj->add_section( 143 [ 117 144 'id' => 'support', 118 145 'title' => __('Support', 'shoppable-recipes'), -
shoppable-recipes/tags/1.1.3/includes/class-widget.php
r2630085 r2630987 57 57 $hide_add_to_cart = $this->wposa_obj->get_option('hide-cart', 'save-recipe'); 58 58 59 $custom_widget = $this->wposa_obj->get_option('custom-widget', 'advanced'); 60 $custom_widget_toggle = $this->wposa_obj->get_option('toggle-custom-widget', 'advanced'); 61 59 62 $options = [ 60 63 'format' => $format, … … 64 67 'hide_add_to_cart' => $hide_add_to_cart 65 68 ]; 69 66 70 67 71 ob_start(); ?> … … 73 77 whisk.queue.push(function () { 74 78 whisk.shoppingList.defineWidget("whisk-widget", { 79 80 <?php if ($custom_widget && $custom_widget_toggle === 'on') : echo $custom_widget; else : ?> 81 82 recipeUrl: 'http://demo.whisk.com/recipes/main-course/pizza-alla-napoletana/', 75 83 trackingId: "<?php if ($options['tracking_id']) { 76 84 echo $options['tracking_id']; … … 90 98 } 91 99 } 100 101 <?php endif; ?> 92 102 }); 93 103 }); -
shoppable-recipes/tags/1.1.3/readme.txt
r2630737 r2630987 5 5 Tested up to: 5.6 6 6 Requires PHP: 5.6.20 7 Stable tag: 1.1. 27 Stable tag: 1.1.3 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 13 13 == Description == 14 14 Let your visitors [Save your recipes](https://whisk.com/recipe-box-app/) to their Whisk accounts or create instant [Shopping Lists](https://whisk.com/grocery-list-app/) and go shopping for ingredients in seconds. 15 It is compatible with all popular recipe plugins which support Schema.org or JSON-ld. Plugin is very light and has zero impact on SEO, doesn't affect PageSpeed at all.15 It is compatible with all popular recipe plugins which support Schema.org or JSON-ld. Plugin is very light and has zero impact on Google PageSpeed metrics. 16 16 17 17 == Demo == … … 19 19 20 20 = How to use = 21 Activate the plugin and use <code>[whisk-widget]</code> shortcode to add Whisk Widgets anywhere. 22 You can also use this snippet to add widget to your theme's or plugin's template: 23 <code><?php echo do_shortcode( "[whisk-widget]" ); ?></code> 21 Activate the plugin and use this shortcode to display Whisk Widgets: `[whisk-widget]`. 22 Alternatively, you can add this PHP snippet to your theme's or plugin's template: ``` <?php echo do_shortcode( "[whisk-widget]" ) ?>` 24 23 24 = Plugin options = 25 25 There are some options, that helps you change: 26 26 … … 38 38 <strong>Compact widget</strong> is simply a button that saves your recipe to Whisk, where you can check it's nutrition, share with friends, 39 39 post reviews, pictures and comments and do so much more, including adding all the recipes ingredients to a shopping list. 40 <strong>Large widget</strong> has 2 buttons: one for Saving Recipes. The other one is Add to Cart button that allows your visitors buy all the 41 necessary ingredients from a nearest grocer with a single click. It is a very convenient feature, though mostly useful in US or UK. 40 41 <strong>Large widget</strong> has 2 buttons: one for Saving Recipes. The other one is Add to Cart button that allows your visitors to buy all the 42 necessary ingredients from the nearest grocer with a single click. It is a very convenient feature, though mostly useful in US/UK. 42 43 Widget can auto-detect visitor's country and hide this button if there are no supported retailers in visitor's country. 43 44 You can also disable this button in plugin's settings. 44 45 46 = Where can I find full list of integrated retailers for Shopping List functionality? = 47 Check out official Whisk website [here](https://whisk.com/partners/?filter=retailers). They have Walmart and Tesco! 48 45 49 = How does it work? = 46 50 Built on top of [Whisk Widget Builder](https://developers.whisk.com/tools/widget-builder), this plugin utilizes Whisk SDK to scan for proper recipe microdata and send it to Whisk Platform in just one click. 47 48 = Is it free? =49 Yes, the plugin, Whisk widgets and Whisk Apps are totally free.50 51 51 52 = Does it load a lot of 3rd-party scripts? = … … 53 54 This way there is no impact on Google PageSpeed metrics and SEO. 54 55 56 = Is it free? = 57 Yes, the plugin, Whisk widgets and [Whisk Apps](https://whisk.com/download/) are totally free. 58 59 == Screenshots == 60 61 1. Save Recipe button (compact widget) 62 2. Save Recipe & Add to Cart button (large widget) 63 3. Saved Recipes in Whisk App 64 4. Plugin settings 65 5. Shopping list widget 66 6. Publisher integration example 67 55 68 == Changelog == 69 = v 1.1.3 (16.11.2021) = 70 * new feature: ability to use completely custom widget code. Might be useful for some publishers with specific needs. 56 71 = v 1.1.2 (16.11.2021) = 57 72 * a better readme :) -
shoppable-recipes/tags/1.1.3/shoppable-recipes.php
r2630737 r2630987 10 10 * Requires at least: 5.0 11 11 * Tested up to: 5.6 12 * Version: 1.1. 213 * Stable tag: 1.1. 212 * Version: 1.1.3 13 * Stable tag: 1.1.3 14 14 * 15 15 * Text Domain: shoppable-recipes … … 27 27 } 28 28 29 define( 'SHOPPABLE_RECIPES_VERSION', '1.1. 2' );29 define( 'SHOPPABLE_RECIPES_VERSION', '1.1.3' ); 30 30 define( 'SHOPPABLE_RECIPES_PATH', __DIR__ ); 31 31 define( 'SHOPPABLE_RECIPES_URL', plugin_dir_url( __FILE__ ) ); -
shoppable-recipes/tags/1.1.3/vendor/autoload.php
r2630737 r2630987 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26::getLoader();7 return ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365::getLoader(); -
shoppable-recipes/tags/1.1.3/vendor/composer/autoload_real.php
r2630737 r2630987 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e265 class ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInitb10d4ebfacc9f27733334556f3227365::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; -
shoppable-recipes/tags/1.1.3/vendor/composer/autoload_static.php
r2630737 r2630987 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e267 class ComposerStaticInitb10d4ebfacc9f27733334556f3227365 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 32 32 { 33 33 return \Closure::bind(function () use ($loader) { 34 $loader->prefixLengthsPsr4 = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$prefixLengthsPsr4;35 $loader->prefixDirsPsr4 = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$prefixDirsPsr4;36 $loader->classMap = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$classMap;34 $loader->prefixLengthsPsr4 = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$prefixLengthsPsr4; 35 $loader->prefixDirsPsr4 = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$prefixDirsPsr4; 36 $loader->classMap = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$classMap; 37 37 38 38 }, null, ClassLoader::class); -
shoppable-recipes/tags/1.1.3/vendor/composer/installed.php
r2630737 r2630987 1 1 <?php return array( 2 2 'root' => array( 3 'pretty_version' => '1.1. 2',4 'version' => '1.1. 2.0',3 'pretty_version' => '1.1.3', 4 'version' => '1.1.3.0', 5 5 'type' => 'wordpress-plugin', 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 7bba16766efd920b30865fa846c0e2e43e8f156a',8 'reference' => 'cdf1c8ae01b995fbf354d008e5db769ed0ef0d14', 9 9 'name' => 'paul-fedorov/shoppable-recipes', 10 10 'dev' => false, … … 21 21 ), 22 22 'paul-fedorov/shoppable-recipes' => array( 23 'pretty_version' => '1.1. 2',24 'version' => '1.1. 2.0',23 'pretty_version' => '1.1.3', 24 'version' => '1.1.3.0', 25 25 'type' => 'wordpress-plugin', 26 26 'install_path' => __DIR__ . '/../../', 27 27 'aliases' => array(), 28 'reference' => ' 7bba16766efd920b30865fa846c0e2e43e8f156a',28 'reference' => 'cdf1c8ae01b995fbf354d008e5db769ed0ef0d14', 29 29 'dev_requirement' => false, 30 30 ), -
shoppable-recipes/trunk/includes/class-settings.php
r2630737 r2630987 115 115 $this->wposa_obj->add_section( 116 116 [ 117 'id' => 'advanced', 118 'title' => __('Advanced', 'shoppable-recipes'), 119 ] 120 ); 121 122 $this->wposa_obj->add_field( 123 'advanced', 124 [ 125 'id' => 'toggle-custom-widget', 126 'type' => 'checkbox', 127 'name' => __('Custom Widget', 'shoppable-recipes'), 128 'desc' => __('Enable', 'shoppable-recipes'), 129 ] 130 ); 131 132 $this->wposa_obj->add_field( 133 'advanced', 134 [ 135 'id' => 'custom-widget', 136 'type' => 'textarea', 137 'name' => __('Custom Widget Code', 'shoppable-recipes'), 138 'desc' => __('Can be used to customize widget further, if needed. Overrides all other widget settings!', 'shoppable-recipes'), 139 ] 140 ); 141 142 $this->wposa_obj->add_section( 143 [ 117 144 'id' => 'support', 118 145 'title' => __('Support', 'shoppable-recipes'), -
shoppable-recipes/trunk/includes/class-widget.php
r2630085 r2630987 57 57 $hide_add_to_cart = $this->wposa_obj->get_option('hide-cart', 'save-recipe'); 58 58 59 $custom_widget = $this->wposa_obj->get_option('custom-widget', 'advanced'); 60 $custom_widget_toggle = $this->wposa_obj->get_option('toggle-custom-widget', 'advanced'); 61 59 62 $options = [ 60 63 'format' => $format, … … 64 67 'hide_add_to_cart' => $hide_add_to_cart 65 68 ]; 69 66 70 67 71 ob_start(); ?> … … 73 77 whisk.queue.push(function () { 74 78 whisk.shoppingList.defineWidget("whisk-widget", { 79 80 <?php if ($custom_widget && $custom_widget_toggle === 'on') : echo $custom_widget; else : ?> 81 82 recipeUrl: 'http://demo.whisk.com/recipes/main-course/pizza-alla-napoletana/', 75 83 trackingId: "<?php if ($options['tracking_id']) { 76 84 echo $options['tracking_id']; … … 90 98 } 91 99 } 100 101 <?php endif; ?> 92 102 }); 93 103 }); -
shoppable-recipes/trunk/readme.txt
r2630737 r2630987 5 5 Tested up to: 5.6 6 6 Requires PHP: 5.6.20 7 Stable tag: 1.1. 27 Stable tag: 1.1.3 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 13 13 == Description == 14 14 Let your visitors [Save your recipes](https://whisk.com/recipe-box-app/) to their Whisk accounts or create instant [Shopping Lists](https://whisk.com/grocery-list-app/) and go shopping for ingredients in seconds. 15 It is compatible with all popular recipe plugins which support Schema.org or JSON-ld. Plugin is very light and has zero impact on SEO, doesn't affect PageSpeed at all.15 It is compatible with all popular recipe plugins which support Schema.org or JSON-ld. Plugin is very light and has zero impact on Google PageSpeed metrics. 16 16 17 17 == Demo == … … 19 19 20 20 = How to use = 21 Activate the plugin and use <code>[whisk-widget]</code> shortcode to add Whisk Widgets anywhere. 22 You can also use this snippet to add widget to your theme's or plugin's template: 23 <code><?php echo do_shortcode( "[whisk-widget]" ); ?></code> 21 Activate the plugin and use this shortcode to display Whisk Widgets: `[whisk-widget]`. 22 Alternatively, you can add this PHP snippet to your theme's or plugin's template: ``` <?php echo do_shortcode( "[whisk-widget]" ) ?>` 24 23 24 = Plugin options = 25 25 There are some options, that helps you change: 26 26 … … 38 38 <strong>Compact widget</strong> is simply a button that saves your recipe to Whisk, where you can check it's nutrition, share with friends, 39 39 post reviews, pictures and comments and do so much more, including adding all the recipes ingredients to a shopping list. 40 <strong>Large widget</strong> has 2 buttons: one for Saving Recipes. The other one is Add to Cart button that allows your visitors buy all the 41 necessary ingredients from a nearest grocer with a single click. It is a very convenient feature, though mostly useful in US or UK. 40 41 <strong>Large widget</strong> has 2 buttons: one for Saving Recipes. The other one is Add to Cart button that allows your visitors to buy all the 42 necessary ingredients from the nearest grocer with a single click. It is a very convenient feature, though mostly useful in US/UK. 42 43 Widget can auto-detect visitor's country and hide this button if there are no supported retailers in visitor's country. 43 44 You can also disable this button in plugin's settings. 44 45 46 = Where can I find full list of integrated retailers for Shopping List functionality? = 47 Check out official Whisk website [here](https://whisk.com/partners/?filter=retailers). They have Walmart and Tesco! 48 45 49 = How does it work? = 46 50 Built on top of [Whisk Widget Builder](https://developers.whisk.com/tools/widget-builder), this plugin utilizes Whisk SDK to scan for proper recipe microdata and send it to Whisk Platform in just one click. 47 48 = Is it free? =49 Yes, the plugin, Whisk widgets and Whisk Apps are totally free.50 51 51 52 = Does it load a lot of 3rd-party scripts? = … … 53 54 This way there is no impact on Google PageSpeed metrics and SEO. 54 55 56 = Is it free? = 57 Yes, the plugin, Whisk widgets and [Whisk Apps](https://whisk.com/download/) are totally free. 58 59 == Screenshots == 60 61 1. Save Recipe button (compact widget) 62 2. Save Recipe & Add to Cart button (large widget) 63 3. Saved Recipes in Whisk App 64 4. Plugin settings 65 5. Shopping list widget 66 6. Publisher integration example 67 55 68 == Changelog == 69 = v 1.1.3 (16.11.2021) = 70 * new feature: ability to use completely custom widget code. Might be useful for some publishers with specific needs. 56 71 = v 1.1.2 (16.11.2021) = 57 72 * a better readme :) -
shoppable-recipes/trunk/shoppable-recipes.php
r2630737 r2630987 10 10 * Requires at least: 5.0 11 11 * Tested up to: 5.6 12 * Version: 1.1. 213 * Stable tag: 1.1. 212 * Version: 1.1.3 13 * Stable tag: 1.1.3 14 14 * 15 15 * Text Domain: shoppable-recipes … … 27 27 } 28 28 29 define( 'SHOPPABLE_RECIPES_VERSION', '1.1. 2' );29 define( 'SHOPPABLE_RECIPES_VERSION', '1.1.3' ); 30 30 define( 'SHOPPABLE_RECIPES_PATH', __DIR__ ); 31 31 define( 'SHOPPABLE_RECIPES_URL', plugin_dir_url( __FILE__ ) ); -
shoppable-recipes/trunk/vendor/autoload.php
r2630737 r2630987 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26::getLoader();7 return ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365::getLoader(); -
shoppable-recipes/trunk/vendor/composer/autoload_real.php
r2630737 r2630987 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e265 class ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 7eebeec3b916e932c2452fc0e2952e26', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitb10d4ebfacc9f27733334556f3227365', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInitb10d4ebfacc9f27733334556f3227365::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; -
shoppable-recipes/trunk/vendor/composer/autoload_static.php
r2630737 r2630987 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e267 class ComposerStaticInitb10d4ebfacc9f27733334556f3227365 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 32 32 { 33 33 return \Closure::bind(function () use ($loader) { 34 $loader->prefixLengthsPsr4 = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$prefixLengthsPsr4;35 $loader->prefixDirsPsr4 = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$prefixDirsPsr4;36 $loader->classMap = ComposerStaticInit 7eebeec3b916e932c2452fc0e2952e26::$classMap;34 $loader->prefixLengthsPsr4 = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$prefixLengthsPsr4; 35 $loader->prefixDirsPsr4 = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$prefixDirsPsr4; 36 $loader->classMap = ComposerStaticInitb10d4ebfacc9f27733334556f3227365::$classMap; 37 37 38 38 }, null, ClassLoader::class); -
shoppable-recipes/trunk/vendor/composer/installed.php
r2630737 r2630987 1 1 <?php return array( 2 2 'root' => array( 3 'pretty_version' => '1.1. 2',4 'version' => '1.1. 2.0',3 'pretty_version' => '1.1.3', 4 'version' => '1.1.3.0', 5 5 'type' => 'wordpress-plugin', 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 7bba16766efd920b30865fa846c0e2e43e8f156a',8 'reference' => 'cdf1c8ae01b995fbf354d008e5db769ed0ef0d14', 9 9 'name' => 'paul-fedorov/shoppable-recipes', 10 10 'dev' => false, … … 21 21 ), 22 22 'paul-fedorov/shoppable-recipes' => array( 23 'pretty_version' => '1.1. 2',24 'version' => '1.1. 2.0',23 'pretty_version' => '1.1.3', 24 'version' => '1.1.3.0', 25 25 'type' => 'wordpress-plugin', 26 26 'install_path' => __DIR__ . '/../../', 27 27 'aliases' => array(), 28 'reference' => ' 7bba16766efd920b30865fa846c0e2e43e8f156a',28 'reference' => 'cdf1c8ae01b995fbf354d008e5db769ed0ef0d14', 29 29 'dev_requirement' => false, 30 30 ),
Note: See TracChangeset
for help on using the changeset viewer.