Sitecore Courier aims to fill the gap between the development and production environments when building websites with Sitecore CMS. You can download it here: https://bit.ly/SitecoreCourier (now also includes Console Runner) or install it in a few seconds via Chocolatey - https://chocolatey.org/packages/sitecore-courier.
It lets you build Sitecore Update packages automatically, by analyzing serialized Sitecore items and packaging only changed items.
The module can be installed as a Sitecore package, or used in build system with simple .exe runner.
Suggested usage workflow
After you deploy the initial version of your website, you should:
- Serialize all items you want to move between the servers (usually, all custom items in Core and Master DB). Get the latest Serialization Guide here.
- Create a TAG from it in a version control system
- Keep doing changes in TRUNK, serialize changed items, commit them, etc.
- And packages will be generated automatically, by comparing serialization from TAG (source) to the TRUNK (target). Incremental package will contain only changed items.
Sitecore Courier can now be installed via Chocolatey: https://chocolatey.org/packages/sitecore-courier After it is installed, just put all your items and files into a single folder, and right-click on it to create a package
Sitecore.Courier.Runner.exe -s C:\Source -t C:\Target -o C:\Package.update
-s - Source folder
-t - Target folder
-o - Output package (will be created)
Additional information on the project is available in this blog post: Sitecore Courier - Effortless Packaging
Important
After you install the package add the following to the configSections section of web.config:
<section name="sitecorediff" type="Sitecore.Update.Configuration.ConfigReader, Sitecore.Update"/>
and the following to the <configuration> section (right above <sitecore database="SqlServer">)
<sitecorediff>
<commandfilters>
<filter id="changedFieldsFilter" mode="on" type="Sitecore.Update.Commands.Filters.ChangedFieldsFilter, Sitecore.Update">
<fields hint="list">
<field>__Created</field>
<field>{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}</field>
<field>__Revision</field>
<field>__Updated</field>
<field>__Updated by</field>
</fields>
</filter>
</commandfilters>
<dataproviders>
<dataprovider id="filesystemmain" type="Sitecore.Update.Data.Providers.FileSystemProvider, Sitecore.Update">
<param>$(id)</param>
</dataprovider>
<dataprovider id="snapshotprovider" type="Sitecore.Update.Data.Providers.SnapShotProvider, Sitecore.Update">
<param>$(id)</param>
</dataprovider>
</dataproviders>
<source type="Sitecore.Update.Data.DataManager, Sitecore.Update">
<param>source</param>
</source>
<target type="Sitecore.Update.Data.DataManager, Sitecore.Update">
<param>target</param>
</target>
</sitecorediff>