Resubmit

If there are file conflicts between the personal and remote servers when performing a fetch those conflicts will enter a resolve/resubmit cycle. In the cycle, one or more conflicting files from the remote and personal server are resolved, then the resolved files are resubmitted.

There is one resubmit for each affected changelist that is affected by the fetch.

The resolve/resubmit cycle is automated and can be completed without user interaction but if a file conflict exists each cycle will require user interaction.

The Resubmit dialog will appear if the fetch has conflicts. At the top is a list of all of the affected changelists along with their resubmit status. Below that list is the current changelist that is being resolved.

The user can interrupt the resolve/resubmit cycle at any time by choosing “Finish Later”. It is highly recommended that a user complete the cycle before performing any actions to affected files to minimize potential data loss. P4V will reopen the resubmit menu if it has been restarted.

If a file needs to be resolved before resubmitted, the Resubmit dialog will provide an option to resolve the file conflict. The P4V Resolve dialog will load prepopulated with the files associated in the current step of the resolve/resubmit cycle.

The sense of the resolve for a DVCS Fetch with conflicts is the reverse of what might be expected. When the Fetch brings down files from the remote server, all local files in conflict are moved to a "tangent" depot residing on the local server. Moving files to the tangent depot is automatically done as part of the Fetch process. For each changelist with conflicts, a new changelist containing changes from the remote server replaces the old changelist that has been moved to the tangent depot. The "source" for the resolve refers to the local files in the tangent depot. The "target" for the resolve refers to to the remote files that have been moved to the local depot itself. For example, in P4Merge, the "source" is the local file (say MyFile.c#7); the "target" is the remote file with conflicts (with no stated revision); and the "base" is the common previous revision (say MyFile.c#6). If there’s any confusion, running P4Merge from the Resolve dialog (by selecting the "Merge Tool" option) should clarify the sense of the "source" and "target" of the resolve.