Commit Graph

213 Commits

Author SHA1 Message Date
leo
59758903b3 refactor: rewrite the way to load commit message from $GIT_DIR for in-progress action
Signed-off-by: leo <longshuang@msn.cn>
2025-11-17 16:49:55 +08:00
leo
b09d7b86e6 refactor: rewrite in-progress context and clear commit message to reload it from MERGE_MSG
Signed-off-by: leo <longshuang@msn.cn>
2025-11-17 16:39:07 +08:00
leo
562f21df6f enhance: always try to load commit message from $GIT_DIR/MERGE_MSG (#1915)
Signed-off-by: leo <longshuang@msn.cn>
2025-11-13 18:12:59 +08:00
leo
4d456f8558 enhance: clear updating workingcopy timer while calling MarkBranchesDirtyManually
Signed-off-by: leo <longshuang@msn.cn>
2025-11-06 19:29:00 +08:00
leo
fa97d44e60 feature: supports to open file with detected external tools (#1882)
Signed-off-by: leo <longshuang@msn.cn>
2025-10-30 18:19:08 +08:00
leo
81f622b4b1 enhance: save commit message to .git/MERGE_MSG while closing repo with in-progress state (#1795)
Signed-off-by: leo <longshuang@msn.cn>
2025-10-24 10:23:36 +08:00
leo
99389dba89 refactor: always load commit message from .git/MERGE_MSG or .git/rebase-merge/message when there is some operation in progress (#1795)
Signed-off-by: leo <longshuang@msn.cn>
2025-10-23 11:46:36 +08:00
leo
e076cbf6a5 refactor: remove ViewModels.WorkingCopy.StashAllAsync method
Signed-off-by: leo <longshuang@msn.cn>
2025-09-02 10:21:42 +08:00
leo
cd80a55629 refactor: file-system watcher
- Use `System.Threading.Interlocked` to read/write data
- Use `SourceGit.Models.Watcher.LockContext` to release watcher's lock
- New way to detect file changes in submodules
- Manually update stashes after `git stash` command complete (#1760)

Signed-off-by: leo <longshuang@msn.cn>
2025-09-01 17:39:07 +08:00
leo
6dd540b09c refactor: Models.CommitCheckPassed is unnecessary in async mode
Signed-off-by: leo <longshuang@msn.cn>
2025-08-29 18:21:17 +08:00
leo
6f24d660c6 fix: rewrite the ConfirmEmptyCommit dialog to avoid pressing the same button more than one time (#1777)
Signed-off-by: leo <longshuang@msn.cn>
2025-08-29 18:11:43 +08:00
leo
50211312d5 feature: supports --no-verify option while committing (#1762)
Signed-off-by: leo <longshuang@msn.cn>
2025-08-26 16:36:52 +08:00
leo
291e32e36f enhance: cancel the running event when a new same refresh event occurs (#1760)
Signed-off-by: leo <longshuang@msn.cn>
2025-08-24 11:10:53 +08:00
leo
63096ebd55 code_review: PR #1756
- Keep translation keys in order
- Add missing translations for zh_CN and en_US
- Rename `WorkingCopy.ClearCommitMessageHistory` to `WorkingCopy.ClearCommitMessageHistoryAsync`
- It's not necessary to use `Dispatcher.UI.Invoke` in event callback

Signed-off-by: leo <longshuang@msn.cn>
2025-08-22 15:57:28 +08:00
ギャップ
c40296946d feat: add clear history button to commit message template/history dropdown (#1756)
* feat: add clear history button to commit message template/history dropdown

- Added ClearCommitMessageHistory method to WorkingCopy ViewModel with user confirmation
- Added "Clear History" menu item to commit message picker dropdown
- Implemented thread-safe collection clearing using Dispatcher.UIThread.Invoke
- Added localization support for clear history button and confirmation dialog
- Follows existing codebase patterns for destructive operations with async/await

* fix: dotnet format
2025-08-22 15:44:38 +08:00
leo
898528fc92 fix: unable to save selected staged changes to patch
Signed-off-by: leo <longshuang@msn.cn>
2025-08-20 14:25:44 +08:00
leo
1522da89a2 refactor: more changes to use async methods
Signed-off-by: leo <longshuang@msn.cn>
2025-08-14 16:10:09 +08:00
leo
ce23e8cb20 refactor: use async methods to commit changes
Signed-off-by: leo <longshuang@msn.cn>
2025-08-14 12:53:16 +08:00
leo
bd81ccd94f fix: main thread deadlock cause by calling .Result directly (#1720)
Signed-off-by: leo <longshuang@msn.cn>
2025-08-12 16:03:58 +08:00
leo
ab14e818be refactor: simplify the invocation of external merge/diff tool
Signed-off-by: leo <longshuang@msn.cn>
2025-07-28 14:18:34 +08:00
leo
c7a01f646f fix: GetCanStagedChanges should allow stage conflict that has been resolved manually (#1621)
Signed-off-by: leo <longshuang@msn.cn>
2025-07-25 17:35:32 +08:00
leo
5339adec65 refactor: use async instead of Task.Run
Signed-off-by: leo <longshuang@msn.cn>
2025-07-23 17:15:16 +08:00
leo
6b9ba599d2 refactor: move context menu creation from ViewModels to Views (PART 10)
Signed-off-by: leo <longshuang@msn.cn>
2025-07-23 17:01:22 +08:00
leo
c08f15827f refactor: move context menu creation from ViewModels to Views (PART 9)
Signed-off-by: leo <longshuang@msn.cn>
2025-07-23 16:15:43 +08:00
leo
8989da7538 enhance: supports commit template with relative path (#1590)
Co-authored-by: King <badly1984@hotmail.com>
Signed-off-by: leo <longshuang@msn.cn>
2025-07-18 10:19:49 +08:00
leo
6ae8c7c759 code_style: move class extensions to App.Extensions.cs to use these extensions anywhere
Signed-off-by: leo <longshuang@msn.cn>
2025-07-11 18:00:21 +08:00
leo
bfd639c001 enhance: external merge tool can only used for both-added or both-modified conflict(s)
Signed-off-by: leo <longshuang@msn.cn>
2025-07-11 14:22:08 +08:00
leo
aa803c3141 code_review: PR #1555
- Remove unnecessary reference to `System.Linq`
- Stop to auto-stage and commit when there is unsolved conflict(s)

Signed-off-by: leo <longshuang@msn.cn>
2025-07-11 09:59:19 +08:00
Sina Hinderks
7aa008372b fix: prevent staging conflicted files (#1555)
It was possible to stage a file with conflicts (double tap, space,
enter, or a stage button).  As a result it would no longer be shown as
conflicted, and the user could no longer solve the conflict in any way
(use theirs, use mine, or execute merge tool), not even after unstaging
again.

Now conflicted files are ignored when staging.
2025-07-11 09:43:49 +08:00
leo
7f838f1f88 feature: add hotkeys to open file with default editor
Signed-off-by: leo <longshuang@msn.cn>
2025-07-08 20:05:37 +08:00
leo
92fb4c8625 feature: add hotkeys to copy file path
Signed-off-by: leo <longshuang@msn.cn>
2025-07-08 17:54:15 +08:00
Nathan Baulch
f2778ee07a ux: hotkey tag on external merger menu items (#1547) 2025-07-08 16:30:49 +08:00
leo
170308e84f code_review: PR #1541
Signed-off-by: leo <longshuang@msn.cn>
2025-07-08 14:36:55 +08:00
oikku
4ef3ed8740 enhance: supports to open Blame (HEAD only) from LOCAL CHANGES (#1541) 2025-07-08 14:15:50 +08:00
leo
8f8ed68744 fix: do not change original commit message
Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 18:04:27 +08:00
leo
c1d6b388f7 code_review: PR #1540
- Fix the issue that `StringReader` traits all outputs of `git ls-tree -z` command as a single-line
- Remove unused namespace using

Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 17:52:19 +08:00
Nathan Baulch
5c9d96fe7a refactor: streamline certain string operations (#1540) 2025-07-07 17:36:41 +08:00
leo
b2aac68600 refactor: rewrite integration for git difftool and git mergetool command
Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 17:16:22 +08:00
leo
8277d7fc1b enhance: open external tool to merge conflicts instead of viewing diff
Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 15:49:02 +08:00
leo
4f4b90d424 ux: re-order context menu items
Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 15:09:05 +08:00
Nathan Baulch
6d068157b4 enhance: diff with merger option on local changes (#1534) 2025-07-07 14:53:09 +08:00
leo
b85f100d84 code_review: PR #1532
- remove `MenuItemExtension`
- display `Tag` as hotkey tips when `InputGesture` is null
- remove `Avalonia.Input` reference in `ViewModels`
- rewrite `InteractiveRebase` view to avoid using `Tag` in menu item

Signed-off-by: leo <longshuang@msn.cn>
2025-07-07 12:44:31 +08:00
Nathan Baulch
dd3c658a0d ux: show a few more shortcuts on menu items (#1532) 2025-07-07 11:38:06 +08:00
Nathan Baulch
3583527026 code_style: general cleanup (#1525) 2025-07-05 15:58:16 +08:00
leo
cdb84c7c43 typo: ShowDailog -> ShowDialog
Signed-off-by: leo <longshuang@msn.cn>
2025-07-04 15:36:45 +08:00
leo
a6ebc1502c refactor: show child-window and modal dialog
Signed-off-by: leo <longshuang@msn.cn>
2025-07-04 14:49:04 +08:00
leo
18b9d982ce refactor: remove ConfigureAwait when we need to go back to UIThread after it
Signed-off-by: leo <longshuang@msn.cn>
2025-07-03 18:42:56 +08:00
leo
40765826ce code_review: PR #1492
- Remove all synchronous method in commands
- `Command.ReadToEndAsync` now is protected method
- Rename `ResultAsync` to `GetResultAsync`
- Call `ConfigureAwait(false)` when there's no context

Signed-off-by: leo <longshuang@msn.cn>
2025-07-03 17:30:06 +08:00
Nathan Baulch
463e304491 feature: async (#1492)
* Async command methods
* Async `Task.Run` where possible
* Remove redundant `Task.Run` in `Sure` methods
* Remove leftover braces and reformat
* Async event handlers as needed
2025-07-03 15:38:39 +08:00
leo
3fe72e919c code_review: PR #1497
Signed-off-by: leo <longshuang@msn.cn>
2025-07-03 11:15:14 +08:00