mirror of
https://github.com/lancedb/lancedb.git
synced 2026-09-04 20:48:50 +00:00
e98d8ac685
This PR is a **breaking** rename of #3686. merge reads like git merge w/ three-way, replay history, combine two lines of work. That is not this API. This call takes one additive change on a branch and lands it on main. New column, including a blob column. Main's existing columns are not rewritten. If it cannot land, you get `status="failed"` and `diff.errors`, not a merge conflict to resolve. Cherry-pick is terminology that aligns more with that. ```python table = db.open_table("images") table.branches.create("exp") exp = table.branches.checkout("exp") exp.add_columns({"tag": "cast('draft' as string)"}) diff = table.branches.diff("exp") preview = table.branches.cherry_pick("exp", dry_run=True) result = table.branches.cherry_pick("exp") if result["status"] == "cherryPicked": print("landed at", result["mainVersionAfter"]) elif result["status"] == "failed": print(result["diff"]["errors"]) ``` ### Behavior - Remote / Enterprise only. Local still NotSupported. - HTTP 409 is not an exception. It is Ok with status="failed" and diff.errors (CherryPickError). - Unknown error / status codes still parse as Unknown. - Requests are not retried. 409 is final and carries the body. - Endpoint is POST /v1/table/{id}/branches/cherry_pick/. - merge_insert and Table.merge are unchanged. ### Testing - `cargo test -p lancedb --features remote diff_branch` - `cargo test -p lancedb --features remote cherry_pick` - `pytest python/python/tests/test_remote_db.py -k cherry_pick` - node `remote.test.ts` diffs / cherry-picks path
122 lines
1.0 KiB
Markdown
122 lines
1.0 KiB
Markdown
[**@lancedb/lancedb**](../README.md) • **Docs**
|
|
|
|
***
|
|
|
|
[@lancedb/lancedb](../globals.md) / BranchDiff
|
|
|
|
# Interface: BranchDiff
|
|
|
|
Read-only comparison of a branch against main.
|
|
|
|
## Properties
|
|
|
|
### addedColumns
|
|
|
|
```ts
|
|
addedColumns: BranchColumnSummary[];
|
|
```
|
|
|
|
***
|
|
|
|
### addedIndexes
|
|
|
|
```ts
|
|
addedIndexes: BranchIndexSummary[];
|
|
```
|
|
|
|
***
|
|
|
|
### baseMoved
|
|
|
|
```ts
|
|
baseMoved: boolean;
|
|
```
|
|
|
|
***
|
|
|
|
### branchVersion
|
|
|
|
```ts
|
|
branchVersion: number;
|
|
```
|
|
|
|
***
|
|
|
|
### changedColumns
|
|
|
|
```ts
|
|
changedColumns: BranchColumnChange[];
|
|
```
|
|
|
|
***
|
|
|
|
### errors
|
|
|
|
```ts
|
|
errors: CherryPickError[];
|
|
```
|
|
|
|
***
|
|
|
|
### fromBranch
|
|
|
|
```ts
|
|
fromBranch: string;
|
|
```
|
|
|
|
***
|
|
|
|
### mainVersion
|
|
|
|
```ts
|
|
mainVersion: number;
|
|
```
|
|
|
|
***
|
|
|
|
### parentVersion
|
|
|
|
```ts
|
|
parentVersion: number;
|
|
```
|
|
|
|
***
|
|
|
|
### removedColumns
|
|
|
|
```ts
|
|
removedColumns: BranchColumnSummary[];
|
|
```
|
|
|
|
***
|
|
|
|
### removedIndexes
|
|
|
|
```ts
|
|
removedIndexes: BranchIndexSummary[];
|
|
```
|
|
|
|
***
|
|
|
|
### rowCountBranch
|
|
|
|
```ts
|
|
rowCountBranch: number;
|
|
```
|
|
|
|
***
|
|
|
|
### rowCountMain
|
|
|
|
```ts
|
|
rowCountMain: number;
|
|
```
|
|
|
|
***
|
|
|
|
### rowSummary
|
|
|
|
```ts
|
|
rowSummary: BranchRowCountSummary;
|
|
```
|