The continuous integration solution allows you to exclude specific types of objects if you do not wish to synchronize all supported types. You can also exclude individual objects of a type that is otherwise included.
All related configuration is defined within the repository.config file in the root of the CMS\App_Data\CIRepository folder (or another location set by the CMSCIRepositoryPath web.config key). Use the following process if you need to make any changes:
Edit the repository.config file.
Adjust the configuration according to your object filtering requirements. See the following sections for details:
Save the repository.config file.
Run complete serialization for all objects to bring your CIRepository folder into the required state:
Excluding objects in the repository.config file affects all processes related to continuous integration:
Important: To maintain consistency, always use the same repository.config settings across your entire development environment. Whenever you make any changes, use your source control system to synchronize the config file along with the other content of the CIRepository folder. When a developer loads a new version of repository.config from the source control, the new settings start applying after restoring objects into the database or a manual restart of the application.
Warning: Objects excluded in repository.config may still be deleted when restoring data from the file system because of dependencies. For example, even if you have setting keys excluded from continuous integration, the system still deletes setting keys that belong within a given setting category if you "restore" the deletion of the category.
By editing your application's repository.config file, you can configure the system to ignore certain object types within continuous integration:
Add <ObjectType> elements into one of the following sections of the config file:
Set the values of individual ObjectType elements to the names of object types that support continuous integration.
Tip: To find the ObjectType values, see Object types supported by continuous integration or check the names of the corresponding folders in the CIRepository folder.
The system uses the following rules to automatically exclude child and binding objects:
The <IncludedObjectTypes> whitelist only allows you to specify the main object types (i.e. not child types or bindings).
In the <ExcludedObjectTypes> blacklist, you can exclude both the main object types and specific binding or child object types.
By default, the <ExcludedObjectTypes> list contains the cms.settingskey object type. Settings may contain sensitive data – only remove the exclusion if you agree to make setting values available within the file system used by your application and any connected source control systems. You can remove the exclusion for settings in general, and add a <ExcludedCodeNames ObjectType="cms.settingskey"> element to exclude individual setting keys that you consider sensitive.
<?xml version="1.0" encoding="utf-8"?>
<RepositoryConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Continuous integration includes all supported objects except for email templates. -->
<IncludedObjectTypes>
</IncludedObjectTypes>
<ExcludedObjectTypes>
<ObjectType>cms.emailtemplate</ObjectType>
</ExcludedObjectTypes>
</RepositoryConfiguration><?xml version="1.0" encoding="utf-8"?>
<RepositoryConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Continuous integration only includes web parts and web part categories. Web part layouts are excluded. -->
<IncludedObjectTypes>
<ObjectType>cms.webpart</ObjectType>
<ObjectType>cms.webpartcategory</ObjectType>
</IncludedObjectTypes>
<ExcludedObjectTypes>
<ObjectType>cms.webpartlayout</ObjectType>
</ExcludedObjectTypes>
</RepositoryConfiguration>By editing your application's repository.config file, you can exclude individual objects from continuous integration. The system combines the filtering rules for individual objects with any existing rules for entire object types.
Add <ExcludedCodeNames> elements into the <ObjectFilters> section.
Specify the type of the objects that you wish to exclude for each <ExcludedCodeNames> element:
If you do not set the ObjectType attribute for the element, it applies to objects of ALL types.
To apply the filtering rule to a specific object type, set the element's ObjectType attribute to the given object type name.
Within the content of each <ExcludedCodeNames> element, list the code names of objects of the given type that you wish to exclude.
When you exclude an object, the system automatically excludes dependent objects according to the following rules:
Child objects – all child objects are excluded with their parent. For example, excluding a country object also excludes all states under the given country.
Binding objects – binding objects are automatically excluded if at least one of the related objects is excluded. For example, excluding a user automatically excludes all binding records that involve the given user, such as user-role relationships.
Site objects – excluding a site automatically excludes all site-specific objects belonging to the given site.
Category hierarchies – for objects that are organized within categories in a tree hierarchy in the administration interface, excluding a category also excludes all objects in the sub-tree. For example, excluding a web part category also excludes all web parts and sub-categories within the given category.
Notes
<?xml version="1.0" encoding="utf-8"?>
<RepositoryConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Continuous integration includes all supported object types -->
<IncludedObjectTypes>
</IncludedObjectTypes>
<ExcludedObjectTypes>
</ExcludedObjectTypes>
<ObjectFilters>
<!-- Excludes the "SMTP server password" and "Staging service password" setting keys -->
<ExcludedCodeNames ObjectType="cms.settingskey">CMSSMTPServerPassword;CMSStagingServicePassword</ExcludedCodeNames>
<!-- Excludes all web parts whose code name starts with the "test" prefix -->
<ExcludedCodeNames ObjectType="cms.webpart">test%</ExcludedCodeNames>
<!-- Excludes pages under the "/Testing" section of the content tree -->
<ExcludedCodeNames ObjectType="cms.document">/Testing/%</ExcludedCodeNames>
</ObjectFilters>
</RepositoryConfiguration><?xml version="1.0" encoding="utf-8"?>
<RepositoryConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Continuous integration includes all supported object types -->
<IncludedObjectTypes>
</IncludedObjectTypes>
<ExcludedObjectTypes>
</ExcludedObjectTypes>
<ObjectFilters>
<!-- Excludes all objects of any type whose code name starts with the "test" prefix, except for web parts -->
<ExcludedCodeNames>test%</ExcludedCodeNames>
<ExcludedCodeNames ObjectType="cms.webpart"></ExcludedCodeNames>
<!-- Excludes pages under the "/test" section of the content tree -->
<ExcludedCodeNames ObjectType="cms.document">/test/%</ExcludedCodeNames>
</ObjectFilters>
</RepositoryConfiguration>