Offline Source Code Control with Activity List Reconciliation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current source code control systems face challenges in tracking and reconciling changes made offline, leading to dropped changes and conflicts when users reconnect to the central repository, as they lack a mechanism for tracking offline modifications.

Innovation Solution

A source code control system that allows developers to work offline by caching file changes and recording activities in an activity list, enabling reconciliation with the server when reconnecting, while also providing mechanisms for conflict resolution and locking to prevent updates during offline periods.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If developers work offline without a tracking mechanism, then they can continue development without server connectivity, but changes cannot be reconciled with the server leading to dropped changes and conflicts

Engineering Contradiction:
Improveability to work offlineVSAvoidchange reconciliation
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary actions by caching the pristine version of files before offline work begins and recording all commands executed during offline periods in an activity list. This preliminary tracking enables reliable reconciliation when connectivity is restored, resolving the contradiction between offline work capability and change reconciliation reliability.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the system tracks all offline commands in an activity list, then reconciliation accuracy improves, but system complexity increases

Engineering Contradiction:
Improvechange tracking accuracyVSAvoidoffline command tracking system
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system creates a copy of the original file state (pristine version) and a copy of all executed commands (activity list) for tracking purposes. These copies enable precise measurement and tracking of offline changes without permanently altering the original workflow, achieving high tracking accuracy while managing complexity through temporary duplicate data structures.

Inventive Principle:
Principle #26Copying

3Productivity

If multiple users can access the same file simultaneously, then collaboration efficiency improves, but conflicts arise when offline changes are uploaded

Engineering Contradiction:
Improvecollaboration efficiencyVSAvoidfile update consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms that notify users when their offline changes conflict with server changes upon reconnection. The feedback loop provides conflict information to users, enabling them to resolve discrepancies and maintain file update consistency while preserving collaboration efficiency through simultaneous access capability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7779387B2Offline source code control
Publication Date: 2010.08.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7779387B2 patent drawing
  • US7779387B2 patent drawing
  • US7779387B2 patent drawing

AI summary

A source code control architecture. A client user checks out a copy of a source code file to the client using a file checkout process. A client cache maintains a pristine copy of the file, and a client activity list maintains a list of commands executed during the offline mode to effect modifications to the copy. The client cache contains a pristine copy of all source code files that are modified or deleted in a local client workspace. The cache is maintained whether the user is online or offline. When the user is offline, the cache is utilized to facilitate many of the activities that historically would require server connectivity. The command activity list allows a developer to continue changing the source code while offline by automatically recording the executed commands. The offline commands are reconciled to the server, and used to update the server file(s) when the client returns online.