Commit Graph

317 Commits

Author SHA1 Message Date
Ian Donahue
bc636c3786 Revert "Merge branch 'master' into ian/gb-187-cmdpal-icons-for-repository-and-files"
This reverts commit 6b74d3f0f9, reversing
changes made to 57e6db78ad.
2023-04-11 11:37:08 +02:00
Nikita Galaiko
2ecf0dbadd pty: run reader in a separate thread 2023-04-11 10:59:14 +02:00
Nikita Galaiko
771166968e pty-ws: log error when fail to listen 2023-04-11 10:59:14 +02:00
Nikita Galaiko
decd0511ba pty: server side prettyfy 2023-04-11 10:59:14 +02:00
Nikita Galaiko
57dfd89a28 return http error from handshake 2023-04-06 16:31:54 +02:00
Nikita Galaiko
27fdd591d7 make pty connections project aware 2023-04-06 15:32:07 +02:00
Nikita Galaiko
9b2ea25a7a cleanup terminal 2023-04-06 11:17:09 +02:00
Scott Chacon
35f28cbc94
Add a Terminal (#49)
This implements a simple terminal frontend using Xterm and backend using portable_pty. It will not yet record, but it should keep a separate terminal per project, resize properly, change directories to the project, etc.

https://docs.rs/portable-pty/latest/portable_pty/
2023-04-05 10:10:07 +02:00
Nikita Galaiko
15201d9f8d make sure invalid deltas do not break the app 2023-04-04 11:23:32 +02:00
Nikita Galaiko
10da421c10 commit: make commit work 2023-03-30 11:04:30 +02:00
Nikita Galaiko
7807296918 add more error messages 2023-03-29 16:23:20 +02:00
Nikita Galaiko
4b86d3ca49 commit: re-do ui from scratch 2023-03-29 16:23:20 +02:00
Nikita Galaiko
88c731c50a make git information reactive 2023-03-29 12:43:01 +02:00
Nikita Galaiko
1f70f359d7 rm unused function 2023-03-29 12:43:01 +02:00
Nikita Galaiko
aaba14e819 use cache for get session by id 2023-03-23 16:11:39 +01:00
Nikita Galaiko
e4f1edfc83 Refactor search result to include total count
This commit refactors the search result to include the total count of matches found, alongside the limited search results (page) for better pagination support. Changes made include:

- Modified the return type from `Vec<SearchResult>` to `SearchResults` structure, to include a total count.
- Updated the search function implementation to handle the new data structure.
- Adapted the test cases to account for the updated search result format.

In addition to the previous changes, this commit addresses the issue of not knowing the total number of search results when using pagination, which can now be easily obtained from the `SearchResults` structure.
2023-03-23 16:11:39 +01:00
Nikita Galaiko
5c99150b20 acquire lock closer to where it is used 2023-03-23 08:43:41 +01:00
Nikita Galaiko
01a4c63900 ignore binary files in session/wd 2023-03-23 08:43:41 +01:00
Nikita Galaiko
e76c88b486
fix typo 2023-03-22 15:58:51 +01:00
Scott Chacon
258ed370f7 Add get_file_contents API to Rust and display added file content in DiffViewer
This commit adds a new feature to display the contents of a file when it's in the "added" status in the commits view. A new `get_file_contents` function is implemented in the `Repository` struct, and a corresponding command is added to the main Tauri app. The frontend is updated to handle added files by invoking this command and rendering the contents in the DiffViewer component.

Changes include:
- Add `get_file_contents` function to `repository.rs` and command in main.rs
- Update the viewer to handle added files
2023-03-22 15:54:33 +01:00
Nikita Galaiko
c6b23dc250
log exec time as debug 2023-03-22 15:17:10 +01:00
Nikita Galaiko
e92c924b45
log tauri commands execution time 2023-03-22 15:02:16 +01:00
Nikita Galaiko
17fa40b3b8
fix deadlock issue 2023-03-22 14:11:29 +01:00
Nikita Galaiko
69df2d0408
fix sessions storage filtering 2023-03-22 11:26:02 +01:00
Nikita Galaiko
fa3a6271f9
subscribe to file changes before sending them 2023-03-22 09:12:37 +01:00
Nikita Galaiko
217ede1771
async init 2023-03-22 09:02:41 +01:00
Nikita Galaiko
300d042e04
start only one files watcher 2023-03-22 08:59:23 +01:00
Nikita Galaiko
80e3e9fd28
make watchers async 2023-03-22 07:51:58 +01:00
Nikita Galaiko
b202c264aa
share git repo between repository too 2023-03-21 15:12:45 +01:00
Nikita Galaiko
7bee70ac80
share repo for sessions storage 2023-03-21 11:28:58 +01:00
Nikita Galaiko
e79d377e3e
share repo for deltas storage 2023-03-21 11:01:10 +01:00
Nikita Galaiko
3009958218
arc protect 2023-03-21 10:53:15 +01:00
Nikita Galaiko
244cf5850d
cache sessions list 2023-03-21 08:57:38 +01:00
Nikita Galaiko
a5062ada92
extract session flush to store 2023-03-21 08:41:44 +01:00
Nikita Galaiko
06371e4c36
extract create current session to store 2023-03-21 07:59:56 +01:00
Nikita Galaiko
9dfe98cef2
cache list_files 2023-03-20 17:27:55 +01:00
Nikita Galaiko
e7adcdd017
extract list_session_files to storage 2023-03-20 17:27:54 +01:00
Nikita Galaiko
0ffbcd5d13
extract sessions storage 2023-03-20 16:21:25 +01:00
Nikita Galaiko
252f589f44
async user image fetching 2023-03-20 15:41:17 +01:00
Scott Chacon
e1239d4b08 Merge branch 'master' of github.com:gitbutlerapp/gitbutler-client 2023-03-20 15:14:32 +01:00
Scott Chacon
16601f31d3 Improve git committing with new screen
New commit screen with diffs pulled from Rust and summarizable by gpt4.
2023-03-20 15:12:22 +01:00
Nikita Galaiko
29a546a301
another syntax for async aommand 2023-03-20 15:11:19 +01:00
Nikita Galaiko
c3ee365817
cache persistent deltas 2023-03-20 15:10:54 +01:00
Scott Chacon
ffe56ab14c move to Git event on git data, not session event 2023-03-20 14:59:36 +01:00
Nikita Galaiko
d9e13a784a
split deltas store into persistent and current 2023-03-20 14:31:23 +01:00
Nikita Galaiko
6299a97e73
extract deltas storage 2023-03-20 13:55:12 +01:00
Scott Chacon
1210d35288 Add working directory diff support and auto generate commit messages
This update enables the generation of a working directory diff and returns a Git commit message based on the diff changes. It includes changes to the API, Tauri, and frontend code. Notable modifications include:

- Added `git_wd_diff` function to Tauri `src/main.rs`
- Modified `Repository` struct, added `wd_diff` method to `src/repositories/repository.rs`
- New `commit` function added to `src/lib/api.ts`
- Added `fetchCommitMessage` function in `src/routes/projects/[projectId]/+page.svelte`
- Minor UI adjustments in `src/routes/projects/[projectId]/player/+page.svelte`

Overall, this commit improves user experience by automatically generating commit messages based on the changes made in the working directory.
2023-03-18 07:52:58 +01:00
Nikita Galaiko
08f0e286a2
extract repoisitories storage 2023-03-17 16:28:49 +01:00
Nikita Galaiko
fa06ec611d change index 2023-03-17 15:45:19 +01:00
Nikita Galaiko
082a30a543 change naming 2023-03-17 15:45:19 +01:00
Nikita Galaiko
d4d1a8e3fb return highlighted result entries from search 2023-03-17 15:45:19 +01:00
Nikita Galaiko
3743522eed listDelas: allow filtering by file path 2023-03-17 15:45:19 +01:00
Nikita Galaiko
7730653aca
more session tests to ensure wd structure 2023-03-15 10:56:25 +01:00
Nikita Galaiko
a6ae15ce44
more tests to ensure wd structure 2023-03-15 10:54:25 +01:00
Nikita Galaiko
711c10ee25
make sure session/wd git-tree only contains wd files 2023-03-15 10:07:39 +01:00
Nikita Galaiko
9dd6141dc4
correctly build nested trees 2023-03-14 20:00:44 +01:00
Nikita Galaiko
3a528c96f6
when writing gb/wd, make sure directory is there [2] 2023-03-14 16:12:10 +01:00
Nikita Galaiko
98d945fa43
when writing gb/wd, make sure directory is there 2023-03-14 16:10:48 +01:00
Nikita Galaiko
e378943c69
log::info instead of println 2023-03-14 13:00:07 +01:00
Nikita Galaiko
c00df16083
update current session activity on .git/logs/HEAD update 2023-03-14 12:51:57 +01:00
Nikita Galaiko
1f4c96f827
add git watcher 2023-03-14 11:31:05 +01:00
Nikita Galaiko
9958730c2f
init project in add_project handler 2023-03-14 09:45:30 +01:00
Nikita Galaiko
cb93ce5ce1 fix some types 2023-03-14 09:04:56 +01:00
Nikita Galaiko
e38c7481ef keep processed files inside session/wd 2023-03-14 09:04:56 +01:00
Nikita Galaiko
3a95bc792d use fslock for syncronization 2023-03-14 09:04:56 +01:00
Nikita Galaiko
436737036b sync wathcers with mutex 2023-03-14 09:04:56 +01:00
Kiril Videlov
38860ded04 optional time constraint when listing sessions. project home loads only last 4 days 2023-03-13 20:42:41 +01:00
Kiril Videlov
14418509c3 more async tauri commands 2023-03-13 19:33:29 +01:00
Kiril Videlov
4ecb16718b AAAAAAAAAAAAAAAA FOUND ITTTTTTTTTTTTTTTTT 2023-03-13 17:54:01 +01:00
Scott Chacon
6e0358baae only local branches, scroll into view 2023-03-13 13:45:02 +01:00
Scott Chacon
fb2a39b280 get branch name, dont actually switch branches 2023-03-13 13:45:02 +01:00
Scott Chacon
e391688624 got it to switch a branch 2023-03-13 13:45:02 +01:00
Scott Chacon
524591821a more general palette code, dedupe some main.rs code, start of branch switcher 2023-03-13 13:45:02 +01:00
Scott Chacon
7dbd9c5511 try automatic pushing 2023-03-12 06:34:15 -07:00
Scott Chacon
1707508b7e first commit with the GitButler client. :) 2023-03-11 08:53:07 -08:00
Scott Chacon
536621d54e start of a command palette 2023-03-10 07:22:32 -08:00
Nikita Galaiko
13456d0398 make player deltas-based 2023-03-10 14:26:09 +01:00
Nikita Galaiko
47ea43fb66
add unit test for player-like flow 2023-03-10 10:03:03 +01:00
Nikita Galaiko
8ffcfdc3c9
log project id in wathcers 2023-03-10 10:03:02 +01:00
Scott Chacon
2d9e738038 v1 git status 2023-03-09 11:24:21 -08:00
Nikita Galaiko
12ac983978
more aggressive file event kind filter 2023-03-09 13:58:09 +01:00
Kiril Videlov
c29439b0e5 Revert "temporary fix for duplicated deltas issue"
This reverts commit 6bb919b238.
2023-03-09 13:44:49 +01:00
Nikita Galaiko
0d579f3d2c
add some more watchers tests 2023-03-09 13:06:26 +01:00
Nikita Galaiko
6bb919b238
temporary fix for duplicated deltas issue 2023-03-09 09:51:38 +01:00
Nikita Galaiko
76773aec0b
drop difference 2023-03-08 17:22:42 +01:00
Nikita Galaiko
5b146d90f0
test multi char operations 2023-03-08 16:59:52 +01:00
Nikita Galaiko
3ae62f29e0 fix tests 2023-03-07 17:10:48 +01:00
Nikita Galaiko
5dfde966ab replace diffing library 2023-03-07 17:10:48 +01:00
Nikita Galaiko
b3c29abe00
use full diff when indexing 2023-03-07 13:11:03 +01:00
Kiril Videlov
efc07705e4 release the lock when there are broken projects 2023-03-07 10:18:56 +01:00
Kiril Videlov
96e4f16703 dont panic on search error 2023-03-07 10:05:27 +01:00
Kiril Videlov
04734efcf4 lower the session related logging output 2023-03-07 09:46:17 +01:00
Nikita Galaiko
0aefc8be61 support time ranges 2023-03-06 15:41:11 +01:00
Nikita Galaiko
c6c3c3feb5 add limit & offset to the query 2023-03-06 15:41:11 +01:00
Nikita Galaiko
cfd151fcb9 sort results by timestamp 2023-03-06 15:41:11 +01:00
Nikita Galaiko
b1fc932a81 add test search page 2023-03-06 15:41:11 +01:00
Nikita Galaiko
41842ee356 expose search api 2023-03-06 15:41:11 +01:00
Nikita Galaiko
3f65a3e72f store all projects in the same index 2023-03-06 15:41:11 +01:00
Nikita Galaiko
59eb1fd8a6 run indexing in a background 2023-03-06 08:23:15 +01:00
Nikita Galaiko
c0fd0bd729 implement reindexing 2023-03-06 08:23:15 +01:00
Nikita Galaiko
f78d5b104f check size when applying operations 2023-03-06 08:23:15 +01:00
Nikita Galaiko
887b676acb start recording new sessions 2023-03-06 08:23:15 +01:00
Nikita Galaiko
d962e2d7d1 rename git watcher -> session watcher 2023-03-06 08:23:15 +01:00
Nikita Galaiko
d85b40f472 make searcher non-project specific 2023-03-06 08:23:15 +01:00
Nikita Galaiko
d04df229d6 implmenet basic search 2023-03-06 08:23:15 +01:00
Nikita Galaiko
41824e2c85 add deltas index writer 2023-03-06 08:23:15 +01:00
Kiril Videlov
42067ca8cd update app min & max window sizes 2023-03-03 11:49:09 +01:00
Nikita Galaiko
7199dc7022
disable devtools in production 2023-03-01 12:06:11 +01:00
Nikita Galaiko
42d658abc5
allow production url in csp 2023-03-01 12:04:29 +01:00
Scott Chacon
04112d1078 this is not reachable anymore 2023-02-28 08:24:37 +01:00
Scott Chacon
c5fbf0c351 GB-59 hard code file mode 2023-02-28 08:24:37 +01:00
Nikita Galaiko
aaf89ed1ca use tauri thread management to run watchers 2023-02-27 10:44:12 +01:00
Nikita Galaiko
7dce627ba4 ignore files that we don`t have permissions to read 2023-02-27 10:11:09 +01:00
Nikita Galaiko
386edf4619 handle repos without any refs 2023-02-27 10:11:09 +01:00
Nikita Galaiko
1ff419a8c8 display errors when adding project 2023-02-27 10:11:09 +01:00
Nikita Galaiko
3da4f6247b
more logs for watcher loops 2023-02-24 15:27:11 +01:00
Nikita Galaiko
b24c646ec7
move session activity update into deltas::write 2023-02-24 14:56:10 +01:00
Nikita Galaiko
f6add083a3
print status error 2023-02-24 13:33:06 +01:00
Nikita Galaiko
e549e99c05 cache images locally 2023-02-24 13:29:09 +01:00
Nikita Galaiko
0c2999d909
if failed to push to remote, just log 2023-02-24 10:14:47 +01:00
Nikita Galaiko
56ca8d5be4
correctly print anyhow errors 2023-02-23 16:49:06 +01:00
Nikita Galaiko
a9a8ab8fc0
more deltas tests 2023-02-23 08:33:00 +01:00
Nikita Galaiko
89b2b15a2a
fix operations calculation bug 2023-02-23 08:28:11 +01:00
Nikita Galaiko
22f65ec2a1
fix server-side event 2023-02-22 17:35:07 +01:00
Nikita Galaiko
22489a6b90
log event sent message 2023-02-22 17:27:58 +01:00
Nikita Galaiko
97048983cf
drop yrs 2023-02-22 17:16:10 +01:00
Nikita Galaiko
be7eda4047
better logs 2023-02-22 16:32:23 +01:00
Nikita Galaiko
8903efd56a
bring back log colors 2023-02-22 16:22:00 +01:00
Nikita Galaiko
9b80f277ae
when production, only log to file 2023-02-22 16:19:12 +01:00
Nikita Galaiko
0ccc37c0ef
do not fail session creation if session dir exists 2023-02-22 14:53:25 +01:00
Nikita Galaiko
180d3c412e
set window focus when showing 2023-02-22 14:13:35 +01:00
Nikita Galaiko
cf20990218
conditional compilation for window builder 2023-02-22 13:38:04 +01:00
Nikita Galaiko
775d1cd1f3
only apply macos specific window things on macos 2023-02-22 13:20:19 +01:00
Nikita Galaiko
4d3f64d6d9
send user info to sentry 2023-02-22 12:55:25 +01:00
Nikita Galaiko
93975be057
set correct version for sentry 2023-02-22 12:24:50 +01:00
Nikita Galaiko
3c42525a13
programmaticaly control window and channel events 2023-02-22 11:49:41 +01:00
Nikita Galaiko
f4a24faa29
allow to only request some session files 2023-02-22 08:47:03 +01:00
Nikita Galaiko
40d3961def
change activation policy only on macos 2023-02-21 17:09:08 +01:00
Nikita Galaiko
55fff0677f
more efficient session lookup 2023-02-21 16:41:12 +01:00
Nikita Galaiko
8f4605f6e1
when adding previously deleted project, restore it 2023-02-21 15:37:50 +01:00
Nikita Galaiko
85f3c82e53
do not display app in the doc 2023-02-21 14:51:03 +01:00
Nikita Galaiko
b4433044f9
bring window to the front when show clicked 2023-02-21 14:37:52 +01:00
Nikita Galaiko
8f49f71c49
fix session test name 2023-02-21 14:33:36 +01:00
Nikita Galaiko
b6482b4347
make sure session exists when writing deltas 2023-02-21 14:32:52 +01:00
Nikita Galaiko
1c8d4577f7
fix git log 2023-02-21 13:44:39 +01:00
Nikita Galaiko
bc6edf2edf
log that git wather started 2023-02-21 13:38:42 +01:00
Nikita Galaiko
9c0228346d
derive commit author from user 2023-02-21 12:11:47 +01:00
Nikita Galaiko
32329ecb81
update session lastTs before flushing 2023-02-21 12:02:17 +01:00
Nikita Galaiko
290d80ca1a
handle missing ctime [2] 2023-02-20 15:54:34 +01:00
Nikita Galaiko
5dc7a51b98
handle missing ctime 2023-02-20 15:35:21 +01:00