Sebastian Thiel
6596f3956e
adapt debouncer tests with the changed codebase
2024-05-24 15:38:46 +02:00
Sebastian Thiel
edd8d54950
copy tests from notify-debouncer-full
as well (verbatim)
...
While at it, remove the docs as they are referring to the original source code.
Tests should help to understand how it is supposed to work.
Note that the copy is verbatim and modifications will happen in a separate commit,
along with the necessary license declarations.
2024-05-24 13:50:03 +02:00
Sebastian Thiel
86edb4627d
reorganize watcher modules for more consistency
2024-05-24 13:28:34 +02:00
Sebastian Thiel
80b9598d5a
remove (some) unused code; minor refactor
2024-05-24 13:28:33 +02:00
Sebastian Thiel
2080b62864
add license for code taken from notify-debouncer-full
2024-05-24 13:19:37 +02:00
Sebastian Thiel
5906eb1a35
change debounce-events to trace
so they don't dominate the log
...
Ideally it's usable even in debug mode.
2024-05-24 12:41:26 +02:00
Kiril Videlov
db4bb914cc
improve auto snapshotting check performance
2024-05-23 22:17:46 +02:00
Sebastian Thiel
850045e9d3
Allow to watch multiple directories in case of special setups
...
Like worktrees - these could work now from a watchers perspective.
2024-05-23 13:04:02 +02:00
Sebastian Thiel
9ad010bd0f
Assure we fail gracefully git-dir and worktree-dir are unusual
...
This could be supported, but would require more changes to get right.
For now, fail gracefully instead of failing strangely because we don't
watch everything that needs watching.
2024-05-23 12:55:45 +02:00
Sebastian Thiel
05118086dd
Use gitoxide
in file-watcher
...
This allows for faster opening times, and more more efficient
exclude checks.
2024-05-23 11:13:56 +02:00
Sebastian Thiel
a83e6809ab
Only open a repository when project-files are involved.
...
There are many filesystem events that are not touching files which
could be ignored.
Now we detect this case in advance and only open the project repository
if we know there are files to check for their ignore state.
That way, there should overall be less IO, which is good for performance
particularly on Windows.
2024-05-23 10:50:38 +02:00
Ani Betts
f54c12fd55
Halve the dead air time
2024-05-21 11:03:18 +02:00
Ani Betts
12143b0a54
Embrace your Chill, cargo
2024-05-21 10:39:00 +02:00
Ani Betts
b4b0de6a3c
Merge remote-tracking branch 'upstream/master' into flushable-debounce
...
* upstream/master: (85 commits)
History and minor UI fixes (#3797 )
History fixes (#3796 )
make GitGuardian happy
bump playwright version
add vitest exclude for node_modules
Remove unused exports from ipc
Update auth.ts to use absolute import
Use correct invoke function
setup for async tasks on oplog update
formatting
save and restore the gitbutler/integration branch
remove unneccessary CSPs
Fix ollama request security
fix: forgot the port
feat: Set default snapshot lines threshold to 20 when undefined
fix: Updated connect-src to allow local connections for ollama
Minor tweaks to CSS and use real branch name
Unmount history component when hidden
Fix bug leaving PR button visible
Small refactor of history component
...
2024-05-21 10:29:42 +02:00
Kiril Videlov
662a62c2f2
setup for async tasks on oplog update
...
As we start building out code collaboration we wanna have the ability to push gitbutler state to, when enabled
2024-05-19 15:53:27 +02:00
Ani Betts
2ff2b1f7ec
Format
2024-05-15 20:27:26 +02:00
Ani Betts
e9cd5d3dca
Rewrite the timeouts
...
Change the strategy of how timeouts work, from a simple timer, to
something a bit more nuanced
2024-05-15 20:27:26 +02:00
Ani Betts
326e9fee02
Wire flushing into the Watcher
...
Give the main window a mechanism to flush pending changes via a Channel
2024-05-15 20:27:26 +02:00
Ani Betts
28de8135d2
Add a new mechanism to flush on "idle"
...
Optionally, if we detect that no change notifications have appeared for
a certain number of ticks, we will automatically flush pending
notifications
2024-05-15 20:27:26 +02:00
Ani Betts
1c3d8d3997
Allow events to be explicitly flushed
...
This adds a new method to allow us to explicitly flush pending change
notifications
2024-05-15 20:27:25 +02:00
Ani Betts
fe35b1f65f
Import notify_debounce_full
...
We need to make some changes to notify_debounce_full and it seems like
the project is unmaintained, let's copy-paste some code
2024-05-15 20:27:25 +02:00
Kiril Videlov
62dadd96a8
remove unused index subscription
2024-05-13 14:18:56 +02:00
Kiril Videlov
91e48c6730
remove sessions/deltas unused tauri events
2024-05-12 03:24:36 +02:00
Kiril Videlov
3eaaccc2e0
remove deltas calculation on file change
...
This is being replaced by the new `ops` module
Along with the respective tests. There were only session/deletas related assertions in the watcher tests
2024-05-12 02:54:19 +02:00
Kiril Videlov
d51761a654
remove unused flush event
2024-05-12 02:22:05 +02:00
Kiril Videlov
18cf10a143
remove unused fetch_gb_data
2024-05-12 02:13:02 +02:00
Kiril Videlov
bca8e13dfb
remove unused push_gb_data
2024-05-12 02:05:07 +02:00
Kiril Videlov
903991eea7
use default snapshot_lines_threshold
2024-05-08 02:58:30 +02:00
Kiril Videlov
93d5e61530
rename module snapshots to ops
2024-05-08 00:29:38 +02:00
Kiril Videlov
2c065a602e
rename module of oplog trait
2024-05-08 00:29:38 +02:00
Josh Junon
dce8ead62f
use simpler virtual branch handle fetch in tests (and fix strange uncaught compilation error)
2024-05-06 20:22:40 +02:00
Kiril Videlov
c29440e472
remove files list trailer from snapshot
...
This info is extracted from the snapshot itself
2024-05-06 15:36:56 +02:00
Kiril Videlov
5f6ff257d1
refactor snapshotting as an Oplog trait
...
Implemented on Project
2024-05-05 22:28:12 +02:00
Kiril Videlov
c59767651d
fix: auto snapshotting on changed lines of code
...
Compare against the last snapshot
2024-05-05 20:08:34 +02:00
Kiril Videlov
5e54e0ed01
make SNAPSHOT_LINES_THRESHOLD configurable
2024-05-04 19:34:54 +02:00
Kiril Videlov
ebae6bf8de
create a snapshot every 20 lines changed
2024-05-04 19:20:22 +02:00
dependabot[bot]
a1a3abc868
Bump the rust-updates group with 10 updates
...
Bumps the rust-updates group with 10 updates:
| Package | From | To |
| --- | --- | --- |
| [serde](https://github.com/serde-rs/serde ) | `1.0.197` | `1.0.199` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `1.0.58` | `1.0.59` |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.81` | `1.0.82` |
| [async-trait](https://github.com/dtolnay/async-trait ) | `0.1.79` | `0.1.80` |
| [chrono](https://github.com/chronotope/chrono ) | `0.4.37` | `0.4.38` |
| [reqwest](https://github.com/seanmonstar/reqwest ) | `0.12.2` | `0.12.4` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.115` | `1.0.116` |
| [ssh-key](https://github.com/RustCrypto/SSH ) | `0.6.5` | `0.6.6` |
| [tauri](https://github.com/tauri-apps/tauri ) | `1.6.1` | `1.6.2` |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) | `0.30.8` | `0.30.11` |
Updates `serde` from 1.0.197 to 1.0.199
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.197...v1.0.199 )
Updates `thiserror` from 1.0.58 to 1.0.59
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59 )
Updates `anyhow` from 1.0.81 to 1.0.82
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.81...1.0.82 )
Updates `async-trait` from 0.1.79 to 0.1.80
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.79...0.1.80 )
Updates `chrono` from 0.4.37 to 0.4.38
- [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.37...v0.4.38 )
Updates `reqwest` from 0.12.2 to 0.12.4
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.2...v0.12.4 )
Updates `serde_json` from 1.0.115 to 1.0.116
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116 )
Updates `ssh-key` from 0.6.5 to 0.6.6
- [Commits](https://github.com/RustCrypto/SSH/compare/ssh-key/v0.6.5...ssh-key/v0.6.6 )
Updates `tauri` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/tauri-apps/tauri/releases )
- [Commits](https://github.com/tauri-apps/tauri/compare/tauri-v1.6.1...tauri-v1.6.2 )
Updates `sysinfo` from 0.30.8 to 0.30.11
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.30.8...v0.30.11 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: thiserror
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: chrono
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
- dependency-name: reqwest
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: sysinfo
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 15:11:55 +00:00
Kiril Videlov
00706b402b
remove posthog from the rust code
...
similar to https://github.com/gitbutlerapp/gitbutler/pull/3628
2024-04-29 16:12:14 +02:00
Josh Junon
adcba68220
move multi-file modules to mod.rs and single-file modules to <name>.rs
2024-04-26 11:56:35 +02:00
Sebastian Thiel
116f5d02bc
Revert 74eb7bd3
as debounce-timing has no effect ( #3601 )
...
This probably means the raciness is not due concurrency introduced by filesystem events,
which leads me to think that having great 'disk-IO-hygiene` should improve things.'
2024-04-25 16:33:55 +02:00
Sebastian Thiel
29525ffd03
address review comments
...
- rename feature to `windows`
- remove unused config key from `Cargo.toml`, unfortunately `cfg` isn't available for everything
- make sure feature is toggled on on CI when checking and when publishing
2024-04-25 11:29:24 +02:00
Sebastian Thiel
74eb7bd397
on Windows, update far less often on filesystem changes. ( #3601 )
...
By increasing the window size for collecting filesystem events,
knowing that each event is processed in parallel, we might be lucky
and that already reduces the likelyhood of clashes.
It's an experiment though.
On Unix, run with:
`LOG_LEVEL=debug pnpm tauri dev --features adapt-to-windows`
2024-04-25 08:17:11 +02:00
Sebastian Thiel
aa3d3cb7da
fix rustfmt formatting issues due to line-length ( #3039 )
...
The trick is to temporarily set `max_width` in `rustfmt.toml` to 120,
then set it back to the default of 100 (or remove the file).
2024-04-23 12:53:56 +02:00
Sebastian Thiel
be4cd36986
clarify some TODOs to avoid keeping them for too long
...
Note that the comment above 'deltas' merely removed, as it wasn't actionable
without changing the frontend, which can probably already deal with
multiple of these.
Now that types are better understood though, it was straightforward to
change the type of `file_path` to not be a string, which now is even
clearer of a necessity thanks to the `tauri`-independent `watcher` crate.
Also, remove a comment related to the lack of worktree support.
It now fails gracefully, and that will come up again if support should be added.
2024-04-21 11:35:26 +02:00
Sebastian Thiel
fe950ec00a
refactor
...
- adjust comment in watcher to actually show how it works.
2024-04-21 11:35:25 +02:00
Kiril Videlov
0fea544cd7
rm gb_repository from controller
2024-04-21 09:26:34 +02:00
Kiril Videlov
442eb88eaa
rm target writer from unrelated tests
2024-04-19 23:13:27 +02:00
Kiril Videlov
7fb642df07
fix test
2024-04-19 21:54:33 +02:00
Sebastian Thiel
c30ac3ba62
optimize tokio features
...
Previously, the attempt was made to enable only those `tokio` features
that are actually used. However, due to default-features still being
enabled and `tauri` using the `full` feature, for most intents and purposes
that wasn't effective.
Now default features are disabled, and `full` isn't used anymore, forcing
all crates to mention the exact features they need.
Note that `tracing` is missing here, as it wasn't effective previously
without the `--cfg tokio_unstable` option also being specified as rustflag.
2024-04-18 09:48:23 +02:00
Sebastian Thiel
81dd1fc13e
The watcher-crate compiles and tests run
2024-04-17 21:46:06 +02:00