Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
3.7 KiB
P01 Conflict File Preservation
Definition
A mechanism where, upon detecting conflicting changes to a shared resource, a system creates a separate, new file containing one version of the conflicting content, while the original file retains the other version. This defers the resolution of the conflict to the user.
Candidate Identity
P01, Family: Conflict Resolution, Scale: File, Status: Draft, Maturity: Hypothesis, Evidence_kind: Primary
Context
A user is collaborating on or synchronizing a file across multiple devices or instances. Changes are made to the same file independently on different systems.
Problem
When conflicting changes are made to a shared file, the system needs a strategy to handle these discrepancies without data loss and without forcing an immediate, potentially incorrect, automatic merge.
Forces
- Data Preservation: The need to ensure that no user-made changes are lost, even if they conflict. This pushes towards preserving all versions.
- System Simplicity vs. User Control: An automatic merge is simpler for the system but might produce an incorrect result. Preserving both versions requires user intervention but offers full control.
- Synchronization Integrity: The desire to keep the primary synchronized file consistent with one authoritative source (e.g., the remote version).
Solution
When a conflict is detected, the system creates a new "conflict file" containing the local, conflicting changes. The original file is updated with the remote version of the content.
Dynamics
- A file
Aexists on a local system and a remote system. - Changes are made to
Alocally, resulting inA_local. - Concurrently, changes are made to
Aremotely, resulting inA_remote. - When synchronization occurs, the system detects that
A_localandA_remotediffer. - Instead of attempting an automatic merge, the system creates a new file (e.g.,
A_conflict) containing the content ofA_local. - The original file
Ais updated with the content ofA_remote. - The user is left with two files:
A(remote version) andA_conflict(local version), and must manually reconcile them.
Resulting Context
The user has two distinct files representing the conflicting versions. The primary file reflects the remote state, and a new file holds the local, conflicting changes. The conflict is not resolved by the system but is presented for user resolution.
Consequences
- Pros: Guarantees no data loss from either conflicting version. Provides the user with full control over conflict resolution. Keeps the main file consistent with the remote source.
- Cons: Requires manual user intervention to resolve conflicts. Can lead to file clutter if conflicts are frequent and not resolved promptly. The user must understand which file contains which version.
Failure Modes
- The conflict file is not clearly named or located, making it difficult for the user to find and understand.
- The system fails to detect a conflict and overwrites one version without creating a conflict file.
- The user is not notified of the conflict, leading to unnoticed divergence.
Source Evidence
- C01: "Obsidian Sync can be configured to create a separate conflict file instead of automatically merging conflicting changes." (SRC-0006, Passage A)
- C02: "When a conflict file is created, the original file retains the remote version of the content." (SRC-0006, Passage B)
Counterevidence
None.
Review Notes
This pattern explicitly separates the act of preserving conflicting versions from the act of resolving them, pushing the latter to the user.
Known uses
Known uses: unknown Recurrence: unknown
{"candidates": [{"id": "P01", "known_uses": [], "recurrence": "unknown"}]}