Commit graph

560 commits

Author SHA1 Message Date
leo
c50508d4ac
fix: try to fix the issue that the branch tree did not update after deleting multiple branches (#729)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-22 10:42:53 +08:00
leo
153a1f30b2
feature: supports toggle --force option for git fetch command (#721)
* Background auto fetch will always disable this option
* This option is not add to pull operation

Signed-off-by: leo <longshuang@msn.cn>
2024-11-22 09:39:50 +08:00
leo
8a95a17b0e
ux: re-order menu items
Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 20:55:59 +08:00
leo
8bd5bd864e
feature: add context menu to switch histories filter mode to selected commit
Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 20:50:51 +08:00
leo
b407dd97a1
enhance: reduce repository scanning time (#728)
* skip special folders, such as `node_modules`, `.svn`, `.vs` .etc.
* change max scanning depth to 5

Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 14:18:41 +08:00
leo
069dc255d1
enhance: skip scanning sub folders if current is not a git repository but has .git subfolder/file (#728)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 12:56:12 +08:00
leo
d3eca59036
refactor: rewrite the way to make sure scan repositories panel shows at least 0.5s (#728)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 12:14:11 +08:00
leo
8342702103
feature: add save as path menu item for commit change (#724)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 10:19:00 +08:00
leo
a980cc987d
fix: wired ordering when cherry-pick multiple commits (#726)
Since the items in `ListBox.SelectedItems`  are not ordered by their position in the list, but in the order user selected, it need be sorted before `cherry-pick`

Signed-off-by: leo <longshuang@msn.cn>
2024-11-21 09:57:43 +08:00
leo
efac161b12
refactor: update Repository.HistoriesFilterMode in Repository.RefreshHistoriesFilters
Signed-off-by: leo <longshuang@msn.cn>
2024-11-20 16:52:30 +08:00
leo
86d7541a7c
enhance: histories filter
* set upstream branch using the same filter mode when change the filter mode of local branch
* also excludes the decorators when current filter mode is excluding.

Signed-off-by: leo <longshuang@msn.cn>
2024-11-20 11:27:43 +08:00
leo
ab2156bfc2
code_review: PR #710
* SourceGit.Commands.* should not reference SourceGit.ViewModels.*
* remove unused namespace using
* update translations for zh_CN and zh_TW
* use WrapPanel instead of inner ScrollViewer
* some other UI/UX changes

Signed-off-by: leo <longshuang@msn.cn>
2024-11-20 09:42:48 +08:00
Dmitrij D. Czarkoff
cc5bb5f6d4
Show the list of children in the commit details (#710)
* feature: add children list to the commit base info view

Useful for navigation between the commits.

* feature: use repository filters to limit children search
* feature: execute children search asynchronously
* feature: respect global commit limit for a good measure
* fix: input lines may contain several commits

The first commit is always the immediate child, so take only 40 initial characters of the line

* fix: hide children behind the preference
* feature: make parents and children scrollable
2024-11-20 09:17:36 +08:00
leo
b25f9bdb6c
feature: supports switch histories order mode (#705)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-19 11:32:13 +08:00
leo
8b3d129890
code_review: PR #711
* SourceGit.Commands.* should not reference code in SourceGit.ViewModels.

Signed-off-by: leo <longshuang@msn.cn>
2024-11-19 09:46:06 +08:00
Dmitrij D. Czarkoff
5301645f8b
fix: in commit view get file histories by commit (#708)
When file histories are accessed from the commit details view, run git log for the inspected commit.  Previously the log was ran against current branch regardless whether the inspected commit belongs to that branch.
2024-11-17 11:14:56 +08:00
leo
8d84d0f6a1
enhance: improve update filter mode performance
Signed-off-by: leo <longshuang@msn.cn>
2024-11-16 09:14:57 +08:00
leo
a5606e80d4
refactor: move codes from Views.FilterModeSwitchButton to ViewModels.Repository
Signed-off-by: leo <longshuang@msn.cn>
2024-11-15 10:19:39 +08:00
leo
a824adf6d3
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
Localization Check / localization-check (push) Waiting to run
Signed-off-by: leo <longshuang@msn.cn>
2024-11-14 21:15:40 +08:00
leo
44557c066c
enhance: clear histories filter if there's a filter that has different modes with the new one (#690)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-14 20:22:08 +08:00
leo
a53787c754
fix: git rebase --continue fail (#693)
* fix the exit code when start `SourceGit` as core editor (rebasing).
* redesign the layout of working copy page for in-progress states.

Signed-off-by: leo <longshuang@msn.cn>
2024-11-14 19:19:58 +08:00
leo
ca5bc4b4df
refactor: rewrite the histories filter function to supports both include and exclude modes (#690)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-14 15:15:48 +08:00
leo
fd5c1f5105
code_review: PR #692
* remove unnecessary namespace using
* move `Commands.Branch.HasRemote` to `Commands.Remote.HasBranch`
* remove `Commands.Branch.DeleteRemoteTracking` and check branch in `Commands.Branch.DeleteRemote` directly

Signed-off-by: leo <longshuang@msn.cn>
2024-11-13 10:04:28 +08:00
Alberto de la Cruz
8935bdd4c9
feat: delete orphan remote tracking branches (#692)
* feat: remove orphan remote-tracking branches

- Allow user remove local remote-tracking branches without remotes (ie. remote was removed on merge request).
- Included 'DeleteRemoteTracking' and 'HasRemote' util methods to handle this case.

* fix: delete both case (local & remote-tracking)

- We have local and remote-tracking but not a remote branch. We need to remove both or only the tracking based on the checkbox and on the 'hasRemote' condition
2024-11-13 09:33:35 +08:00
leo
6e4f971733
feature: show tooltip of parent commit when hover the parent SHA
Signed-off-by: leo <longshuang@msn.cn>
2024-11-12 17:59:50 +08:00
leo
503f700fc2
refactor: open selected revision file (#681)
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
* Instead of opening the file from current worktree, save the selected revision file to the temp dir and the open it with default editor
* Do NOT set the `IsEnable` property, since the revision file is always available

Signed-off-by: leo <longshuang@msn.cn>
2024-11-11 20:24:17 +08:00
leo
050b1d1188
enhance: supports issue link in keywords (#678)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-11 12:16:29 +08:00
leo
82320f3494
revert: PR #673
* the `Commands.QueryCommitChildren` takes too much time when executes in a large repo

Signed-off-by: leo <longshuang@msn.cn>
2024-11-11 10:26:34 +08:00
leo
67cf23267a
feature: supports open selected revision file with default editor (#674)
Signed-off-by: leo <longshuang@msn.cn>
2024-11-11 09:37:42 +08:00
Dmitrij D. Czarkoff
03f96cc9f8
feature: add children list to the commit base info view (#673) 2024-11-11 09:24:49 +08:00
leo
8de37720fa
code_style: remove Rider warnings
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-10 13:19:25 +08:00
leo
daba8e5064
code_review: PR #672
* use formatted string instead of `CommitUrlTitle`

Signed-off-by: leo <longshuang@msn.cn>
2024-11-10 13:19:05 +08:00
Dmitrij D. Czarkoff
bbfc94d624
enhance: several commit links improvements (#672)
* Codeberge (https://codeberg.org/)
* Gitea (https://gitea.org/)
* sourcehut (https://git.sr.ht/)
2024-11-10 12:56:08 +08:00
Dmitrij D. Czarkoff
4924e960bf
feature: allow merging tags into branches (#671)
Adds "Merge {tag} into {branch}" menu item to tag menu in histories.
The rest is handled by already existing merge code.
2024-11-10 12:51:15 +08:00
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