Commit graph

526 commits

Author SHA1 Message Date
leo
ef84891df1
feature: add new Editor Font Size configuration for all text editors (#661)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-07 17:52:23 +08:00
leo
ffeb63613c
fix: ignoring new files under folder creates invalid .gitignore entries (#663)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-07 17:18:04 +08:00
leo
9cb85081ab
feature: saving as patch supports multiple commits (#658)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-06 12:35:55 +08:00
leo
d50b2c0298
code_review: PR #657
* add hotkey `Ctrl+Down/⌘+Down` to fetch directly
* keep translation keys of en_US in order
* add translations for zh_CN and zh_TW
* do NOT using namespace under `SourceGit`
* use `⇧` instead of `Shift` in hotkey tips
* hotkey mismatch on macOS
* hotkeys to start fetch/pull/push directly not work on macOS
* remove the hotkey of `Create Branch` context menu item
   - there are other objects (such as branch and tag) also have the `Create Branch` context menu item without hotkeys
   - on macOS, we already use `⌘+B` to create branch with selected commit, not `Ctrl + B`

Signed-off-by: leo <longshuang@msn.cn>
2024-11-06 10:25:44 +08:00
Fernando Medeiros
2e6eca26f7
Adding hotkeys for creating branch, pushing and pulling (#657) 2024-11-06 09:14:56 +08:00
leo
dcf5093406
enhance: avoid that diff view refresh more than one times
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
Localization Check / localization-check (push) Waiting to run
Signed-off-by: leo <longshuang@msn.cn>
2024-11-04 18:21:07 +08:00
Göran W
1a8acbf934
feature: diff - toggle show all lines (#615) (#652)
* Renamed 1 of 2 SyncScrollOffset props, for clarity

The property "SyncScrollOffset" in TextDiff is distinct from the one with the same name in TwoSideTextDiff. These two properties are used in separate (though slightly related) ways and are not really connected.

The one in TwoSideTextDiff is mainly used to keep the scroll-pos of the two SingleSideTextDiffPresenter views in sync (aligned), while the one in TextDiff is used only to preserve/reset the scroll-pos in the single CombinedTextDiffPresenter view when (re)loading Diff Content (so not really syncing anything).

To clarify this and to make the two properties more distinguishable, I renamed the one in TextDiff to simply "ScrollOffset".

* Added icon and string for "Show All Lines"

New StreamGeometry "Icons.Lines.All" using SVG path from "text_line_spacing_regular" at https://avaloniaui.github.io/icons.html.
New String "Text.Diff.VisualLines.All" for en_US locale (no translations yet).

* Implemented new TextDiff feature "Show All Lines" (toggle)

* Added new ToggleButton in DiffView toolbar, visible when IsTextDiff, disabling the buttons "Increase/Decrease Number of Visible Lines" when on.

* Added new Preference property "UseFullTextDiff".

* Added StyledProperty "UseFullTextDiffProperty" in TextDiffView, with a DataTemplate binding to the corresponding preference property.

* When changed, UseFullTextDiffProperty is handled identically as UseSideBySideDiffProperty (via new helper method RefreshContent(), for unification with OnDataContextChanged()).

* Added new method DiffContext.ToggleFullTextDiff() for changing the preference property and reloading the diff content.

* Implemented the new feature by overriding the "unified" (number of context lines) for Commands.Diff() with a very high number.

NOTE: The number used (~1 billion) is supposed to be the highest one working on Mac, according to this forum comment: https://stackoverflow.com/questions/28727424/for-git-diff-is-there-a-uinfinity-option-to-show-the-whole-file#comment135202820_28846576
2024-11-04 16:32:51 +08:00
leo
2f9e825b63
refactor: pass Models.Commit instead of just sha of it
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
Localization Check / localization-check (push) Waiting to run
Signed-off-by: leo <longshuang@msn.cn>
2024-11-01 18:10:22 +08:00
leo
a36058ec51
feature: supports custom actions (#638)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-01 17:23:31 +08:00
leo
3cbffa6ff9
feature: add an option in repository configuration to enable --prune on fetch (#590)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-30 18:39:38 +08:00
yindf
2d7ea561e2
fix bug that stuck auto fetch when pull failed & make stage area resizeable (#627)
* fix watcher stuck by pull
* make stage area resizeable

---------

Co-authored-by: yindf <yindf@mail.jj.cn>
(cherry picked from commit a842aca042a73cb5fa3995794aae2a2e3540b37f)
2024-10-30 17:59:59 +08:00
leo
1adcf4dd80
enhance: do NOT query gpg.ssh.allowedSignersFile every time while getting commit's signing status
Signed-off-by: leo <longshuang@msn.cn>
2024-10-30 10:10:17 +08:00
leo
4a6cbddeac
refactor: select the previous tab while closing the actived one (#621)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-30 09:53:58 +08:00
leo
279b1819a3
feature: show commit gpg sign status (#614)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
Localization Check / localization-check (push) Waiting to run
Signed-off-by: leo <longshuang@msn.cn>
2024-10-29 21:03:45 +08:00
leo
1442dcfe00
feature: allow fetch the latest remote changes into local branch which is not current branch (#617)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-29 09:59:13 +08:00
leo
498d2b54ae
feature: add per-repository setting for prefered OpenAI service
* If there is only one OpenAI service available, discard the setting of prefered OpenAI service. Instead, use it directly
* If there are multiple OpenAI service available, try to find the prefered one or show a context menu for users to choose the one they want to use

Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 21:36:10 +08:00
leo
6cc0c54ac1
enhance: remember last selection of some options while stashing changes (#610)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 17:55:32 +08:00
leo
566d36ca59
feature: add option to enable --keep-index option of git stash push command (#610)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 16:51:42 +08:00
leo
134d69d403
feature: supports generate commit message by OpenAI with selected staged changes (#608)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 15:56:38 +08:00
leo
1044915be1
refactor: OpenAI integration
* supports configure multiple services
* supports select service when generate commit message by OpenAI

Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 11:00:11 +08:00
GadflyFang
c08c307c7a
enhance: add GitLab Issue/MR sample rules (#598)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
* enhance: add GitLab Issue/MR sample rules
* fix: remove blank in zh_CN

---------

Signed-off-by: Gadfly <gadfly@gadfly.vip>
2024-10-24 18:07:04 +08:00
leo
339bceef3d
fix: files should be displayed after folders (#597)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-24 17:00:03 +08:00
leo
76a7a2228f
feature: use numeric sorting for all trees (#597)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-24 15:11:10 +08:00
leo
12bb915bd8
code_review: PR #596
- Add `ViewModels.Preference.PrepareOpenAIPrompt()` method to generate default prompt instead of a const fallback value. Therefore, it is more convenient for us to modify the default value in the Preference dialog.
- Modify the default prompts. Rename `SubjectPrompt` to `GenerateSubjectPrompt`. Rename `SummaryPrompt` to `AnalyzeDiffPrompt`.
- Rewrite the way to build OpenAI user content for subject generation

Signed-off-by: leo <longshuang@msn.cn>
2024-10-24 10:22:06 +08:00
Douglas Cunha
2f68aed817
feat: improve commit message generation with AI prompts (#596)
- Refactor the commit message generation process to utilize default prompts and enhance clarity while eliminating redundancy.
- Added new properties for subject and summary prompts, while improving cancellation support in async task handling.
- feat: add AI prompts for commit message generation.
- Updated the formatting of the package reference for consistency in the project file.
- Add properties for managing OpenAI subject and summary prompts in the Preference view model.
- Refactor layout and add new input fields for AI subject and summary prompts in the preferences view.
2024-10-24 09:31:05 +08:00
leo
547c28adb8
fix: locks list does not update after unlock
Some checks failed
Continuous Integration / Build (push) Has been cancelled
Continuous Integration / Prepare version string (push) Has been cancelled
Continuous Integration / Package (push) Has been cancelled
Signed-off-by: leo <longshuang@msn.cn>
2024-10-23 16:55:22 +08:00
leo
a5594130ed
code_style: run dotnet format
Signed-off-by: leo <longshuang@msn.cn>
2024-10-23 15:28:09 +08:00
leo
d21a8f2449
refactor: rewrite OpenAI integration
Signed-off-by: leo <longshuang@msn.cn>
2024-10-23 14:05:40 +08:00
leo
06fd49ba92
feature: support --signoff for git commit command (#591)
Signed-off-by: leo <longshuang@msn.cn>
2024-10-23 09:46:27 +08:00
leo
b9d7f908c9
refactor: do NOT use the --prune parameter for git fetch command (#590)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-10-22 16:54:21 +08:00
leo
077e35b860
code_style: allowEmpty is not needed any more 2024-10-22 15:01:20 +08:00
leo
728d003717
code_review: PR #589
* do not using namespace `SourceGit.*`
* should use branch instead of repository
2024-10-22 10:06:53 +08:00
leo
1855b43750
feature: allow empty commit (#587) 2024-10-22 10:03:43 +08:00
Luis Frey
a8a7775b83
feature: add ${branch_name} option to commit templates (#589) 2024-10-22 09:44:53 +08:00
leo
6dac26d525
refactor: since there is a hotkey to stage and commit, remove the unsafe auto-stage configure 2024-10-22 09:29:49 +08:00
leo
a5e783da08
enhance: disable Fast-Forward for worktree which is not current branch 2024-10-21 16:39:57 +08:00
leo
3b1a54dffd
refactor: use git update-ref $LOCAL_BRANCH $REMOTE_BRANCH instead of git fetch $REMOTE $LOCAL_BRANCH $REMOTE_BRANCH to fast-forward local branch without checkout it first. 2024-10-21 16:20:34 +08:00
leo
00a2ec5abe
enhance: conventional commit message builder supports breaking changes prefix (#584) 2024-10-21 15:47:54 +08:00
leo
0539a94cbe
feature: mark deleted repository and auto remove it after scan default clone dir (#576) 2024-10-20 20:42:14 +08:00
leo
45869c27b8
enhance: ignore untracked files when staging all changes with INCLUDE UNTRACKED FILES turned off (#577) 2024-10-20 18:32:05 +08:00
leo
9153bbe07f
feature: add conventional commit message generator (#574) 2024-10-18 16:20:45 +08:00
leo
62ac4290ca
feature: add a toggle button to enable --reflog when query commits 2024-10-18 14:27:20 +08:00
leo
2cfa2bf6c5
enhance: show suggestion popup after search commit filter type changed 2024-10-18 10:43:04 +08:00
leo
9e14327f3c
feature: add context menu to copy message of an annotated tag (#567) 2024-10-17 17:38:29 +08:00
leo
b23f284e21
feature: add context menu for selected change in stashes page 2024-10-17 15:37:14 +08:00
leo
f6e0b0b1c0
feature: hover on tag view shows the message of it (#567) 2024-10-17 14:57:05 +08:00
leo
ccdc849baa
code_style: run dotnet format 2024-10-15 09:39:01 +08:00
leo
5fef6e93b9
enhance: cherry-pick (#563)
* supports to cherry-pick a merge commit
* add option to enable the `-x` parameter
2024-10-14 15:20:02 +08:00
leo
b9a24ceb53
feature: add hotkeys to move interactive rebase item up and down (#557) 2024-10-12 10:28:54 +08:00
leo
21e15a1af4
feature: add a toggle in perference to show author time instead of committer time in graph (#558) 2024-10-12 09:56:33 +08:00
leo
c67cdb931f
enhance: stop switching workspace when one or more tasks are running in opened pages
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-10-11 17:37:34 +08:00
leo
6ca6399bd3
enhance: re-run searching after search option changes 2024-10-11 11:29:33 +08:00
leo
b5000f920f
enhance: highlight selected search commits 2024-10-11 11:04:27 +08:00
leo
c2b17ef9d0
fix: changing the repository URL only changes the fetch URL if push URL using a different URL (#553) 2024-10-11 10:03:42 +08:00
leo
68519c76ca
refactor: stash local changes (#550)
* when try to stash all the local changes, add a option to only stash the staged changes
* stash changes in selected files will prompt user - both staged and unstaged changes of selected file(s) will be stashed
2024-10-10 11:54:59 +08:00
leo
ac74e4ba32
enhance: change the default reset mode to --mixed which is the default action in git commandline (#551) 2024-10-10 09:17:31 +08:00
leo
c8a13bc4e9
enhance: returns the instance of ViewModels.Preference directly if it exists 2024-10-09 15:58:44 +08:00
leo
249706c1ef
fix: turn off GPG Signing when create a new tag does not work if tag.gpgsign is enabled 2024-10-09 11:55:24 +08:00
leo
029f56cb28
feature: the default merge option supports reading branch.<name>.mergeoptions configuration (#540) 2024-10-06 22:21:18 +08:00
leo
7262437385
ux: new style for pushing a new branch to remote 2024-10-06 21:48:26 +08:00
leo
af099af4d0
refactor: stash selected changes in staged group will apply --staged paramter for git stash push (#535) 2024-10-03 18:28:01 +08:00
leo
6fe7dfad7f
enhance: update filters after a filtered branch renamed (#536) 2024-10-03 09:25:56 +08:00
leo
4e57cd50cd
feature: add an option to clean up ignored files when discard all changes in repo (#531)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-10-02 21:46:48 +08:00
leo
a59600ce18
enhance: supports default remote in Pull if current branch has no upstream (#534) 2024-10-02 15:27:09 +08:00
leo
d746e352a7
feature: supports to set default remote to push local branches without any tracking remotes (#534) 2024-10-02 15:13:27 +08:00
leo
6d1dfad8a1
ux: changes view mode style (#533)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
* move changes view mode switch button to right button group
* change the style for ChangeViewModeSwitcher
* remove used code
2024-10-01 23:16:32 +08:00
leo
d2a005c532
feature: add a button in diff view to ignore all whitespace changes (--ignore-all-space)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-30 11:34:09 +08:00
leo
9a8f4e20fb
feature: add hotkey Alt+Enter/⌥+Enter to auto stage all local changes and then commit (#521) 2024-09-27 22:21:56 +08:00
leo
2346082228
ux: style of tab switch in file histories view
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-27 18:23:55 +08:00
leo
130c98ad40
feature: supports search commit only in current branch 2024-09-27 11:17:02 +08:00
leo
304b175b4b
refactor: remove context menu items about LFS tracking from changes and revision files 2024-09-27 09:46:02 +08:00
leo
9ff28dff72
feature: add git LFS context menu items for changes and revision files in commit details view 2024-09-27 09:39:25 +08:00
leo
05c135a89d
feature: auto add checkout target branch to history filters if the filter list is not empty (#518)
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-26 20:37:48 +08:00
leo
5d2a442144
code_review: PR #515
* remove Linq expressions due to AOT limitations. See https://learn.microsoft.com/zh-cn/dotnet/core/deploying/native-aot/?tabs=windows%2Cnet8#limitations-of-native-aot-deployment
* rename `FilteredLocks` to `VisibleLocks`
* use `Commands.Config.Get` instead of `Commands.Config.ListAll`
* disable checkbox if user name is not valid
2024-09-26 15:36:20 +08:00
Mat
21498f7009
Show only my locks (#515)
* Added a checkbox in the LFSLocks window to only show the ones locked by "Mat"
* Waits for the locks list to finish loading before making the checkbox clickable
* Now uses correct username for lock filtering.
   WIP: needs an error popup if user is misconfigured
* Added an error popup if username is empty on lfs locks
* Replaced an IEnumerable with a AvaloniaList for consistency
2024-09-26 15:00:31 +08:00
leo
1ba294a07b
refactor: move auto-fetch from global preference to repository settings
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-26 10:50:21 +08:00
leo
a8ce4e6d95
feature: when toggle a local branch filter, if it has a tracked upstream branch, do the same for the upstream branch (#513) 2024-09-25 20:30:48 +08:00
leo
85b83990a8
code_style: run dotnet format
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-25 16:24:04 +08:00
leo
acf71a30b8
enhance: re-calculate the opened repositories in active workspace (#511) 2024-09-25 15:07:23 +08:00
leo
6b44fd4416
code_style: remove unused codes
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-24 18:22:18 +08:00
leo
d1d913aa45
fix: do NOT delete .git/rebase-merge and .git/rebase-apply folders (#509) 2024-09-24 18:19:22 +08:00
leo
b9597dc92a
ux: new layout for Staticstics window 2024-09-24 17:06:16 +08:00
leo
c0f59c441b
feature: allow user to select the chart fill color 2024-09-24 12:14:51 +08:00
leo
af57c56cd7
feature: enhanced statistics panel (#493)
* replace the `YEAR` tab with `OVERVIEW` tab, which will analyze most recent 20K commits
* use `LiveChartsCore.SkiaSharpView.Avalonia` instead of a custom chart view
2024-09-23 21:45:44 +08:00
leo
0ed1f369e9
feature: display commit's detail info even if the commit is not shown in histories 2024-09-19 14:38:11 +08:00
leo
687b58576d
code_style: use readonly property instead of responsive property for Workspace.Brush 2024-09-19 09:21:04 +08:00
leo
84fda6a8db
feature: add property RestoreOnStartup property to ViewModels.Workspace (#488) 2024-09-18 21:35:33 +08:00
leo
900ebd8282
feature: supports parameters in commit template (#487)
- ${files_num} will be replaced with staged changes count
- ${files} will be replaced with changed file paths
- ${files:N} will be replaced with top N changes file paths and with `and {TOTAL - N} other files` at end of replaced string.
2024-09-18 20:11:34 +08:00
leo
bbd4012bc5
enhance: do NOT create sub-nodes for detached HEAD 2024-09-18 16:02:38 +08:00
leo
9c6745c271
enhance: skip auto fetching when index.lock file exists in the repository's git dir 2024-09-18 14:49:53 +08:00
leo
bc633e4085
code_review: PR #480
* remove `string.IsNullOrEmpty(OS.ShellOrTerminal)` checking from detail backend since it has been checked by `Native.OS.OpenTerminal`
* remove `ViewModels.Preference.IsTerminalConfigured` because it is only used by itself (Unlike `IsGitConfigured`).
* add `Native.OS.TestShellOrTerminal` and use it instead of setting `Preference.ShellOrTerminal` directly, because we have binded a callback that will save preference into file when its property changed. It may cause lag in some enviroments if we saving preference into file too frequently (see PR #436).
* run `dotnet format`
2024-09-17 22:09:51 +08:00
Aikawa Yataro
54ab625931
enhance: select any terminal when none is set 2024-09-17 07:20:17 +00:00
leo
1a4d3d0086
enhance: remember the height/width of commit list and detail panel in histories page (#472) 2024-09-14 17:22:29 +08:00
leo
d6b21bad17
feature: now image file previewer shows the image size and file size 2024-09-14 16:13:40 +08:00
leo
fb0120d338
refactor: terminal/shell integration (#471) 2024-09-14 12:09:50 +08:00
leo
1ec5cc416d
enhance: leave remote branch to empty when the local branch tracks no branch in the remote while pulling changes (#469) 2024-09-13 17:29:24 +08:00
leo
cc6e486663
enhance: do NOT modify repository's local configuration if it is equals to default value 2024-09-13 15:20:52 +08:00
leo
ea3a6a4755
feature: auto focus the next change after stage/unstage selected changes (#464) 2024-09-12 16:33:56 +08:00
leo
16f8e2fd0b
feature: simple implementation for generating commit message by OpenAI (#456) 2024-09-12 09:42:47 +08:00
leo
2d611cf988
fix: repository settings did not saved correctly when closing app (#459) 2024-09-11 10:20:12 +08:00