# ICS2018-HUST Recolic Public Template User Guide

> [中文版](https://translate.google.com/)

## Setup

Refer to https://git.recolic.org/snippets/14 . The only thing you need to do is: Clone this repo and modify your `~/.ssh/config`.

## Usage

> Assuming that you're familiar to basic git and linux operations.

#### Set environment variable

Modify `nemu/Makefile.git` and run `make setup`, as offical guide asked you to. 

> Don't forget to modify your `config.fish/zsh.rc/...` if you're not using bash.

#### Writing Code

Use your favorite editor/IDE. Modify `.gitignore` as your will.

#### Build

`cd nemu && make`. Makefile will NEVER automatically generate a shitty commit.

#### Staging your modification (git add)

`git add -A`

#### Commit (git commit)

To make the teacher happy, you still need to call the *shitty commit generator* to create your commit.

```
# Equivalent to `git commit -m GENERATE_MESSAGE("your message")`
make git_gen M="Im doing something really good today. The shitty commit generator is not shitty anymore!"
```

Note that empty commit it not allowed anymore. It's unnecessary.

#### Push to remote repo (git push)

> You're not necessary to push your code to HUST repo at all! Use your github / gitlab to make yourself happy.

`git push`

#### Submit your PA

By default, the Makefile in this repo will use [my reverse proxy](https://git.recolic.org/snippets/14).

```
make submit
```

If you're in hust CERNET and don't want the slow proxy, modify the `hust_submit_server_host` variable in Makefile to the official one.

----------

# ICS2018 Programming Assignment

This project is the programming assignment of the class ICS(Introduction to Computer System) in Department of Computer Science and Technology, Nanjing University.

For the guide of this programming assignment,
refer to http://nju-ics.gitbooks.io/ics2018-programming-assignment/content/

To initialize, run
```bash
bash init.sh
```

The following subprojects/components are included. Some of them are not fully implemented.
* [NEMU](https://github.com/NJU-ProjectN/nemu)
* [Nexus-am](https://github.com/NJU-ProjectN/nexus-am)
* [Nanos-lite](https://github.com/NJU-ProjectN/nanos-lite)
* [Navy-apps](https://github.com/NJU-ProjectN/navy-apps)
