[SWM] Day3: Repository Tools for SWM(Not only Git)
Repository Tools for SWM
Trello
Trello is a project management toolCan be used to organise individual project, but especially useful for teams
Basic version is free
Work in process(WIP) limits: Treat the cards like a limited currency – prevents overloading developers
Pros:
- Free!(at least the basic version)
- Open to members and non-members
- Private or Public Boards(limited to a group of members or anyone)
- Natural user interface, support for agile projects
- Ease of use, visibility and tracking, collaborative
- Available on Iphone/Android/Windows
- Developer API
- supports Agile feature
Cons:
- Cards/tasks cannot be assigned to multiple boards/projects
- No tagging capability
- Difficult to move/copy etc. multiple cards
- No due dates per tasks
- Checklist are not easily visible inside cards
- Have to pay for the full experience
Managing source code
Using a source code version control or repository system, such as git, SVN(SubVersionN), CVS(Concurrent Versioning system)Why not just keep copies in backup folders?
Error prone
Hard to roll back
Cannot easily share code with others
Can not do automated testing
Git
- Git is a (free and open source) distributed version control system
- Designed originally for command line use
Git has these concept: - Working folder
- Staging area
- Local repository
- Remote repository
You work locally, perhaps in a development branch, and when happy add and commit changes to a local repository
When you are REALLY happy, you can push changes to a remote server, storing a ‘master’ version of the software
Centralized(single user)
Draw how you imagine a simple workflow would look?- Just a master branch
- Single user
- This is very like how you would use SVN,CVS
- No danger of conflicts as only 1 user
Centralized(multiple users)
- User check out code and work independently
- So inevitably one person will update the origin master first
- The second person will need to update their code from the origin and manage their changes to avoid conflicts
Continuous integration
Once linked to the repository, testing can for example be automatically activated every time someone commits, or every night
- Produce a visible report of test results
- Makes sure the system is buildable(compilable)
- List code coverage
- Style violation
- Static analysis
Gitlab CI
GitLab has a built in CIYou submit a script on your repository which the CI server runs
- a bit like the build scripts we looked at last week
GitLab using YAML
- Commit a special file called .gitlab-ci.yml in your project root
- Composed of jobs of work, rules about when they should be run, and scripts of commands
- Set up runners in GitLab CI to action the jobs in the script
评论
发表评论