IP Library Granted Patent US 11,144,309
Granted Patent B2
US 11,144,309 · App. 16/516,431 · Granted Oct 12, 2021

Changeset conflict rebasing

Inventors: Samuel W. Wilson (Downingtown, PA); Keith A. Bentley (Elverson, PA)
Assignee: Bentley Systems, Incorporated
G06F8/71G06F16/211G06F16/284
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,144,309
App. No.
16/516,431
Granted
Oct 12, 2021
Kind
B2
Abstract

In example embodiments, techniques are provided to implement changeset conflict rebasing when performing conflict-detection and merging in an infrastructure modeling software architecture that uses an optimistic concurrency policy. Changeset conflict rebasing involves adjusting the pre-change values in a local changeset so they match post-change values of a remote version, rather an original base version, or removing changes from the local changeset entirely.

Claims (49)

1. A method of changing a property of an object, and detecting and merging conflicts in an infrastructure modeling software architecture, comprising:

changing, by a client executing on a client device, a property of an object of an infrastructure model to create a local version including a change;

pulling a remote version of the property from a repository;

detecting a conflict between the remote version and the local version;

reconciling the conflict to create an updated local version;

generating, at a given point in time, a local changeset for the updated local version, the local changeset including a pre-change value and a post-change value, the pre-change value in the local changeset representing an original value of the property of the object at the client before the change, and the post-change value in the local changeset representing a new value of the property of the object at the client; and

rebasing the generated local changeset by adjusting the pre-change value in the local changeset to match a post-change value of the remote version while maintaining unchanged the post-change value in the local changeset, to thereby produce a rebased local changeset.

2. The method of claim 1 , wherein the reconciling further comprises:

generating, by an underlying database system, rebasing records that store information about the post-change value of the remote version.

3. The method of claim 2 , wherein the rebasing further comprises:

accessing, using the underlying database system, the rebasing records and applying the rebasing records to adjust the pre-change value in the local changeset to match the post-change value of the remote version.

4. The method of claim 1 , wherein the change in the local version is an update and the remote version includes a change of an update, and the reconciling the conflict comprises rejecting the remote version in favor of retaining the local version.

5. The method of claim 2 , wherein the client utilizes a built infrastructure schema (BIS) and the underlying database system is a SQLite database system.

6. The method of claim 1 , further comprising:

receiving a trigger to push the local version of the property to a repository that maintains a shared timeline for the infrastructure model;

pushing the rebased local changeset from the client to the repository such that the rebased local changeset becomes a newly accepted changeset of the repository;

pulling the newly accepted changeset by another client; and

utilizing the newly accepted changeset by the another client to display an updated view of the infrastructure model in a user interface of the another client.

7. A non-transitory electronic device readable medium having instructions that when executed on one or more processors of one or more electronic devices are operable to:

change a property of an object of an infrastructure model to create a local version including a change;

pull a remote version of the property from a repository;

detect a conflict between the remote version and the local version;

reconcile the conflict to create an updated local version;

generate, at a given point in time, a local changeset for the updated local version, the local changeset including a pre-change value and a post-change value, the pre-change value in the local changeset representing an original value of the property of the object before the change to the property of the object, and the post-change value in the local changeset representing a new value of the property of the object; and

rebase the generated local changeset by adjusting the pre-change value in the local changeset to match a post-change value of the remote version while maintaining unchanged the post-changed value in the local changeset, to thereby produce a rebased local changeset.

8. The non-transitory electronic device readable medium of claim 7 , further comprising instructions that when executed are operable to:

generate rebasing records that store information about the post-change value of the remote version.

9. The non-transitory electronic device readable medium of claim 8 , further comprising instructions that when executed are operable to:

access the rebasing records and apply the rebasing records to adjust the pre-change value in the local changeset to match the post-change value of the remote version.

10. The non-transitory electronic device readable medium of claim 7 , wherein the change in the local version is an update and the remote version includes a change of an update, and reconciliation of the conflict comprises rejection of the remote version in favor of retention of the local version.

11. The non-transitory electronic device readable medium of claim 7 , wherein the instructions are executed by a client that utilizes a built infrastructure schema (BIS) with an underlying SQLite database system.

12. A computing device comprising:

a processor; and

a memory coupled to the processor and configured to store a client that is executable on the processor having a user interface for interacting with infrastructure models, the client when executed operable to:

pull a base version of an infrastructure model from a cloud-based repository,

in response to user input received in the user interface, change a property of an object of the infrastructure model to create a local version including a change,

pull a remote version of the property from the repository,

detect a conflict between the remote version and the local version,

reconcile the conflict between the local version and the remote version to create an updated local version,

generate, at a given point in time, a local changeset for the updated local version, the local changeset including a pre-change value and a post-change value, the pre-change value in the local changeset representing an original value of the property of the object before the change to the property of the object, and the post-change value in the local changeset representing a new value of the property of the object, and

rebase the generated local changeset by adjusting the pre-change value in the local changeset to match a post-change value of the remote version while maintaining unchanged the post-changed value in the local changeset, to thereby produce a rebased local changeset.

13. The computing device of claim 12 , wherein the client utilizes an underlying database system operable to generate rebasing records that store information about the post-change value of the remote version.

14. The computing device of claim 13 , wherein the client when executed is further operable to access the rebasing records and apply the rebasing records to adjust the pre-change value in the local changeset to match the post-change value of the remote version.

15. A method of changing a property of an object, and detecting and merging conflicts in an infrastructure modeling software architecture, comprising:

updating, by a client executing on a client device, a property of an object of an infrastructure model to create a local version including a change;

detecting a conflict between a remote version of the property and the local version;

reconciling the conflict between the local version of the property and the remote version by rejecting the remote version in favor of retaining the local version;

generating a local changeset for the local version that includes a pre-change value of the property of the object and a post-change value of the property of the object, the pre-change value in the local changeset representing an original value of the property of the object at the client before the updating the property of the object, and the post-change value in the local changeset representing a new value of the property of the object at the client; and

rebasing the generated local changeset by adjusting the pre-change value of the property of the object in the local changeset to match a post-change value of the remote version while maintaining unchanged the post-changed value in the local changeset, to thereby produce a rebased local changeset.

Assignments (2)
SECURITY INTEREST Recorded Oct 25, 2024
From: BENTLEY SYSTEMS, INCORPORATED
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 069268/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: WILSON, SAMUEL W.; BENTLEY, KEITH A.
To: BENTLEY SYSTEMS, INCORPORATED
Reel/Frame 049935/0546 →
Continuity (2)
Provisional Application 62745104 · Oct 12, 2018
Related Publication 20200117445A1 · Apr 16, 2020
Cited By (1)
US 12,511,813