Commit Graph

546 Commits

Author SHA1 Message Date
Nikita Galaiko
f2024dc578 bubble up hunks that change size 2023-06-30 15:32:28 +02:00
Nikita Galaiko
183940072d fix tests 2023-06-30 14:30:52 +02:00
Nikita Galaiko
13ef7435b4 bubble new hunks and files up 2023-06-30 14:15:12 +02:00
Nikita Galaiko
b3cc802f1a explicitly move and always update hunks 2023-06-30 14:15:12 +02:00
Scott Chacon
8cc1d7b3f5
Merge status (#554)
* show merge status of virtual branches
* add merge conflict list and tests and fix uncommitted work
2023-06-30 11:27:54 +02:00
Kiril Videlov
c090837b17 use default target 2023-06-30 11:23:49 +02:00
Kiril Videlov
e0006dbf43 formatting 2023-06-30 11:23:49 +02:00
Kiril Videlov
4092554bdf Pushing of vBranches 2023-06-30 11:23:49 +02:00
Nikita Galaiko
1df31ec1ee rm move_files 2023-06-30 09:13:22 +02:00
Nikita Galaiko
fd7d2f9d87 remove selected branch id 2023-06-30 08:11:23 +02:00
Nikita Galaiko
ace5b8468f store branch order 2023-06-30 08:11:23 +02:00
Nikita Galaiko
785013d611 create branch with ownership 2023-06-30 08:11:23 +02:00
Nikita Galaiko
b7c9940eb3 rm move_files api 2023-06-30 08:11:23 +02:00
Nikita Galaiko
47fc2924ab fix clippy warnings 2023-06-29 11:47:23 +02:00
Nikita Galaiko
df935248c0 support updating branch ownership 2023-06-29 11:33:20 +02:00
Nikita Galaiko
87476939a8 make branch ownerhip order matter 2023-06-29 11:33:20 +02:00
Scott Chacon
4480f690fe
add placeholder for push, fix checkout (#548) 2023-06-29 08:59:41 +02:00
Scott Chacon
4a0bcb8665
Apply and Unapply Virtual Branches (#544)
* apply and unapply branches
* show unapplied branches in vbranch list
* pick random branch if selected isnt applied
2023-06-29 07:48:48 +02:00
Nikita Galaiko
cac92dd027 sort new hunks as they come in 2023-06-28 16:55:04 +02:00
Nikita Galaiko
8cbef59988 rm hunk timestamps 2023-06-28 13:19:50 +02:00
Nikita Galaiko
511c5b6124 more tests for moving hunks 2023-06-28 13:19:50 +02:00
Nikita Galaiko
4dd70ee5b1 refactor ownership types 2023-06-28 13:19:50 +02:00
Nikita Galaiko
201e666fe3 store timstamp in a hunk 2023-06-28 13:19:50 +02:00
Scott Chacon
045ddbf16e
Delete (unapply) branch when it's integrated upstream (#515)
* delete (unapply branch when the head matches the merge result)
* add debug stuff, create new branch if none applied
* if there are modified files on a vbranch, dont unapply it
* fix args in the wrong order
2023-06-28 12:40:10 +02:00
Nikita Galaiko
daad336602 separate hunks type 2023-06-27 12:28:08 +02:00
Nikita Galaiko
5553659849 check session/meta when asserting session existance 2023-06-27 11:50:35 +02:00
Nikita Galaiko
c30623f15a detect changed hunks 2023-06-27 10:33:35 +02:00
Nikita Galaiko
9b5e6eec2b protect vbranches with a semaphore 2023-06-26 12:29:50 +02:00
Nikita Galaiko
77c00a0723 fix warnings 2023-06-26 08:59:28 +02:00
Scott Chacon
a090263b95
Update a branch name (#514)
Way to update a branch name
2023-06-25 13:01:15 +02:00
Scott Chacon
619384405f
Update Target Branch (#510)
This PR implements a way to update an out of date target branch.

This adds logic to see if the target branch is out of date (if say, origin/master has commits that are not on target.sha) and will show in the UI that the frozen target branch is behind. If this happens, it adds a button to update, which will call an update_branch_target function in Rust.

This function will:

* Check that there is in fact a new commit on the target branch
* Try to merge that new head commit into your current working directory, bailing if it cannot
* If that succeeds (the new upstream can merge cleanly with all your vbranch content), it will then update all your virtual branches
* If the vbranch has no commits, it simply updates the head so the diffs work properly again
* If the vbranch has commits, it will merge the new head into the virtual branch head and write the new merge commit to the vbranch commit list. omg.

The patch also:
* Adds some tests for updating the target
* Calculates merge base on setup
* Only assigns stuff to active branches
* Adds a reset command to make all branches inactive for testing
2023-06-24 21:09:03 -07:00
Scott Chacon
e46f3be1a4
Virtual Commits (#507)
* add virtual commits to vbranches, return and render them
* remove file changes from status
2023-06-24 05:07:16 -07:00
Nikita Galaiko
fe44d9ae30 fix old way of moving 2023-06-22 15:37:20 +02:00
Nikita Galaiko
c3248bfee4 assert file format 2023-06-22 15:37:20 +02:00
Nikita Galaiko
b49031b2f2 avoid flakiness 2023-06-22 14:16:44 +02:00
Nikita Galaiko
0b00d67e8f cargo fmt 2023-06-22 14:16:44 +02:00
Nikita Galaiko
28383a6a7e allow to move hunks 2023-06-22 14:16:44 +02:00
Nikita Galaiko
6ce2188142 ownerhip math does not split anymore 2023-06-22 14:16:44 +02:00
Scott Chacon
971059e179
Add basic committing to the client (#484)
* move commit to virtual_branches code, add bridge for JS
* actually run commit() from the client
* simple remote branches list, for later
* better remote branches
* adds more data to remote branches
* test file movement
* added move_files test and remove path from all branches that match
* fix move with duplicate entries
2023-06-22 09:29:17 +02:00
Nikita Galaiko
e839000a0b fix butler status 2023-06-22 08:03:09 +02:00
Nikita Galaiko
4722b1ac32 cargo fmt 2023-06-21 16:39:58 +02:00
Nikita Galaiko
17b45c9a8b test file move 2023-06-21 16:39:58 +02:00
Nikita Galaiko
5be88e8913 remove unused code 2023-06-21 16:39:58 +02:00
Nikita Galaiko
de375879c8 minor rename 2023-06-21 16:39:58 +02:00
Nikita Galaiko
16b98c66d1 use range for the hunk id 2023-06-21 16:39:58 +02:00
Nikita Galaiko
b537aa2bc2 add ownersip math 2023-06-21 16:39:58 +02:00
Nikita Galaiko
d7792a2954 use ownership type 2023-06-21 16:39:58 +02:00
Scott Chacon
7d2f6a4932
remove this duplication (#493) 2023-06-21 15:47:29 +02:00
Nikita Galaiko
d64c2b9bef fix hunk calculation 2023-06-21 15:31:29 +02:00
Kiril Videlov
0570679887 default value if theres nothing? 2023-06-21 15:31:29 +02:00
Scott Chacon
40351431c8 fix hunks 2023-06-21 15:31:29 +02:00
Nikita Galaiko
977c70a802 less dev logs 2023-06-21 13:00:36 +02:00
Nikita Galaiko
7074f735d7 sanity virtual branch tests 2023-06-21 11:10:18 +02:00
Scott Chacon
645bef29b6
Merge branch 'master' into sc-vbranch-commits 2023-06-21 10:50:46 +02:00
Scott Chacon
73e9a8ca7c oops. lint 2023-06-21 10:46:58 +02:00
Scott Chacon
da2ffb795d send mtime as hunk modified time (I think) 2023-06-21 10:38:37 +02:00
Nikita Galaiko
e3a7c73bfb branch: types for ownership 2023-06-21 10:23:07 +02:00
Scott Chacon
a4a4fc39a7 fix weird hunk thing 2023-06-21 10:13:44 +02:00
Scott Chacon
2f58d4439a change how we are getting paths 2023-06-21 09:42:07 +02:00
Scott Chacon
1cdd19f073 move files between lanes 2023-06-21 09:42:07 +02:00
Nikita Galaiko
662d40044b use real function via butler 2023-06-21 09:21:59 +02:00
Nikita Galaiko
1cf2e6af96 handle move files corner cases 2023-06-21 09:21:59 +02:00
Nikita Galaiko
c9c555fa77 simplify diff processing 2023-06-21 09:21:59 +02:00
Nikita Galaiko
36c4ad8673 error handling 2023-06-21 09:21:59 +02:00
Nikita Galaiko
a57dcc7dc3 remove extra fields 2023-06-21 09:21:59 +02:00
Nikita Galaiko
ad9a024b7a butler info 2023-06-20 14:56:50 +02:00
Nikita Galaiko
a674fec718 fix warnings 2023-06-20 14:51:08 +02:00
Nikita Galaiko
ef40ffe35c remove deltas logic from vbranches 2023-06-20 14:51:08 +02:00
Scott Chacon
e59691d15f
CLI and APIs binary for simple virtual branch manipulation (#425)
Here we're squash-merging a branch that adds a new cli tool and some basic APIs for manipulating the data format of virtual branches as used by the frontend.

* simple cli for showing data, including vbranches
* can set and show the remote target default
* basic list, new and move in API for frontend

---------

Co-authored-by: Kiril Videlov <kiril@videlov.com>
Co-authored-by: Nikita Galaiko <nikita@galaiko.rocks>
2023-06-20 14:33:02 +02:00
Mattias Granlund
561011fff5 Initialise with system theme in Rust code 2023-06-19 12:19:08 +01:00
Nikita Galaiko
38fb0132ec update dependencies 2023-06-16 09:29:26 +02:00
Nikita Galaiko
d0a83e97cf small events refactor 2023-06-15 16:20:31 +02:00
Nikita Galaiko
da76e26d7f flush/restore branches 2023-06-15 14:38:07 +02:00
Nikita Galaiko
4a18b2200e vbranches: move deltas distribution to handler 2023-06-15 09:14:52 +02:00
Kiril Videlov
8ec1370043 setup access to branch testdata resource json file 2023-06-14 12:12:43 +02:00
Nikita Galaiko
8198de686a tests and fixes for virtual branch writer 2023-06-08 13:54:45 +02:00
Nikita Galaiko
d72e1967ee do not try to read current as a branch 2023-06-08 13:54:45 +02:00
Nikita Galaiko
6d66b4b93d Reader::is_dir 2023-06-08 13:54:45 +02:00
Nikita Galaiko
c3a3834443 use Project::try_from(git2::Repository) 2023-06-08 13:54:45 +02:00
Nikita Galaiko
37fb566f89 rust kung fu for readers 2023-06-08 13:54:45 +02:00
Nikita Galaiko
97ecc9eb96 deltas writer writes virtual branches also 2023-06-08 13:54:45 +02:00
Nikita Galaiko
ac9d06deb0 functions to split deltas into virtual branches 2023-06-08 13:54:45 +02:00
Nikita Galaiko
695ef1a00e bump git2 2023-06-07 14:27:12 +02:00
Nikita Galaiko
c186dea4af watcher handler run async 2023-06-07 13:58:49 +02:00
Nikita Galaiko
ad675c7292 vb: writer, reader for selected branch 2023-06-07 12:46:54 +02:00
Nikita Galaiko
891ca38c30 vb: separate target reader 2023-06-07 12:46:54 +02:00
Nikita Galaiko
6ee2a8c087 init bookmarks reader/writer/iterator 2023-06-05 16:15:43 +02:00
Nikita Galaiko
83be7af9f4 align session writer signature 2023-06-05 10:43:56 +02:00
Nikita Galaiko
7958ea38fa extract bookmark writer 2023-06-05 10:43:56 +02:00
Nikita Galaiko
6167ee0a31 extract pty writer 2023-06-05 10:43:56 +02:00
Nikita Galaiko
de30d69128 extract deltas writer 2023-06-05 10:43:56 +02:00
Nikita Galaiko
0c7c444bb5 improve reindex detection for bookmarks 2023-06-02 14:31:35 +02:00
Nikita Galaiko
89cfe4bc9d watcher/handler: log events 2023-06-02 14:31:35 +02:00
Nikita Galaiko
2f61c409eb make a separate reindex event 2023-06-02 14:31:35 +02:00
Nikita Galaiko
6744016ffe add basic dispatchers tests 2023-06-02 14:31:35 +02:00
Nikita Galaiko
fef2f97b20 rm crossbeam_channel dependency 2023-06-01 16:02:10 +02:00
Nikita Galaiko
a8fa48c929 fully async dispatcher 2023-06-01 15:43:34 +02:00
Nikita Galaiko
6efd814c6e simplify dispatcher 2023-06-01 14:59:06 +02:00
Nikita Galaiko
705e0b4ffb more logs to file watcher 2023-06-01 09:15:24 +02:00
Nikita Galaiko
63a576d5a6 make file_change and ticket async 2023-05-31 11:35:04 +02:00