The present invention provides systems and methods for detecting and resolving
resource conflicts. A resource conflict exists when a client version of a resource
differs from a server version of the same resource. A resource conflict primarily
arises when a client attempts to upload an altered resource to a server where the
server version of the resource is no longer equivalent to the version that the
client originally downloaded. The conflict is detected by the server and conflict
resolution is initiated. The server is the first level of conflict resolution.
The server can compare the conflicting versions of the resource to determine if
the changes are not actually conflicting. If the server can resolve the conflict,
it does and returns a resource tag to the client. The second level of conflict
resolution is at the client. The client typically has knowledge of a schema related
to the resource which may enable the client to resolve conflicts that the server
could not. If the neither the server of the client can resolve the conflict, an
end user is needed to resolve the conflict. After the conflict is resolved, it
is uploaded to the server and the client receives a new resource tag.