Commit Graph

5998 Commits

Author SHA1 Message Date
Mattias Granlund
cf38afffd8 Use svelte component context in even more places
The general goal is to make data globally available to components to avoid
prop drilling from the dependency root into leaf nodes. With this commit the code
now uses context for looking up branches, commits, ownership, etc.

Beyond this goal we should as a next step consider separating out pure UI
components from client specific ones. For example, `FileStatusIcons` should
not depend on a list of commits. We should also avoid activating/deactiviating
features since it is prone to breakage. We therefore need to look over how
`selectedOwnership` is made active for virtual branches, but ignored for
previewing remote branches.

Goals accomplished in this commit:
- no more prop-drilling of branch, commits, ownership
- easier to enable e.g. lock tooltip in leaf nodes
- context builder for things that are not unique by type (e.g. commits)

Goals not accomplished in this commit:
- `selectedFiles` is still passed around
- `UserSettings` needs to be changed from interface -> class
2024-03-30 15:28:49 +01:00
Kiril Videlov
326a5a00b3
Merge pull request #3371 from tobyjwebb/Open-in-vscode-in-new-window
Open project in VSCode in new window
2024-03-29 20:33:24 +01:00
Kiril Videlov
4e7a6755a0
Merge pull request #3372 from tobyjwebb/bitbucket-branch-url
Fix opening remote branch on BitBucket repos
2024-03-29 20:32:27 +01:00
Caleb Owens
1526058c0e
Merge pull request #3340 from gitbutlerapp/ensure-project-settings-button-goes-to-correct-project
Ensure project settings button goes to correct project
2024-03-29 17:15:30 +00:00
Caleb Owens
b35b24eb59 Simplify naming 2024-03-29 17:02:32 +00:00
Caleb Owens
4c24cc1b28 Merged origin/master into ensure-project-settings-button-goes-to-correct-project 2024-03-29 17:00:19 +00:00
GitButler
80efa6c6ac Freaking whitespaces 2024-03-29 17:10:48 +01:00
GitButler
1516dd1095 Add support for opening a BitBucket branch remotely 2024-03-29 17:04:16 +01:00
GitButler
7eb70236c2 Open project in vscode in new window 2024-03-29 15:12:56 +01:00
Kiril Videlov
fe36d83b8e
Merge pull request #3370 from tobyjwebb/fix_annoying_error_in_dev_console
Remove invalid attribute from svg file
2024-03-29 14:59:54 +01:00
tobyjwebb@gmail.com
7740c41463 Remove invalid attribute from svg 2024-03-29 14:34:54 +01:00
Kiril Videlov
4f18369576
Merge pull request #3369 from gitbutlerapp/tempdir-removal
auto-remove tempdirs after testrun
2024-03-29 12:30:49 +01:00
Sebastian Thiel
8760973611
Use GITBUTLER_TESTS_NO_CLEANUP on CI for max performance.
Without it, CI would have reduced performance compared to how
it worked previously. As it's wiped at the end of each run,
there is no reason to leave the added performance on the table
by not removing our own files.
2024-03-29 07:56:01 +01:00
Sebastian Thiel
ccb8bb9d27
chore(app): no tempdir cleanup if GITBUTLER_TESTS_NO_CLEANUP is set
Previously, tests ran in 5.7s, without cleanup, now it takes 8.5s,
a reduction by 1/3rd which is noticable (removing 15k files per
full run takes time).

When setting the GITBUTLER_TESTS_NO_CLEANUP environment variable
when running the tests, temporary directories won't be removed
anymore.
2024-03-29 07:54:42 +01:00
Sebastian Thiel
2e40278ed5
fix: remove tempdirs automtically at the end of a test-run.
That way, they don't accumulate on developer machines.
2024-03-29 07:54:36 +01:00
Sebastian Thiel
87643cd5ce
fix: re-enable accidentally commented unit-test 2024-03-28 20:35:51 +01:00
Kiril Videlov
b9ddb171bb
Merge pull request #3367 from Byron/app-test-fixups
Follow-up to 3360
2024-03-28 19:42:33 +01:00
Sebastian Thiel
bbf4d7c817
chore(app): additional minor fixes
Created on the fly while perusing the test-suite.

* avoid unnecessary `test_` prefix
* move more (and previously missed) test modules to integration level
* make `dedup` crate-private to have a reason to keep the tests where they are, same with similar functions
2024-03-28 19:21:02 +01:00
Kiril Videlov
2e1bcfd7c4
Merge pull request #3364 from gitbutlerapp/update-development-docs
feat: Add instructions to build supplementary bins
2024-03-28 17:34:52 +01:00
Kiril Videlov
65e215fa93
feat: Add instructions to build supplementary bins 2024-03-28 17:34:13 +01:00
Caleb Owens
fcfd212ba0 Moved over to a single component for handling menu bar 2024-03-28 15:37:51 +00:00
Caleb Owens
707e568368 Merged origin/master into ensure-project-settings-button-goes-to-correct-project 2024-03-28 15:01:59 +00:00
Kiril Videlov
8bb011dd11
Merge pull request #3360 from gitbutlerapp/separate-integration-tests-app 2024-03-28 15:05:20 +01:00
Sebastian Thiel
8784e7cedd
chore(app): fix remaining TODOs and some minor cleanup 2024-03-28 10:51:26 +01:00
Sebastian Thiel
3c7e238ca6
chore(app): don't build doc-tests for lib; lib-tests for binary
There are no doctests and it's unlikely there will be anytime soon
as this library isn't for publishing.

The binary also doesn't have unit-tests, thus there is no need
to look for them.
2024-03-28 09:05:54 +01:00
Sebastian Thiel
eed0fb1fbb
chore: add lib to be able to support integration tests; separate tests 2024-03-28 09:05:54 +01:00
Sebastian Thiel
16a3d446eb
chore(app): assure the crate isn't published.
The crate is only for use by `gitbutler`.
2024-03-28 09:05:54 +01:00
dependabot[bot]
c6a7b940b1 build(deps): bump tauri-plugin-store from ed682dd to c6a5b7a
Bumps [tauri-plugin-store](https://github.com/tauri-apps/plugins-workspace) from `ed682dd` to `c6a5b7a`.
- [Release notes](https://github.com/tauri-apps/plugins-workspace/releases)
- [Commits](ed682dd96e...c6a5b7ae47)

---
updated-dependencies:
- dependency-name: tauri-plugin-store
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 23:25:15 +01:00
dependabot[bot]
4697f2eb50 build(deps): bump tauri-plugin-context-menu from 0845b15 to d8dcbcb
Bumps [tauri-plugin-context-menu](https://github.com/c2r0b/tauri-plugin-context-menu) from `0845b15` to `d8dcbcb`.
- [Commits](0845b15648...d8dcbcb944)

---
updated-dependencies:
- dependency-name: tauri-plugin-context-menu
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 23:24:50 +01:00
dependabot[bot]
be9d32d0e7 build(deps): bump the rust-updates group with 14 updates
Bumps the rust-updates group with 14 updates:

| Package | From | To |
| --- | --- | --- |
| [git2](https://github.com/rust-lang/git2-rs) | `0.18.2` | `0.18.3` |
| [uuid](https://github.com/uuid-rs/uuid) | `1.7.0` | `1.8.0` |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.57` | `1.0.58` |
| [toml](https://github.com/toml-rs/toml) | `0.8.11` | `0.8.12` |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.80` | `1.0.81` |
| [async-trait](https://github.com/dtolnay/async-trait) | `0.1.77` | `0.1.79` |
| [backtrace](https://github.com/rust-lang/backtrace-rs) | `0.3.69` | `0.3.71` |
| [chrono](https://github.com/chronotope/chrono) | `0.4.34` | `0.4.37` |
| [regex](https://github.com/rust-lang/regex) | `1.10.3` | `1.10.4` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.112` | `1.0.115` |
| [ssh-key](https://github.com/RustCrypto/SSH) | `0.6.4` | `0.6.5` |
| [tauri](https://github.com/tauri-apps/tauri) | `1.6.0` | `1.6.1` |
| [walkdir](https://github.com/BurntSushi/walkdir) | `2.4.0` | `2.5.0` |
| [nix](https://github.com/nix-rust/nix) | `0.27.1` | `0.28.0` |


Updates `git2` from 0.18.2 to 0.18.3
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/git2-rs/compare/git2-0.18.2...git2-0.18.3)

Updates `uuid` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/1.7.0...1.8.0)

Updates `thiserror` from 1.0.57 to 1.0.58
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.57...1.0.58)

Updates `toml` from 0.8.11 to 0.8.12
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.11...toml-v0.8.12)

Updates `anyhow` from 1.0.80 to 1.0.81
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81)

Updates `async-trait` from 0.1.77 to 0.1.79
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.77...0.1.79)

Updates `backtrace` from 0.3.69 to 0.3.71
- [Release notes](https://github.com/rust-lang/backtrace-rs/releases)
- [Commits](https://github.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.71)

Updates `chrono` from 0.4.34 to 0.4.37
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.34...v0.4.37)

Updates `regex` from 1.10.3 to 1.10.4
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.10.3...1.10.4)

Updates `serde_json` from 1.0.112 to 1.0.115
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.112...v1.0.115)

Updates `ssh-key` from 0.6.4 to 0.6.5
- [Commits](https://github.com/RustCrypto/SSH/compare/ssh-key/v0.6.4...ssh-key/v0.6.5)

Updates `tauri` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/tauri-apps/tauri/releases)
- [Commits](https://github.com/tauri-apps/tauri/compare/tauri-v1.6.0...tauri-v1.6.1)

Updates `walkdir` from 2.4.0 to 2.5.0
- [Commits](https://github.com/BurntSushi/walkdir/compare/2.4.0...2.5.0)

Updates `nix` from 0.27.1 to 0.28.0
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.27.1...v0.28.0)

---
updated-dependencies:
- dependency-name: git2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-updates
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: toml
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: backtrace
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: chrono
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: ssh-key
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: tauri
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-updates
- dependency-name: walkdir
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-updates
- dependency-name: nix
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 23:24:29 +01:00
Mattias Granlund
84c83719a3 Fix TextBox selectall prop
- was tied to a non-existent css class
2024-03-27 22:21:14 +01:00
Mattias Granlund
0db68a77ef Make combining branches more resilient
- should not fail on individual streams
2024-03-27 22:21:14 +01:00
Mattias Granlund
d804c2adea Drop unused function in Overlay.svelte
- not picked up by linters since it was exported
2024-03-27 22:21:14 +01:00
Mattias Granlund
3ab3c9cb1f Fix a couple of typing issues
- errors thrown by an observable are of `any` kind
- make a few fields readonly
2024-03-27 22:21:14 +01:00
Mattias Granlund
c22a29e432 Fix a couple of typos 2024-03-27 22:21:14 +01:00
Mattias Granlund
3252aabf2e Drop some unused code in Branches.svelte 2024-03-27 22:21:14 +01:00
Mattias Granlund
96b4bde634 Move form element to Modal to make it accessible to all modals 2024-03-27 22:13:27 +01:00
Pavel Laptev
55511e4128 "Set branch name" to "Set remote branch name"
the action rename only the remote name and not the displayed. So it make more sense to update the copy.
2024-03-27 22:13:27 +01:00
Eyal Cherevatsky
9d3934d68d refactor: remove redundant type="submit" 2024-03-27 22:13:27 +01:00
Eyal Cherevatsky
b30b138128 feat: allow submitting rename branch form on pressing Enter
In addition, auto-focus the branch name input.
2024-03-27 22:13:27 +01:00
Mattias Granlund
e25f669492 Add some documentation to rxjs/store.ts
- this file will likely be read a few times, worth explaining the reasoning
- make the code a bit more concise
2024-03-27 20:02:20 +01:00
Kiril Videlov
29ce48d6a7
Merge pull request #3357 from gitbutlerapp/update-cargo-lock-dependencies
feat: Update dependencies to the latest versions
2024-03-27 19:44:11 +01:00
Kiril Videlov
d629020953
feat: Update dependencies to the latest versions 2024-03-27 19:28:53 +01:00
Mattias Granlund
2497ec633d Run dependabot for npm every week
- mainly because posthog seems to be making breaking changes quite frequently
2024-03-27 19:23:07 +01:00
dependabot[bot]
4500b490fb build(deps): bump the npm-updates group with 14 updates
Bumps the npm-updates group with 14 updates:

| Package | From | To |
| --- | --- | --- |
| [@tauri-apps/cli](https://github.com/tauri-apps/tauri) | `1.5.10` | `1.5.11` |
| [openai](https://github.com/openai/openai-node) | `4.28.4` | `4.29.2` |
| [@codemirror/lang-xml](https://github.com/codemirror/lang-xml) | `6.0.2` | `6.1.0` |
| [@codemirror/view](https://github.com/codemirror/view) | `6.24.1` | `6.26.0` |
| [@sentry/sveltekit](https://github.com/getsentry/sentry-javascript) | `7.104.0` | `7.108.0` |
| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.17` | `10.4.19` |
| [postcss](https://github.com/postcss/postcss) | `8.4.35` | `8.4.38` |
| [posthog-js](https://github.com/PostHog/posthog-js) | `1.110.0` | `1.116.6` |
| [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.5.11` | `0.5.13` |
| [svelte-check](https://github.com/sveltejs/language-tools) | `3.6.6` | `3.6.8` |
| [svelte-outclick](https://github.com/babakfp/svelte-outclick) | `3.7.0` | `3.7.1` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss) | `3.4.1` | `3.4.2` |
| [typescript](https://github.com/Microsoft/TypeScript) | `5.3.3` | `5.4.3` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `4.5.2` | `4.5.3` |


Updates `@tauri-apps/cli` from 1.5.10 to 1.5.11
- [Release notes](https://github.com/tauri-apps/tauri/releases)
- [Commits](https://github.com/tauri-apps/tauri/compare/@tauri-apps/cli-v1.5.10...@tauri-apps/cli-v1.5.11)

Updates `openai` from 4.28.4 to 4.29.2
- [Release notes](https://github.com/openai/openai-node/releases)
- [Changelog](https://github.com/openai/openai-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-node/compare/v4.28.4...v4.29.2)

Updates `@codemirror/lang-xml` from 6.0.2 to 6.1.0
- [Changelog](https://github.com/codemirror/lang-xml/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/lang-xml/compare/6.0.2...6.1.0)

Updates `@codemirror/view` from 6.24.1 to 6.26.0
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.24.1...6.26.0)

Updates `@sentry/sveltekit` from 7.104.0 to 7.108.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.104.0...7.108.0)

Updates `autoprefixer` from 10.4.17 to 10.4.19
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.17...10.4.19)

Updates `postcss` from 8.4.35 to 8.4.38
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.35...8.4.38)

Updates `posthog-js` from 1.110.0 to 1.116.6
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/v1.110.0...v1.116.6)

Updates `prettier-plugin-tailwindcss` from 0.5.11 to 0.5.13
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.11...v0.5.13)

Updates `svelte-check` from 3.6.6 to 3.6.8
- [Release notes](https://github.com/sveltejs/language-tools/releases)
- [Commits](https://github.com/sveltejs/language-tools/compare/svelte-check-3.6.6...svelte-check-3.6.8)

Updates `svelte-outclick` from 3.7.0 to 3.7.1
- [Commits](https://github.com/babakfp/svelte-outclick/commits)

Updates `tailwindcss` from 3.4.1 to 3.4.2
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.2/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.1...v3.4.2)

Updates `typescript` from 5.3.3 to 5.4.3
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.3)

Updates `vite` from 4.5.2 to 4.5.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v4.5.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v4.5.3/packages/vite)

---
updated-dependencies:
- dependency-name: "@tauri-apps/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: "@codemirror/lang-xml"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: "@codemirror/view"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: "@sentry/sveltekit"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: posthog-js
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: svelte-check
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: svelte-outclick
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-updates
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 19:14:06 +01:00
Kiril Videlov
18c0c3a87e
Merge pull request #3348 from gitbutlerapp/Virtual-branch
dependabot re-enable
2024-03-27 18:53:37 +01:00
Kiril Videlov
b36b746e6a
dependabot re-enable
This makes a no-op change to dependabot.yml to force Dependabot to re-evaluate the config file.
2024-03-27 18:51:47 +01:00
Mattias Granlund
811d94030e Limit max height of project selector popup
- requested by LaylaTichy on discord
2024-03-27 17:17:08 +01:00
Pavel Laptev
4e1c7910e1
accessibility fix: commit card folding behaviour on keyup (#3337)
* fix: commit card folding behaviour on keyup

I was able to fold/unfold it pressing any key. Fixed to `Enter` and `Space` keys only
2024-03-27 11:57:03 +01:00
Caleb Owens
7c6e2c9062 Introduce tests for menu items enabled state 2024-03-27 08:43:48 +00:00