| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html lang="en"> |
| <head> |
| <meta name="copyright" content= |
| "Copyright (c) IBM Corporation and others 2000, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"> |
| <title>CVS Workspace Synchronization</title> |
| </head> |
| <body> |
| <h1>CVS Workspace Synchronization</h1> |
| <p>A CVS workspace synchronization launched using the <em class="UILabel">Team > Synchronize</em> menu command or |
| the <em class="UILabel">Synchronize</em> toolbar command in the Team Perspective will appear in the Synchronize view. |
| This view allows you to inspect the differences between the local Workbench resources and their remote counterparts |
| as well as update resources in the Workbench and commit resources from the Workbench to a repository.</p> |
| <p>Here is what the CVS Workspace Synchronization in the Synchronize view looks like:</p> |
| <p><img align="top" border="0" src="../images/Image245_sync_view.png" alt="CVS Workspace Synchronization"></p> |
| <h2>Features</h2> |
| <p>The following is a brief summary of some of the features of the synchronize view.</p> |
| <h3>Synchronization state</h3> |
| <p>The synchronize view shows the synchronization state of resources in your workspace compared to those in the |
| repository. This state is shown by using icons and can also be configured to show the state as text appended to the |
| resource name. A description of the icons is shown in the table below:</p> |
| <table width="100%" border="1"> |
| <tr> |
| <td width="9%" align="center"><img src="../images/r_inadd_ov.svg" alt="Incoming addition icon"></td> |
| <td width="91%">An incoming addition means that a resource has been added to the repository. |
| <strong>Updating</strong> will transfer the resource to your workspace.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/r_inchg_ov.svg" alt="Incoming change icon"></td> |
| <td>An incoming change means that the file has changed in the repository. <strong>Updating</strong> will transfer |
| the new file revision to your workspace.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/r_indel_ov.svg" alt="Incoming deletion icon"></td> |
| <td>An incoming deletion means that a resource was deleted from the server. <strong>Updating</strong> will delete |
| your local resource.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/r_outadd_ov.svg" alt="Outgoing addition icon"></td> |
| <td>An outgoing addition means that the file was added to your workspace and is not yet in the repository. |
| <strong>Adding</strong> then <strong>Committing</strong> will transfer the new file to the repository.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/r_outchg_ov.svg" alt="Outgoing change icon"></td> |
| <td>An outgoing change means that the file was change locally. <strong>Committing</strong> the file will transfer |
| the changes to the repository and create a new revision of the file.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/r_outdel_ov.svg" alt="Outgoing deletion icon"></td> |
| <td>An outgoing deletion is a resource that has been deleted locally. <strong>Committing</strong> these resources |
| will cause the remote resource to be deleted. <strong>Note</strong>: in CVS directories are never really deleted |
| from the repository. Instead, files are deleted and empty directories are pruned from your workspace.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/confadd_ov.svg" alt="Conflicting addition icon"></td> |
| <td>A conflicting additions means that the resource has been added locally and remotely.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/confchg_ov.svg" alt="Conflicting change icon"></td> |
| <td>A conflicting change means that the file has been changed locally and remotely. A manual or automatic merge |
| will be required. Also, any entries in the view that contain children that are conflicts will also be decorated |
| with the conflict icon. This is done to make conflicts easy to find.</td> |
| </tr> |
| <tr> |
| <td align="center"><img src="../images/confdel_ov.svg" alt="Conflicting deletion icon"></td> |
| <td>A conflicting deletion means that the resource was deleted locally and remotely.</td> |
| </tr> |
| </table> |
| <h3>Mode</h3> |
| <p>The Synchronize view can be filtered using modes using either the toolbar actions or the menu items in the view's |
| drop down menu. Modes can be used to show only incoming, outgoing or conflicting changes. The advantages to modes |
| are:</p> |
| <ul> |
| <li>They support and encourage the <a href="../concepts/concepts-26.htm#IdealWorkFlow">ideal work flow.</a></li> |
| <li>They reduce the amount of information you are faced with at any one time.</li> |
| <li>They provide a degree of safety restricting you to those operations appropriate to that mode. For example, you |
| can't accidentally commit a conflict when in incoming mode.</li> |
| </ul> |
| <p><b>Important</b>: It is preferable to update resources in the Workbench first, resolve any conflicts that exist by |
| merging, then commit Workbench resources to the repository.</p> |
| <h3>Models</h3> |
| <p>The Synchronize view is capable of displaying different model representations of the resources. Each product may |
| contain its own product specific representations. The Eclipse SDK comes with three models:</p> |
| <ul> |
| <li> |
| <b>Workspace Model</b>: displays a resource based model. Layout options for this model can be controlled from the |
| Preferences dialog in the drop down menu. The layout options for the Workspace model are:<br> |
| <ul> |
| <li>Flat layout shows all the out-of-sync resources as direct children of their project.</li> |
| <li>Tree layout shows the resource hierarchy as it is shown in the Project Explorer.</li> |
| <li>Compress Folders shows changes grouped by project and then by folder. This results in a hierarchy that is |
| at most three levels deep with folder paths being compressed into a single level (similar to a Java |
| package).</li> |
| </ul> |
| </li> |
| <li><b>Java Model</b>: displays a Java based model (similar to what appears in the Package Explorer).</li> |
| <li><b>Change Sets</b>: displays a Change Set based model. This model shows incoming changes grouped by commit |
| comment which is handy for seeing who released what and why. For outgoing changes, you can create Change Sets for |
| grouping related changes together. Grouping is performed using various commands in the context menu.</li> |
| </ul> |
| <p>In addition to to the models, there is also a <b>Flat Presentation</b> which displays all the out-of-sync elements |
| as top level elements.</p> |
| <h3>Navigation</h3>The Synchronize view provides toolbar actions for navigating through the changes in the view. |
| These actions not only navigate between files but also go from change to change within a file. |
| <h3>Update and Commit Operations</h3> |
| <p>There are several flavours of update and commit operations available in the Synchronize view. You can perform the |
| standard update and commit operation on all visible applicable changes or a selected subset. You can also choose to |
| override and update, thus ignoring any local changes, or override and commit, thus making the remote resource match |
| the contents of the local resource. You can also choose to clean the timestamps for files that have been modified |
| locally (perhaps by an external build tool) but whose contents match that of the server.</p> |
| <h3>Conflict Handling</h3> |
| <p>When dealing with conflicts, you can first perform an update and any conflicting changes The update operation will |
| correctly update conflicts that are auto-mergeable (i.e. files content changes do not overlap) but will skip files |
| that contain changes that overlap. Alternatively, conflicts can be handled using a Compare editor. A Compare editor |
| can be opened by double-clicking (or single-clicking if you have change your open strategy in the preferences) on the |
| conflict or by choosing <b>Open in Compare Editor</b> from the context menu. The Compare editor allows you to |
| manually resolve the conflicts in the file. Once completed, perform a <b>Mark as Merged</b> on the conflict to |
| indicate that you are done. This will change the conflict into an outgoing change.</p> |
| <h3>Problem Markers</h3> |
| <p>The Synchronize view will show <i>error</i> or <i>warning</i> problem markers on any change that appears in the |
| view or any folder or project that appears in the view that contains a resource that has such a problem marker. This |
| is done to prevent resources with problems from getting committed to the repository.</p> |
| <h2>Toolbar</h2> |
| <div class="Topic"> |
| <h3>Synchronize</h3> |
| <p class="Para">This command allows you to repeat the current synchronization which refetches the remote state of |
| the resources. The drop down of the toolbar item allows you to select other existing synchronizations or create new |
| ones using the <b>Synchronize...</b> menu command.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Pin Current Synchronization</h3> |
| <p>This command allows you to pin or unpin the current synchronization. Pinned synchronizations will not be |
| replaced by the next synchronization of the same type while unpinned synchronizations will be replaced. This allows |
| you to keep a synchronization around for easy access. Such a synchronization will automatically update when changes |
| to Workbench resources take place and can be configured to perform scheduled refreshes in order to keep up-to-date |
| with the remote state of the resources.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Models drop down</h3> |
| <p>This drop down list presents the models that can be displayed in the Sync View.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Next Difference</h3> |
| <p>This command will go to the next difference displayed by the view. All the differences within a single file will |
| be visited before opening the next file in the view.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Previous Difference</h3> |
| <p>This command will go to the previous difference displayed by the view. All the differences within a single file |
| will be visited before opening the previous file in the view.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Collapse All</h3> |
| <p>Collapse all the expanded entries in the view.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Incoming Mode</h3> |
| <p>In this mode, only resources which have been changed in the repository since they were last loaded or |
| synchronized with those in the Workbench (incoming changes) are visible.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Outgoing Mode</h3> |
| <p>In this mode, only resources which have been modified in the Workbench (outgoing changes) are visible.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Incoming/Outgoing Mode</h3> |
| <p>In this mode both incoming and outgoing changes are shown, and you can both update and commit. The advantage to |
| using this dual mode is you can do either task as you choose. The disadvantage is that performing a simultaneous |
| bi-directional merge is often complicated.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Conflicts Mode</h3> |
| <p>In this mode only conflicts (resources modified both in the Workbench and in the repository) are shown.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Update All Incoming Changes</h3> |
| <p>This command updates all the incoming changes visible in the view. The command will also update conflicts that |
| are auto-mergeable but will skip files whose contents contain conflicts.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Commit All Outgoing Changes</h3> |
| <p>This command commits all the outgoing changes visible in the view. Conflicts are not included in the commit.</p> |
| </div> |
| <div class="Topic"> |
| <h3>Drop Down Menu</h3> |
| <p>The drop down menu allows you to pin or remove the current or remove all synchronizations, change the mode or |
| layout, restore removed from view items, configure the current synchronization to perform scheduled refreshes as |
| well as set other view preferences.</p> |
| </div> |
| <h2>Context menu</h2> |
| <p>From the context menu of the Synchronize view you can perform a number of interesting operations.</p> |
| <h3>Open</h3> |
| <p>This command open the local resource for the selected change in the default Workbench editor for the file |
| type.</p> |
| <h3>Open With</h3> |
| <p>This command allows you to open the local resource for the selected change in the a Workbench editor.</p> |
| <h3>Show In</h3> |
| <p>This sub-menu is used to show the currently selected resource in another view.</p> |
| <h3>Open in Compare Editor</h3> |
| <p>This command open the selected change in a Compare editor which allows you to inspect the changes within the |
| file.</p> |
| <h3>Edit</h3> |
| <p>This menu allows for renaming, deleting, moving or copying the resource.</p> |
| <h3>Synchronize</h3> |
| <p>This command refreshed the remote state of the selected resources. In addition, this command will adjust the |
| timestamps of outgoing changes whose contents already match the contents of the corresponding resource on the server |
| so that the file is no longer an outgoing change. This is useful in situations where build tools regenerate files |
| whose contents have not changed.</p> |
| <h3>Expand All</h3> |
| <p>This command expands all of the selected resource's children.</p> |
| <h3>Remove from View</h3> |
| <p>This command removes the selected resources from the view. The resources will only reappear if the state of the |
| removed resources changes or the Workbench is restarted or the <strong>Restore Removed Items</strong> action is |
| invoked from the Drop Down menu.</p> |
| <h3>Update</h3> |
| <p>This command updates the selected resources. Conflicts can be included in an update but only auto-mergeable |
| conflicts will be updated. Non-mergeable conflicts will be skipped and should be merged manually using a compare |
| editor.</p> |
| <h3>Commit</h3> |
| <p>This command commits the selected resources. Only outgoing changes can be committed.</p> |
| <h3>Override and Update</h3> |
| <p>This command operates on conflicts and outgoing changes and replaces the local contents of those resources with |
| the contents from the server.</p> |
| <h3>Mark as Merged</h3> |
| <p>This command adjusts the CVS timestamps of conflicting changes so they become outgoing changes. This command |
| should be performed after conflicts are merged manually using a compare editor.</p> |
| <h3>Add to .cvsignore</h3> |
| <p>This command will add the selected resource to the .cvsignore list which will cause CVS to skip the resource |
| during all CVS operations.</p> |
| <h3>Create Patch</h3> |
| <p>This command will bring up the Create Patch wizard and populate it with the selected resources.</p> |
| <h3>Branch...</h3> |
| <p>This command will create a new branch and a new branch tag which can be used to merge the branch back to the |
| source branch.</p> |
| <h3>Show Annotation</h3> |
| <p>Depending on your Annotation preferences, this command will either bring up turn on the Quick Diff annotate or |
| open the Annotate view for the selected resource.</p> |
| <h3>Change ASCII/Binary Property...</h3> |
| <p>This command will open a dialog containing all of the selected resources. You can then alter the ASCII/Binary |
| property for each resource.</p> |
| <h3>Reassign Changes To</h3> |
| <p>This command will move changes to the change set selected from the sub-menu.</p> |
| <h3>Edit Change Set...</h3> |
| <p>This command will open a dialog that allows to create or edit the name and comment for the selected change |
| set.</p> |
| <h3>Make Changes Unassigned</h3> |
| <p>This command removes changes from the selected change set. If all changes are removed the change set is |
| deleted.</p> |
| <h3>Mark Change Set as Default</h3> |
| <p>This command will mark/unmark the selected change set as default.</p> |
| <h3>Don't Use Default Change Set</h3> |
| <p>This command will remove the default flag from the change set currently marked as default.</p> |
| <h3 class="related">Related concepts</h3><a href="../concepts/concepts-26.htm">Team programming with CVS</a><br> |
| <a href="../concepts/concepts-30.htm">Synchronizing with a CVS repository</a> |
| <h3 class="related">Related tasks</h3><a href="../tasks/tasks-115.htm">Synchronizing with the repository</a><br> |
| <a href="../tasks/tasks-113.htm">Updating</a><br> |
| <a href="../tasks/tasks-113b.htm">Resolving conflicts</a><br> |
| <a href="../tasks/tasks-100b.htm">Merging from a branch</a><br> |
| <a href="../tasks/tasks-114.htm">Committing</a><br> |
| <a href="../tasks/tasks-68.htm">Comparing resources</a><br> |
| <a href="../tasks/tasks-68dg.htm">Merging changes in the compare editor</a> |
| <h3 class="related">Related reference</h3><a href="../reference/ref-47.htm">CVS</a><br> |
| <a href="ref-25.htm">Compare editor</a> |
| </body> |
| </html> |