CS133 assignments at EDCC/UW Student: Norton Pengra
Professor: Paul Bladek of EDCC
All the things I've learned in the realm of C++ and whatnot.
With more to come...
Hello Team 4, welcome to github. Github is a tool that makes software collaboration easier. Here are some of it's strengths that will benefit us:
- Easy rollback (if bad code is written, it's easy to go back to an early version)
- Automatic testing frameworks (with good tests, it's really hard to push bad code)
Here's how you can get started with github and git.
First, install git from their website.
Once installed, open up a terminal of your choice (such as command prompt [windows key + R
-> type in cmd
-> hit enter
] or powershell [windows key + R
-> type in powershell
-> hit enter
]) and type git
.
The output should look like this:
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
... more lines below
If you see this, congrats! you've installed git correctly.
The first step to contributing is to change to a directory you want
to work from. In this guideline, we'll assume the directory C:\temp\
.
To clone this project, enter the following commands:
cd C:\temp\
git clone https://github.com/qwergram/CS133Assignment.git
This will create a directory named CS133Assignment
. Go into it with:
cd CS133Assignment
Congrats! You've cloned this project.
For this project, work to be done, doing and done will be recorded in a kanban style board. click here for the kanban board. We will work in 2 day sprints. Everyone will pick a feature they presume will take 2 days, and build it. Tag your card with your name so everyone is aware of who is doing what. I will create the sprints and tasks in class.
If you run into issues or have questions, don't email me. Put your issues in the issues board. click here to see the issues board. Either a team member or I will take a look at it and answer it.
Your feature will be completed in your own branch. A branch is a way for developers to work on a set of files without messing up the work of other developers. When both developers are ready to combine work, they merge the branches together. (Git's philosophy is code is like a river. Think of your branches as branches of a river that split and then merge back together again.)
Say I'm working on the adding feature for a calculator. I would then create a branch called norton-add-feature
.
I'll first show you the commands to type in and explain what each one does later.
git checkout master
git pull origin master
git checkout -b norton-add-feature
git push origin norton-add-feature
Line 1 and 2 ensures you have the most up-to-date code that everyone is working on. Line 3 actually creates your new norton-add-feature
branch, and line 4 publishes it to the server so everyone can see your work.
If you've done everything correctly, the following command:
git status
will result in:
Your branch is up-to-date with 'origin/norton-add-feature'
Congrats! Now you can start churning out work.
As a good rule of thumb, everytime you make a small change and save your files (which should be often), it's a good place to "commit" your changes. In other words, document what you've done. It's important to make many "commits", so if you make a mistake, you can roll back to the last commmit you have. The more commits you have, the more options you have.
Here are the commands with the explanations to follow:
git add .
git commit -m "description of what you did"
Line 1 is a way to tell Git: "Hey, I did something, record it please". Line 2 is the actual commit. In the quotes, you describe to git (and your teammates) what you just did. Keep in mind that "updated file" is a useless description. Try something like "created declarations for adder method". (Descriptions should be no more than a sentence.)
Once you have a sizeable amount of work done (maybe like 10 - 15 commits), it's worth "pushing" your work to the server for everyone to see what you're doing.
If you have NOT "pushed" your work before run this command:
Sgit push -u origin norton-add-feature
If you HAVE "pushed" your work before run this command:
git push
"Once we have completed a feature (e.g. our adder feature), we will want to "merge" our work back in to the master
branch. (we will turn in the master
branch to Bladek, so make sure your code can merge!)
Name | Readme | Source |
DateTime Inheritance | Readme | Source |
Quiz 2 | Readme | Source |
Quiz 3 | Readme | Source |
Circularly Doubly Linked List | Readme | Source |
Midterm Corrections | Readme | Source |
AVL Tree | Readme | Source |
RPN Calculator | Readme | Source |
[x] = completed