2: Git and requirements

This assignment covers topics in git and requirements.

  1. (15 points)
    1. In lecture, we saw many diagrams representing a project history. They were composed of boxes, index cards and arrows; or, in Git lexicon, commits and references (HEAD, branches and tags). The name of these diagrams is commit graphs. Draw the commit graphs including all commits and references after each of the following operations:

      1. Initialize repository.
      2. Commit twice.
      3. Checkout the first commit.
      4. Checkout the master branch.
      5. Create and checkout a branch named cookies.
      6. Commit twice.
      7. Checkout the master branch.
      8. Create and checkout a branch named bread.
      9. Commit twice.
      10. Checkout the master branch.
      11. Merge the cookies branch.
      12. Delete the cookies branch.
      13. Merge the bread branch.
      14. Delete the bread branch.
      15. Create the cookbook-v0.1 tag.
    2. Check your work! Create a local repository, replay these actions, and see the commit graph. Paste in the result of command

      git log --graph --oneline --all
      so we can verify you got it working.

  2. (10 points)
    1. Create a GitHub account if you don't have one already.
    2. Associate your public SSH key with your GitHub account. if you have not already done this.
    3. Give us your GitHub username as your answer to this question.
    4. Fork https://github.com/jhu-oose/2017-hare-and-hounds
    5. Send a Pull Request to us from your fork. The Pull Request might include any change.
  3. (10 points) This question concerns the lecture on requirements. Consult those notes for the details on the concepts of feature lists and use-cases.

    We already gave you the requirements for a Hare and Hounds RESTful server in the first homework. For this question lets back up and re-phrase its requirements from the perspective of features and use-cases.

    1. Write out a bulleted feature list for the Hare and Hounds game you were asked to implement. Aim to be complete if high-level. (Yes this is generally an easy question because the homework gives a good description, but you need to pull out the complete key properties of the game as a bulleted list from that description.)
    2. Move validity checking is part of the "domain" that you need to have a firm understanding of. The assigment spec gives a high-level description; elaborate on this spec by writing a use-case for a hound move. All you know is the move was from x1,y1 to x2,y2 - you have four numerical values. Along with the lecture notes the past project examples contain sample use-cases. We are not going to be picky on the exact syntax, just write something that gives a good step-by-step high-level description of the process.