Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions features/favorites.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ To publish your own, right-click empty space and choose **Publish Saved Queries

## Linked SQL folders

Link a folder of `.sql` files on disk and they appear next to your saved queries. The point is a Git repo of shared queries: clone it, link it, and a `git pull` keeps the team current.
Link a folder of `.sql` files on disk and they appear next to your saved queries. The point is a Git repo of shared queries: clone it, link it, and [Pull](#commit-pull-and-push) keeps the team current.

<Note>
This is not [Linked Folders](/features/connection-sharing#linked-folders), which watches a folder of shared `.tablepro` connection files.
Expand Down Expand Up @@ -164,7 +164,7 @@ Right-click a row and choose **Edit Metadata…** to change frontmatter without

Press `Delete` on a linked file, or right-click and choose **Move File to Trash**: it goes to the macOS Trash and stays recoverable. The rest of that menu is **Open in Editor**, **Edit Metadata…**, **Copy Query**, **Copy Path**, **Copy Relative Path**, and **Show in Finder**, plus the [Git commands](#git-status-and-history) inside a repository.

A folder's root row carries **Show in Finder**, **Copy Path**, **Disable**, **Reload**, **Add Another SQL Folder…**, and **Remove from Sidebar**. Removing unlinks the folder and leaves the files where they are. A subfolder's row carries **Show in Finder**, **Copy Path**, and **Copy Relative Path**.
A folder's root row carries **Show in Finder**, **Copy Path**, **Disable**, **Reload**, **Add Another SQL Folder…**, and **Remove from Sidebar**, plus [Commit…, Pull, and Push](#commit-pull-and-push) inside a repository. Removing unlinks the folder and leaves the files where they are. A subfolder's row carries **Show in Finder**, **Copy Path**, and **Copy Relative Path**.

**Copy Path** copies the full path, such as `/Users/you/queries/reports/daily.sql`. **Copy Relative Path** copies the path inside the linked folder, `reports/daily.sql`. With a linked row selected, **File > Copy Path** and **File > Copy Relative Path** do the same, and `Cmd+Option+Shift+C` copies the full path.

Expand Down Expand Up @@ -197,10 +197,21 @@ Right-click a file for the Git commands:

Both write the text exactly as Git stores it, without line-ending conversion or filters. A file stored with Git LFS cannot be restored or discarded here; use your Git client. If the file, or for Discard its staged version, changes while you confirm, nothing is written.

Stage, commit, and push in your Git client. The sidebar reads the repository and never touches the index.

Git comes from Xcode, the Command Line Tools, or Homebrew. When none is installed the letters and commands stay hidden, and the Command Line Tools installer never opens.

### Commit, pull, and push

Right-click a changed file, or the folder's root row, and choose **Commit…**. The sheet lists every changed file under the linked folder, each with a checkbox, and shows what changed in the selected one since the last commit. From a file, only that file starts checked; from the folder, all of them do. Type a message and click **Commit**.

Only the checked files are staged and committed. Files outside the linked folder are never staged, and anything you staged elsewhere in the repository stays staged. A file with a merge conflict cannot be checked. The commit takes each file as saved on disk, so save an open tab first; the sheet marks a file whose tab has unsaved edits.

**Pull** and **Push** sit on the folder's root row. Both run your own `git`, with your Git config, credential helper, and SSH agent, against the branch your current branch tracks.

- **Pull** only fast-forwards. When your branch and its upstream each have commits the other lacks, it stops and leaves your branch as it was; finish that pull in your Git client.
- **Push** never forces. A push the remote rejects shows why.

While a command runs, a spinner sits on the folder's row and the Git commands are hidden. When one fails, the alert shows what Git printed.

<Warning>
Link only repositories you trust. Reading a file's status runs the repository's own content filters, exactly as `git status` in Terminal does.
Link only repositories you trust. Reading a file's status runs the repository's own content filters, and committing, pulling, and pushing run its hooks, exactly as `git` in Terminal does.
</Warning>
Loading