yuriy-pelekh / gittank Goto Github PK
View Code? Open in Web Editor NEWGit client
License: MIT License
Git client
License: MIT License
Make sure that instead of .json manual entry we can setup the flow from the app
-add new settings window
-add a selection of repositories based on the path to the folders in which they are located
-add a checkbox section to select the repositories that will be used
-add the ability to choose a default repository based on selected repositories
-add the default branch selection
-add a button to save data from the form that will be inactive until all required fields are filled in
-saving settings from WPF window in JSON format
-overwrite data in appsettings.json and update data in the main window
-structure code by using the MVVM pattern
The new logs are added to to previous list each time the new action is running. But the logs should be cleared before the new action.
Preconditions:
Steps to reproduce:
Actual result:
The new logs are added to the previous ones.
Expected result:
The previous logs should be cleared, only the new ones should be shown.
Representation of the repositories a developer expects to make changes to
Improve the ways our log is displayed. Some ideas:
Use case: user pressing some command like Create branch and the actions take some time (10-30 seconds). We must make sure that the user is aware that something is going on and that other buttons/commands are blocked from being used until the current command finishes with some success/failure result.
When running the application the first time after restarting the PC (run from Visual Studio or from .exe file), the 'Branch' dropdown is empty.
Although, all commands work as expected. There are no specific records in the logs.
Preconditions:
The appsettings file should be populated with correct data.
Steps to reproduce:
Expected result:
The 'Branch' dropdown should contain all branches of default repository (according to appsettings).
Actual result:
The 'Branch' dropdown is empty.
Please, see the attachment: https://www.screencast.com/t/IwEH6CRaX
Repro: 1.0.34+
Workaround: close the app and open it again https://www.screencast.com/t/zUdKVEIU
Provide the ability to make a multiselect for making changes to multiple branches
Conduct a research and draw some workflows/schemas of actual day-to-day work based on the initial card: #28
Based on the initial research Define the pros and cons of the existing solution from Visual Studio 2022
Multi-repo support https://devblogs.microsoft.com/visualstudio/multi-repo-support-in-visual-studio/
If the branch does not exist (error) - what do we do - create a new one? or something else
Related story: #51
Check the log file, looks like there is C# code.
See attachment:
PULL
You asked to pull from the remote 'origin', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
Failed (00:00:00.8517557 @ 5/5/2022 10:28:23)
PUSH
fatal: The current branch od_test has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin od_test
Failed (00:00:00.0635105 @ 5/5/2022 10:29:14)
Multi threading
Tab control for logs otherwise they can mixed due to parallel execution
Select flows for demo
Try basic commands according to flows selected
Provide parallel async execution for one command
apply the changes to all commands
adjust work with ProcessHelper to parallel execution
fix UI freeze
code improvements in scope of changes
adjust log representation to parallel execution
testing
merge with new work form feature/commands and main
No details about the cause of the failure when executing the 'fetch' command, if the folder is not a git repository or if the repository is not connected to remote. See attachment 1.
The 'Command executed' text is present at the beginning of each git message (it was not present in the app in the previous versions). See attachment 2.
'Push' command: git messages are cut (sometimes) for successful action. See attachments 3-4.
Repo status - Status for all 7 repos (signal green-yellow-red) - operations (Pull / Push - crashed or not?). Error handling - TBD
Behind/ahead - how the local branch differs from the default remote (same) branch or basis branch (to which it will merge)?
Multi-threaded operations From single-thread to multi-threaded operations in repos (enable multi threadedness)
Improved configuration → from current json (manual entry) to easy UI config/selection
Multi repo setup and dependencies - 7 repos → Initial setup (default) for all 7 repos, but:
Set a new foundation via the new architecture
Outline different cases for the basic flow:
Related story: #42
↑ 1) Repositories are duplicated if adding a new repo from the parent folder (v1.0.366):
Preconditions:
Steps to reproduce:
AR: Repositories are duplicated with the incorrect path (see the attachments 'duplicates'.
ER: Repositories should not be duplicated.
⇅ 2) The settings window is not responsive (see the attachment 'FullScreen'), (v1.0.366)
↑ 3) Error is thrown when clicking the 'Save' button (testing the .exe file) (v1.0.366; v1.0.371): "System.IO.FileNotFoundException: Could not find file 'D:\appsettings.Development.json'."
Though the path to this file is: D:\1. WIP\GitTank\GitTank-1.0.371\appsettings.Development.json
(see the attachment 'FileNotFound')
↓ 4) The empty placeholder is available to select in the 'Default Repository' and 'Default Branch' dropdown (v1.0.371).
See the attachment 'EmptyBranch'.
↓ 5) The 'Remove' label should be without an ellipsis because this button doesn't open the separate window.
See the attachment 'Remove'.
Data context for Development to use in XAML / app designer
What for? To see the commands and outcomes?
If user has to handle situation outside of GitTank - provide the ability to open terminal with Git commands
Add small icon on repo tiles? Click on it - opens terminal in the correct directory of the dedicated repo
External terminal - research, up 2 engineer
Idea - find popular terminals, add ability to configure in settings? Env variable on Win machine. See what terminals are on win -> populate the dropdown in settings and save?? Overkill: select path in settings for the terminal
Preconditions:
User should have several repos
At least two branches should be on each repo(main, branch_1
STR:
AR: The command does not start at the same time
ER: The command should start in parallel (at the same time for all repos)
We assume the multi-threading in the future for multiple repos.
For this case we want to separate logs for each of our 7 repos
Research some concepts fo visual representation (i.e. vertical alignment / tabs / new windows etc.)
Add the ability to configure log (describe)
Type of configuration = detalization of the log
The 'Update' button is not frozen while 'update' action is running, so what user can click the button once again and it causes a failure.
Preconditions:
Steps to reproduce:
Actual result:
The 'Update' button is active, user successfully can click the button once more, and failure happens.
Please, see the attachment: https://www.screencast.com/t/zr4Wy41NEFP
Expected result:
The 'Update' button should be inactive until the process is completed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.