Merged
Size
L
Change Breakdown
Bug Fix70%
Feature25%
Refactor5%
#26416fix(core): Implement data tables name collision detection on pull

Data table name collisions now blocked on pull

Source control pulls now detect when a local data table shares a name with a remote one, and halt before any data is overwritten. Previously, this collision could silently destroy one table.

Data tables synced to source control could be silently deleted during a pull. When two tables—one local, one remote—shared the same name but had different IDs, the system had no guard to stop the overwrite.

Pull operations now validate all name collisions upfront before touching any data. If a local table with name "Customers" exists in the same project as a remote table also called "Customers" but with a different ID, the pull stops and the user is prompted to rename one. This matches the behavior that already protected workflows and credentials.

The system also learns from git history which tables were previously synced. A local-only table that was never pushed to source control is preserved during pull—previously, it risked deletion if a remote table with the same name existed. Conversely, a remote-only table pushed by another instance won't be deleted locally during a push unless it was previously synced from this instance.

View Original GitHub Description

Summary

Detect name collisions when pulling data tables and stopping the pull process in that case (mimicking the same logic from tags pull).

<img width="413" height="245" alt="image" src="https://github.com/user-attachments/assets/f138c9c9-52a5-49b7-a053-a330100df6c1" />

Related Linear tickets, Github issues, and Community forum posts

Fixes ADO-4860

Review / Merge checklist

  • PR title and summary are descriptive. (conventions) <!-- **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** -->
  • I have seen this code, I have run this code, and I take responsibility for this code.
  • Docs updated or follow-up ticket created.
  • Tests included. <!-- A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. -->
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)
© 2026 · via Gitpulse