Jump to content

Merge Problems - AssertNull found a Null object


Recommended Posts


I was trying to merge a branch back into my main line and now I get an AssertNull has found a Null Object when I start Plastic.

This same error occurs when I try to refresh the pending changes and no pending changes are shown.

Part of this merge involved moving directories, deleting directories and readonly xlinking to another common repository.

The branch explorer shows a green dotted merge line(i.e. pending merge), but if I can't get my pending changes displayed to checkin then what can I do ?

I've found the changest in the changesets list and try to merge from changeset, but it gives the same AssertNull message.

Anyone know what to do here ?



Link to comment
Share on other sites

Quite ugly situation, yes...

I'd suggest to delete all pending changes in the workspace and retry again, if possible. Another option that comes to my mind would be to retry the operation in a clean workspace.

Approximately, how many files and directories are involved in the merge?

Does the null appear during the find merge operation or during the process merge operation? (I mean: can you see the merge view with the involved items?)

If the problem arises during the process merge operation (a screenshot of the situation would be nice to understand what's happening there), you can resolve the merge by groups, selecting several items and right clicking on merge selected items (this is new in Plastic 4.1). This way we could identify the item that is causing the problem.

I'm a bit suspicious about the readonly xlink, but let's try this and see what happens.



Link to comment
Share on other sites

Hi Luis,

Thanks for your suggestions.

I'm still new to Plastic and was a bit wary to do some things.

I deleted my client workspace and created a new one.

I could not undo any pending changes because it was from this tab page where the AssertNull message was being produced(Message was displayed when trying to refresh on this tab page) and resulted in no pending changes displayed.

The problem that I suspected was that the merge involved a replace of a directory with an xlink. My thoughts were that the merges were not happening in the correct order.

So I broke up the merges into 3 parts of work where each was performed, verified correct and then merged into the main line.

1. Moving some directories.

2. Delete a directory.

3. Readonly xlink the deleted directory to the new common repository.

This has resulted in everything working correctly and the end result of an xlinked common repository in the project main line.



Link to comment
Share on other sites

Hi Chun,

good to hear that the merge is finally done. We would like to understand the scenario in order to fix the bug.

Can you try to reproduce the error? or can you give us detailed information about the changes inside the changesets involved in the merge operation?


Link to comment
Share on other sites

Hi Manu,

I have reproduced this error. Trying to merge other branches involving the scenario above with the readonly xlink into other branches.

This is my suspicion - not proven.

In the plastic project workspace, there is a directory containing code which we want to move out into its own repository and then readonly xlink that same directory back into the plastic project workspace.

1. On a child branch, move some sub-directories specific to the project workspace into another new directory.

2. Extract what is left in the directory and setup its own repository(will be the common repository).

3. Delete the directory in point 2.

4. Now create the readonly xlink with the directory name being the same as the one deleted in point 3. Perform the Update to the Items in the workspace to see the xlink pull source from the common repository.

5. Test everything and now merge all the changes in the branch back into the main line. - This is where the merge I believe get's confused because all of this takes place in the child branch. The merge shows no conflicts, but does show a message of including the dependencies of the directory which you can either continue or cancel the merge, so I continue.

This is my understanding :-

Part of the the directory is split out and moved to the project and then the other part(common) deleted and put back via a readonly xlink - I suspect that the order of the execution of the merges is causing a problem. I state this because of what I did to make the merge succeed.

In subsequenct merges of the branch to other branches, I have executed merges of the changesets in the order of the solution in the above post and it has succeeded in its merges with no problems. However if I just try to merge the branch, it produces the problem.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...