When one webmaster makes changes in a menu item through the Channel Editor as described in Enable 'edit menu' button that opens the menu editor, the entire menu gets locked. Other webmasters cannot edit that specific menu until the first webmaster publishes or discards their changes.
Note that through the Channel Editor only the menus inside the hst:workspace can be edited. The non-workspace menus can be edited through the HST Configuration Editor as well, see HST Configuration Editor locking. In the latter case the locking is not on menu level but on menus level: in other words, all menus get locked at the same time.
When a webmaster publishes changes made to the menu through the Channel Editor, the entire live menu gets replaced. For example, assume the following configuration:
+ hst:hst + hst:configurations + example | + hst:workspace | + hst:sitemenus [hst:sitemenus] | + main [hst:sitemenu] | + home [hst:sitemenuitem] | + about [hst:sitemenuitem] | + footer [hst:sitemenu] | + address [hst:sitemenuitem] | + contact [hst:sitemenuitem] + example-preview + hst:workspace + hst:sitemenus [hst:sitemenus] + main [hst:sitemenu] - hst:lockedby = john + home [hst:sitemenuitem] + about [hst:sitemenuitem] + new [hst:sitemenuitem] + footer [hst:sitemenu] - hst:lockedby = jane + address [hst:sitemenuitem] + contact [hst:sitemenuitem] + route [hst:sitemenuitem]
Now when user john published, the entire example-preview/hst:workspace/hst:sitemenus/main node tree replaces the one at example/hst:workspace/hst:sitemenus/main, at the same time removing the hst:lockedby = john property. The changes made by user jane are still there after john publishes his changes. The main menu locks are freed, the footer menu stays locked.