-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Rebase strategy to pull/merge #933
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
khanaffan
requested review from
pmconne,
calebmshafer,
bbastings and
nick4598
as code owners
December 6, 2024 18:34
/azp run imodel-native |
Azure Pipelines successfully started running 1 pipeline(s). |
…m/iTwin/imodel-native into affanK/pull-merge-rebase-strategy
/azp run imodel-native |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run imodel-native |
Azure Pipelines successfully started running 1 pipeline(s). |
Please notify when builds are pssing. |
/azp run imodel-native |
Azure Pipelines successfully started running 1 pipeline(s). |
…fanK/pull-merge-rebase-strategy
its passing |
pmconne
approved these changes
Dec 16, 2024
…fanK/pull-merge-rebase-strategy
…fank/pull-merge-rebase-strategy
Use new method to determine and seperate schema changes
…fank/pull-merge-rebase-strategy
[Fix a problem in the sessions extension allowing changesets containing foreign key violations to be committed under some circumstances.](iTwin/sqlite@7a3d03b)
…fank/pull-merge-rebase-strategy
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Native changes
SQLITE_CHANGESETAPPLY_FKNOACTION
does not work as we indented it to work and cause client to push inconsistent changes that cannot be applied by other briefcases.TxnManager::_OnCommit()
invert
parameter toTxnManager::ApplyChanges()
its never used.TxnManager::SaveRebase
TxnManager::LoadRebases
TxnManager::DeleteRebases
TxnManager::QueryLastRebaseId
TxnManager::m_enableRebasers
TxnManager::m_lastRebaseId
ChangeTracker::m_hasEcSchemaChanges
ChangeTracker::SetHasECSchemaChanges
ChangeTracker::GetHasECSchemaChanges
ChangeStreamQueueProducer
ChangeStreamQueueConsumer
ec_cache_*
are tracked. This is required as reversing schema changeset does not work asec_Class
&ec_Table
primary key is used as fk inec_cache_*
table.TxnManager::MergeDataChanges()
MergeDataChanges()
is called when applying incoming changeset. There is no need to propagate changes. its done when rebasing local txns.ApplyChanges()
we set fkNoAction only when not rebasing. This mean fast-forward reversing a local txn.TxnManager
is not allowed any operation that changes txn when pull/merge is in progress.pullMergeInProgress(): boolean
pullMergeBegin(): void
pullMergeEnd(): void
pullMergeResume(): void
be_Local
. It is always read frombe_Local
.TxnManager::PullMergeBegin()
TxnManager
to be inMergingRemoteChanges
TxnManager::PullMergeEnd()
TxnManager
to beRebasingLocalChanges
_onRebaseTxnBegin
&_onRebaseTxnEnd
when rebasing local txn._onRebaseLocalTxnConflict
if any conflict occure.TxnManager
is set toNone
TxnManager::PullMergeResume()
itwinjs-core: iTwin/itwinjs-core#7458