One of the nice things about SharePoint is the ‘Append Changes to Existing Text’ feature. In this, every time you make (let’s say) a new comment (I’ll use the Comments field for this demonstration), it just adds it as a new entry in the Comments, so you don’t take the chance of losing some of the old comments. You do this by checking the checkbox for that particular field which says ‘Append Changes to Existing Text’, with versioning turned on.

Well, the problem comes in when you create new custom forms for your list (Display/Edit/New). If you don’t want all the fields showing in your forms, you must create a new forms, and then remove the rows you don’t need to have showing. And here’s where it really comes in. If you have ‘Append Changes to Existing Text’ turned on, these new forms do not perform correctly and do not show the past entries.

Lucky for us, it’s a fairly easy fix, but it’s just not too intuitive.

In your Display form, you must remove the xsl tag which is used for your field:

<xsl:value-of select="@Comments" disable-output-escaping="yes"/>

and replace it with this:

<SharePoint:AppendOnlyHistory runat="server" FieldName="Comments" 
       ControlMode="Display"/>

In the Edit form, below the SharePoint tag for Comments, put the tag above that you used to replace the xsl (in the Edit form, there is no XSL for the tags):

<SharePoint:AppendOnlyHistory runat="server" FieldName="Comments" 
       ControlMode="Display"/>

Remember that ‘Comments’ should be replaced with the name of your actual field in the above code.

That’s all there is to it. Now, your Display and Edit forms will show all previous comments.