1

I generated an update installation wizard package from TDS containing my content, core db, and architecture (templates, etc). Syncing back and forth locally, I don't have any issues with how anything looks. However, this evening I deployed the UIW package to a server, and when I looked at some of the items, it was duplicating the rendering calls in the shared and/or final layouts. It definitely did not match up to what I had in source control or in my local environment.

We're using multi-lingual with language fallback, but I don't know why that would be causing an issue. This is with Sitecore 8.1 Update 2 and TDS 5.0.15.

UPDATE

Let me clarify the issue, since the comments so far seem geared toward items with different IDs. The actual renderings aren't duplicating, but some of the entries in the Shared or Final Layouts for the page layout are duplicating.

For example, we have a carousel container and two carousel slides locally, checked into TDS. We generate the update install package. When it's run on the server, there are now two carousel containers and four carousel slides. It's not consistently happening with every rendering listed in the layout, but they're exact duplicates down to placeholder and datasource.

  • Hi Ken, i hope your items are in sync with other environment items in other words did you check the GUID of the item in your local instance with environment, i believe it should be different & thus creating duplicate entries. – Balaji Kuppuswamy Jan 11 '17 at 4:41
3

There is a strange thing that the Sitecore Update Installation Wizard does for Standard Values items when it installs them in a Sitecore Update Package.

For __Renderings and __Final Renderings fields, if you have reset the value (made it null) of one of those fields in your Standard Values item in the package...the Installation Wizard still won't make your instance reflect this.

Even with the field reset (so the raw value doesn't exist...i.e is null)...the Update Installation Wizard treats the Standard Values in a special way, and won't actually make your target Sitecore instance reflect that change. (Even with settings like TDS's 'AlwaysUpdate'). Instead, the installer checks if the Sitecore value is not null, and then it keeps THAT value....not the null value that your package contains.

This is a frustrating feature of Sitecore's Installation Wizard, that I can only imagine is an attempt to prevent overwriting of content.

Update: TDS Classic v5.7 comes with a fix for this. Essentially it runs it's own 'PostDeployStep' to force the proper value (null) into the field on the Standard Values item. If you're on earlier versions, you could just write your own to do the same thing. http://www.teamdevelopmentforsitecore.com/en/blog/creating-tds-custom-post-deploy-step

2

I suspect that you have a field that holds certain XML twice (i.e the definition of a carousel slide actually exists in two fields on the server). And maybe one of the four fields that it calculates the entire layout from is difference between your local environment and the server environment.

Renderings are calculated via deltas, and it's a combination of deltas from:-

  • the Template Standard Values -> __Renderings field
  • the Template Standard Values -> __Final Renderings field
  • the Content Item -> __Renderings field
  • the Content Items -> __Final Renderings field

Can you check the Raw values of each of these? Put the XML into a text editor, and search for a data source item's id, of a rendering that you know is duplicated. You can then find where the XML exists in each of the fields.

  • I'll take a look at that. What I'd ask as a follow-up, then, is why does syncing with TDS back-and-forth in my local environment not give me the same result? It's only when the update install package is created that we saw it, locally it's fine and doing a sync to confirm shows the sides match. It's the discrepency between what I see locally and syncing to TDS, and what the update presents, that's got me scratching my head. – Ken McAndrew Jan 13 '17 at 13:23
  • I'd be surprised if TDS is doing it. TDS should just push items/fields as it is in the serialized item. Ensure that all items that affect this case are in TDS (content item, template + standard values, any base templates + their standard values), then, ensure that the templates and standard values are 'AlwaysUpdate'....and that the content item's renderings are definitely pushed (either the item is AlwaysUpdate, or the __Renderings and __Final Renderings fields are set to have Field Level Deployment on them (which would just push that field directly, but not the rest of the content item)) – Sean Holmesby Jan 13 '17 at 20:07
0

The main reason why you will have duplicate renderings is that the Item ID is different. The ID from your local instance is different from the one on the Server.

Compare the IDs of the renderings and delete the appropriate one so that during next deployment, there is no duplication again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.