Commit graph

456 commits

Author SHA1 Message Date
leo
ef9396bf57
code_review: PR #428
* remove unused namespace using
* remove the duplicated menu seperator between `Open in Merge Tool` and `Reveal in File Explorer`
* keep the same menu item orders both in changes and revision files
2024-08-30 21:38:43 +08:00
Yitzchak Ben-Ezra
8c9e8e5dbc Reset to Parent Revision
* support reset to parent revision for Added files too
* support reset to parent revision in Files tab
* support reset to parent revision in Changes - now supports Renamings too

now it behaves more like git-extensions
2024-08-30 15:42:24 +03:00
leo
089f24b0d2
fix: can not create subgroups (#427) 2024-08-30 16:59:51 +08:00
leo
bb749f225d
enhance: auto create group by relative path when scanning repositories under default clone dir (#427) 2024-08-30 16:45:45 +08:00
leo
0d676fa3fb
feature: add a button to scan repositories under default clone dir (#427) 2024-08-30 16:14:10 +08:00
leo
d794a61196
enhance: remember the width of author name column in histories view (#425) 2024-08-29 10:17:22 +08:00
leo
a573436b67
feature: add supports for .webp image format (#421) 2024-08-28 18:58:01 +08:00
leo
3d57398d15
refactor: show statistics data by authors intead of committers 2024-08-28 18:38:29 +08:00
leo
c90abd0ca2
refactor: commit search
* no longer depends on the commits displayed in histories view
* limit the number of commits returned by all search methods to a maximum of 1000
2024-08-28 16:56:43 +08:00
leo
3ea80d99f1
code_style: remove unused namespace using and run dotnet format 2024-08-28 13:42:25 +08:00
leo
ce2340456e
feature: cherry-pick multiple commits (#418) 2024-08-28 11:26:00 +08:00
leo
bd6228bb26
refactor: using ListBox instead of DataGrid for commit list and remove dependency of Avalonia.Controls.DataGrid 2024-08-28 10:02:14 +08:00
leo
7776cda475
enhance: using lightweight ListBox instead of DataGrid to improve performance 2024-08-27 21:28:48 +08:00
leo
b16d267c9b
enhance: show git errors when failed to get the repository root dir of given path (#397) 2024-08-27 15:35:10 +08:00
Gadfly
5e02b08d48
fix: avoid crash when closing a repo which is deleted in file system 2024-08-27 10:51:15 +08:00
Gadfly
80559ce199
fix: try-catch OpenFolderPickerAsync to avoid crash when select a directory is NOT exist 2024-08-27 10:40:49 +08:00
leo
110858eaa2
enhance: mark working copy dirty after stash changes (#411) 2024-08-26 18:05:57 +08:00
leo
0074ea3c60
enhance: after commit mark branch dirty instead of only workcopy changes dirty (#411) 2024-08-26 18:03:17 +08:00
leo
ad0773be2f
enhance: avoid crashing when failed to create filesystem watcher for repository (#411) 2024-08-26 17:50:13 +08:00
leo
184c89ea1d
feature: supports squash multiple commits into selected commit (#408) 2024-08-25 21:39:59 +08:00
leo
4f8ccc4563
enhance: clean search filter when open Welcome page by closing the last opened repository tab 2024-08-25 20:51:53 +08:00
leo
585cf14162
enhance: new welcome page will clear the search filter before 2024-08-25 18:31:05 +08:00
leo
8f7567a060
feature: do NOT save visual diff context lines 2024-08-25 11:33:38 +08:00
leo
e9eb433471
ux: change default view mode in FileHistories to CHANGES 2024-08-25 11:20:10 +08:00
leo
9a68d70b29
feature: add a button in file histories view to reset selected file to selected commit 2024-08-24 12:06:38 +08:00
leo
db8de81120
refactor: rewrite file histories page to only focus on selected file (#403) 2024-08-24 11:36:02 +08:00
leo
854563ef41
enhance: support search repository path 2024-08-23 17:25:21 +08:00
leo
6ab0900b20
feature: add a button to see which branches and tags that contains selected commit (#388) 2024-08-23 16:52:55 +08:00
leo
4120331eda
refactor: there's no need to use AvaloniaList since we have replaced the TreeView with custom control 2024-08-23 11:24:31 +08:00
leo
c1ee47a79d
code_style: remove unused code and run dotnet format 2024-08-23 10:28:16 +08:00
leo
38e2e0f3f4
refactor: rewrite the welcome page since the original TreeView has many limitations (#391) 2024-08-22 21:10:23 +08:00
leo
af6d2cc725
fix: TreeView do NOT support NavigationMethod.Direction with invisible nodes (#391) 2024-08-22 18:11:25 +08:00
leo
8b469e7778
enhance: show untracked submodules in unstaged (#393) 2024-08-22 14:10:32 +08:00
leo
d5e51d1f32
feature: supports using native window frame on Linux (#390) 2024-08-22 12:37:26 +08:00
leo
323dc2e87f
code_review: PR #386
* rename `FirstParentFilterToggled` to `EnableFirstParentInHistories`
* remove `FirstParentFilterEnabled` from repo settings - it should not been saved
* move toggle button from repository toolbar to histories switcher
* tooltip translations
* new icon for `Icons.FirstParentFilter`
* extends commit graph to support `--first-parent` option
2024-08-21 19:45:32 +08:00
Yitzchak Ben-Ezra
d21cc2c96a first-parent-filter
need help in two issues:
1. use better icon - I just reused the Filter icon
2. lines of merge commits are still rendered - need to skip them since they don't link to any commit when filter enabled. I didn't manage to solve by my own right now
2024-08-21 09:04:35 +03:00
leo
191763e1d8
refactor: commit sha link in message (#382)
* remove the built-in commit issue tracker rule
* hyperlink in commit message now supports commit sha
2024-08-21 12:46:36 +08:00
leo
48adad53b4
feature: supports the commit hash issue tracker (#382)
Using issue tracker instead of built-in supported commit web link is based on the following reasons

* repo may have multiple remotes
* it is not good to open an context menu to choose which web to visit with multiple remotes
* some remote servers are not supported by this app
2024-08-21 10:44:07 +08:00
leo
d4a9343eaf
feature: add an option to enable --recurse-submodules=check on push (#345) 2024-08-20 15:20:58 +08:00
leo
d66053a42d
code_style: run dotnet format 2024-08-20 11:53:37 +08:00
leo
9057b71f2d
refactor: rewrite the font configuration (#366)
* input font name directly instead of a font picker because localized font family name is not supported by Avalonia
* fallback monospace font to default font
* remove unused code
2024-08-19 17:14:41 +08:00
leo
24dde77548
refactor: rewrite SourceGit.App 2024-08-19 12:49:29 +08:00
leo
84b8735d6c
code_style: run dotnet format 2024-08-18 23:14:44 +08:00
leo
7fe1df20cc
refactor: delay starting background tasks
* start background task only it is needed
* solve the problem that we can not use `ViewModels.Preference.Instance` until resource ready
* remove avatar sever settings
2024-08-18 23:10:54 +08:00
leo
6ac7ff2882
feature: add context menu item to checkout file with revision 2024-08-16 14:49:26 +08:00
leo
f71cd237cb
enhance: disable reset file to parent revision when it has been renamed
* new icon for checkout file
2024-08-16 11:55:36 +08:00
leo
addbb19728
feature: add context menu items to revision changes to reset (checkout) selected file to this revision or to it's first parent file version (#359) 2024-08-15 22:13:20 +08:00
leo
2ffc1b7178
enhance: manually stage all changes instead of using --all parameter in git commit 2024-08-15 20:09:38 +08:00
leo
b3327ebeb5
feature: supports commit template (#264) 2024-08-15 18:59:35 +08:00
leo
eaad685d06
fix: typo 2024-08-15 10:43:38 +08:00
leo
bf6ac4d20d
refactor: rewrite commit web link
* add support for Bitbucket
2024-08-15 10:39:31 +08:00
leo
ec14d9d533
refactor: remove binding errors 2024-08-13 20:40:05 +08:00
leo
abdf9d7e75
refactor: rewrite commit web links 2024-08-13 19:30:10 +08:00
leo
59a7c74fd1
fix: try to fix issue #338
* use custom control to draw badges
2024-08-13 18:24:28 +08:00
leo
f3406e93fc
fix: try to fix issue #338
* upgrade Avalonia to `11.1.3`
* use reactive property instead of simple getter
2024-08-13 17:38:58 +08:00
leo
34a598d421
feature: add commit web links (#357) 2024-08-13 17:15:17 +08:00
leo
a145d6e4c3
revert: remove issue link support in commit list
* improve render performance
* the links in commit list are very easy to click by mistake
2024-08-13 15:58:34 +08:00
Gadfly
04c9214fc0
fix: remove null-check of sshKey in EditRemote 2024-08-12 19:28:01 +08:00
leo
429e037adb
feature: use Ctrl + click to stash all changes automatically with default options (#351) 2024-08-12 15:11:49 +08:00
leo
965a4b21ae
feature: use Ctrl + click to start fetch/pull/push automatically with default options (#351) 2024-08-12 15:01:00 +08:00
leo
de2f70b8ea
feature: supports display tags in a tree (#350) 2024-08-11 18:12:58 +08:00
leo
ed2d3279e1
enhance: create branch on detached HEAD (#344) 2024-08-09 16:06:28 +08:00
leo
c596427380
fix: ahead/behind indicator of commit in histories view not updated after upstream changed 2024-08-09 15:17:04 +08:00
leo
3a54471ea5
refactor: rewrite branch auto-select after remote changed while pulling (#342) 2024-08-09 14:08:25 +08:00
leo
f98423b4c7
enhance: auto-select branch after remote changed while pulling (#342) 2024-08-09 14:03:31 +08:00
leo
a75d50bf97
refactor: rename Models.Watcher.UpdateSubmodules to Models.Watcher.SetSubmodules
* run `dotnet format`
2024-08-09 11:33:37 +08:00
leo
1fe2be11a7
refactor: rewrite submodule to support IsDirty state (#339) 2024-08-08 21:11:10 +08:00
leo
eb441852b0
enhance: allow edit commit message only with Amend (#336) 2024-08-08 15:18:35 +08:00
leo
6bd0920d71
feature: enable syntax highlighting in revision files view (#333) 2024-08-08 10:12:39 +08:00
leo
3609d46c1f
enhance: pop stash directly instead of apply+drop 2024-08-07 15:59:35 +08:00
leo
3bcf4e128e
enhance: get count of changed file (without untracked) directly (#316) 2024-08-07 15:52:58 +08:00
leo
8c16ded6bd
enhance: ignore untracked files when calculate local changes in checkout/create branch/pull (#316) 2024-08-07 15:38:18 +08:00
leo
71c2ad989b
enhance: do not call git add before git stash push when enable auto stash in checkout/create branch/pull (#316) 2024-08-07 15:20:21 +08:00
leo
3506df40e0
refactor: rewrite SetDetail for selected working copy changes (#328) 2024-08-06 17:17:41 +08:00
leo
e50db02ea8
fix: SelectedUnstaged and SelectedStaged should always be re-calculated (#328) 2024-08-06 17:08:01 +08:00
leo
f41f8266d2
ux: rebase popup should always be closed after started (#327) 2024-08-06 16:39:54 +08:00
leo
2e433aa278
refactor: set detail directly instead of reset selected changes 2024-08-06 14:36:58 +08:00
Gadfly
519d9c770c
fix: clean SelectedStaged after commit 2024-08-06 14:23:47 +08:00
leo
9bee51686a
feature: show issue link on commit list of histories view (#315) 2024-08-06 11:02:52 +08:00
leo
90e3abed8d
enhance: keep selection after unstaging (#320) 2024-08-06 10:42:55 +08:00
leo
dfd098e131
refactor: merge sourcegit.issuetracker.setting to sourcegit.settings. 2024-08-05 18:18:57 +08:00
leo
f754b2c63a
feature: supports issue tracker in commit message (#315) 2024-08-05 17:34:49 +08:00
leo
eb437df9fe
enhance: reduce commits loading time for interactive rebase 2024-08-01 18:05:58 +08:00
leo
7891b1124e
feature: asking to create local branch instead of checkout commit if some remote branch's HEAD is selected commit (#295) 2024-08-01 16:59:39 +08:00
leo
58357f031d
ux: add a new icon Icons.Stashes.Add 2024-08-01 11:45:20 +08:00
leo
ec6fe25e87
code_style: run dotnet format 2024-07-31 16:26:58 +08:00
leo
f55a576013
refactor: rewrite amend behaviour (#300)
* toggle amend will show changes in HEAD commit
* since discard is not compatible with staged changes in `amend` mode, we only allows user to discard unstaged changes
2024-07-31 12:04:52 +08:00
leo
7f8b8a19a0
feature: add auto complete box for searching commits by file path 2024-07-30 15:59:54 +08:00
leo
addfb449cc
feature: double click on commit (#295)
* when commit is current branch head, do nothing
* when commit is head of some local branch which is not current, try to checkout this branch
* otherwise, ask user should checkout selected commit as deteched
2024-07-30 11:47:58 +08:00
leo
b18f86dde9
fix: ui not updated after font changed 2024-07-30 10:29:07 +08:00
leo
aea61e0067
feature: add a toggle button in Preference dialog to only use monospace font in code editor (#292) 2024-07-29 20:20:27 +08:00
leo
efa02d9e96
ux: remove unnecessary controls 2024-07-29 15:07:41 +08:00
leo
29ce95e81e
enhance: new regex for tag name (#290)
* `(?!\.)` should not starts with `.`
* `(?!/)` should not starts with `/`
* `(?!.*\.$)` should not end with `.`
* `(?!.*/$)` should not end with '/`
* `(?!.*\.\.)` should not contains `..`
2024-07-29 14:38:09 +08:00
leo
2c9c36d832
enhance: support character '/' in tag name (#290) 2024-07-29 10:23:29 +08:00
leo
a3a3a0e4e9
enhance: add a button to clear git.http.proxy configuration 2024-07-28 10:11:10 +08:00
leo
20b45a1cf4
fix: when base is current worktree, the diff content of selected change is wrong
* remove warnings in JetBrains Rider (it seems JetBrains can NOT recognize Binding.TargetNullValue)
2024-07-27 21:35:57 +08:00
leo
4612cecf10
code_review: PR (#288)
* add missing translations and it's no need to add `OnPull` suffix since it already has a prefix `Text.Pull.`
* when enable fetching all branches of selected remote, use merge/rebase command instead of pull
* re-arrange orders of options in pull popup panel
* default enable `Fetch all branches`
2024-07-27 20:35:19 +08:00
leo
924a2ce935
Merge pull request #288 from RevenantX/fetch_all_on_pull_option
Add fetch all branches on pull option (acts like fetch+pull)
2024-07-27 19:58:03 +08:00
RevenantX
8a38b6afac Add fetch all branches on pull. (acts like fetch+pull) 2024-07-27 12:52:01 +03:00
leo
0b6cab41cf
enhance: refresh braches immediately after a branch has been added/deleted 2024-07-27 17:27:24 +08:00
leo
7bfb684bde
refactor: update submodule (#287) 2024-07-26 18:49:07 +08:00
leo
bab1a57480
refactor: using x:Int32 and x:String instead of custom types 2024-07-26 15:02:23 +08:00
leo
d3be3e938f
fix: wrong window margin and border if window is started as maximized 2024-07-26 12:01:09 +08:00
leo
85ce2f9cab
enhance: prevent property changed event if it is unchanged 2024-07-26 10:23:19 +08:00
leo
e9fa9a42ca
enhance: add Views.CommitRefsPresenter to draw commit's decorators (refs) directly 2024-07-25 15:31:16 +08:00
leo
31f918071f
refactor: repository configure
* move button to the left
* change view type from Popup to ChromelessWindow
2024-07-25 10:59:06 +08:00
leo
6f317039ab
feature: add CurrentBranch property to ViewModels.Repository 2024-07-24 15:36:26 +08:00
leo
f8caeceade
refactor: remove unnecessary memebers 2024-07-24 14:32:27 +08:00
leo
ad3eeabb83
feature: allow swap in branch compare 2024-07-24 12:17:44 +08:00
leo
3ef703c65d
code_style: run dotnet format 2024-07-24 11:45:16 +08:00
leo
9e048751ae
refactor: move non-observable object from ViewModels to Models
* ViewModels.MergeMode -> Models.MergeMode
* ViewModels.Notification -> Models.Notification
* ViewModels.ResetMode -> Models.ResetMode
* use `int` instead of `ViewModels.CountSelectedCommits`
2024-07-24 11:44:13 +08:00
leo
0dee3a1969
refactor: use Binding.TargetNullValue instead of empty class Models.CompareTargetWorktree 2024-07-24 11:16:28 +08:00
leo
6038fecab4
code_review: PR (#282)
* add translations for `Text.CommitCM.CopyInfo`
* unify length of commit's short SHA
2024-07-24 10:42:58 +08:00
RevenantX
300c1c99bf
Add copy info that copies "{Short SHA} - {commit subject}" into clipboard 2024-07-24 10:34:35 +08:00
leo
b160f4e47a
enhance: clear selection after swap compare targets 2024-07-23 19:30:16 +08:00
leo
1583b08892
code_review: PR (#280)
* tooltip for swap button
* move `Views.CompareTargetWorktree` to `Models.CompareTargetWorktree`
* remove unused `Models.IObjectId`
* fix swap not working when target is Worktree, because Commands.CompareRevisions's Args do not changed after swapping
2024-07-23 19:26:04 +08:00
Giuseppe Lippolis
5cc30f7d10 feat: Allow Swap Commits in Revision Compare 2024-07-23 11:41:33 +02:00
leo
fa9990c38c
code_style: move SourceGit.ViewModels.RepositorySettings to SourceGit.Models.RepositorySettings 2024-07-23 14:52:25 +08:00
leo
720b2b65f3
code_style: change static methods of ViewModels.Preference to member function 2024-07-22 15:34:31 +08:00
leo
9f09b8e326 enhance: allow # character in branch name (#271) 2024-07-21 17:44:38 +08:00
leo
91801cff69
enhance: only trigger UpdateSelectedChunk if needed 2024-07-19 11:01:31 +08:00
leo
f0649c95b5
feature: add an indicator that shows those commits the current branch ahead/behind its upstream 2024-07-19 09:29:16 +08:00
leo
9de2853003
enhance: unify selection mode and hunk mode 2024-07-18 16:26:39 +08:00
leo
dbc95e7209
refactor: move some method from view to its data source class 2024-07-18 11:40:56 +08:00
leo
d09866e2c3
enhance: commit search (#268)
* add `-i` parameter to ignore case while searching commit message
* add `--branches --remotes` to search commits from all branches
2024-07-17 20:54:09 +08:00
leo
b7e0e38de3
feature: stage/unstage hunk (#265) 2024-07-17 16:56:16 +08:00
leo
ef0c904e91
ux: improve change list selection 2024-07-16 17:00:08 +08:00
leo
2f5f98770f
enhance: expand tree for current branch (#262) 2024-07-16 15:02:47 +08:00
leo
1eb77a5e49
feature: add a toggle button to change the commit time display mode to time period it is passed from now (#259) 2024-07-16 12:16:08 +08:00
leo
684fedb9bd
ux: icons 2024-07-15 15:47:28 +08:00
leo
8e7bfc43e0
enhance: search commits by message (#256) 2024-07-15 10:17:26 +08:00
leo
3aad24a64e
enhance: secure exit 2024-07-15 09:54:46 +08:00
leo
f4eca45754
code_style: remove all IDE warnings 2024-07-15 00:30:31 +08:00
leo
a807aa9e12
code_style: remove all IDE warnings 2024-07-14 15:55:15 +08:00
leo
6a8527a394
refactor: commit search (#256) 2024-07-13 22:36:59 +08:00
leo
e5462f0086
code_style: run dotnet format to apply code style rules 2024-07-10 12:12:14 +08:00
leo
738189393e
enhance: refresh working copy changes immediately after discard finished 2024-07-09 15:30:40 +08:00
leo
c16bed1d9f
enhance: run commit search in background 2024-07-09 15:15:31 +08:00
leo
6930b51c64
refactor: commandline parsing
* `--rebase-todo-editor` launches this app as a git `sequence.editor`
* `--rebase-message-editor` launches this app as a git `core.editor` which runs on background by reading rebasing jobs
* `--core-editor` launches this app as a git `core.editor`
* `--askpass` launches this app as a SSH askpass program
2024-07-09 12:20:52 +08:00
leo
cbe4c36525
feature: support git.core.askpass (#239) 2024-07-08 22:07:00 +08:00
leo
7ee3db500a
refactor: json serialization
* move all converters to `App.JsonCodeGen.cs`
* use `ColorConverter` instead of parsing colors manually
2024-07-08 16:45:51 +08:00
leo
16d9b627f0
refactor: rename Models.CustomColorSchema to Models.ThemeOverrides because it do NOT contains only colors currently. 2024-07-08 16:21:57 +08:00
leo
09b418374a feature: add an option to enable -a,--all in commit command (#244) 2024-07-07 10:28:14 +08:00
leo
36b8472d02
enhance: improve selection changed event handler performance 2024-07-06 17:29:24 +08:00
leo
3197b4bfe8
refactor: use custom BranchTree instead of TreeView to improve performance 2024-07-06 17:17:41 +08:00
leo
8faa8c7378
ux: more flex layout for left siderbar groups 2024-07-04 17:59:32 +08:00
leo
3ce580b682
fix: when the remote branch is deleted, deleting the local branch will throw NRE (#238) 2024-07-04 16:47:28 +08:00
leo
f4f4a26a64
enhance: remember last selected on common actions (#231)
* the way to deal with local changes on checkout branch page
* the way to deal with local changes and should checkout after created on new branch page
* should fetch without tags on fetch page
* the way to deal with local changes and should fetch without tags on pull page
* should push all tags on push
2024-07-03 14:42:21 +08:00
leo
80f72676ec
ux: new custom theme configuration format
* supports customize the commit graph
2024-07-02 22:54:26 +08:00
leo
50fe25a631
enhance: only load repository settings if file exists 2024-07-02 14:17:21 +08:00