* change the name of this feature to `Enable Block-Navigation`
* change the icon of the toggle button used to enable this feature
* use a new class `BlockNavigation` to hold all the data about this feature
* create `BlockNavigation` data only when it is enabled
Signed-off-by: leo <longshuang@msn.cn>
* Corrected misspelled local variable nextHigh(t)light
* Implemented change-block navigation
* Modified behavior of the Prev/Next Change buttons in DiffView toolbar.
* Well-defined change-blocks are pre-calculated and can be navigated between.
* Current change-block is highlighted in the Diff panel(s).
* Prev/next at start/end of range (re-)scrolls to first/last change-block
(I.e when unset, or already at first/last change-block, or at the only one.)
* Current change-block is unset in RefreshContent().
* Added safeguards for edge cases
* Added indicator of current/total change-blocks in DiffView toolbar
* Added new Icon and String (en-US) for Highlighted Diff Navigation
* Added Preference and ToggleButton for diff navigation style
Fixes#726. Looks like a980cc987d isn't sufficient. It sorts the commits according to the ordering in history, but then CherryPick ViewModel reverses the order.
This commit changes CherryPick ViewModel to use string.Join on the commit list without reordering, so that the ordering is controlled entirely by the caller.
* use `--output=<file>` instead of `-o <dir>` to avoid failure because the directory cannot be created
* make generated patches in order when format multiple commits
Signed-off-by: leo <longshuang@msn.cn>
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>
* 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>
* 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>
* 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
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.
* 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>
* 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>
* 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
* 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>