Directions for new and existing users of the HPC lab.
- Get an account on 10.107.88.11
- Get added to the git group
- Log into 10.107.88.11. Verify by running the command:
groups
- Go to the directory where you will create your project:
cd /storage2/git
- Create a git repository for your project:
git init --bare --shared=group project-name.git
- Change the group that your project belongs to so that all HPC
lab users can access it:
chgrp -R git project-name.git
- Give R and W permissions to your repository, so that others can
contribute:
chmod -R g+wX project-name.git
Your project repository is now setup, and it is available at:
/storage2/git/project-name.git
All further work will be from your work machine only.
On your work machine:
- Clone your new empty repository:
git clone user-name@10.107.88.11:/storage2/git/project-name.git
- Create a README file in the top-level of
project-name
- This README is a living document. It should tell someone
who will be a user of your project everything they need to
know on how to use the project – compile/synthesize/build,
simulate/emulate, location of source files, etc.
- Add the README to the repository:
git add README
- Commit the README:
git commit --message "Added README" README
- Push it into the repsitory - until you do this the README is a local file inf your work machine :
git push
- Do not commit machine-generated files or directories into the
repositories. Only files and scripts written/created by you should be
committed into the repository. So, your README must contain all
necessary directions to proceed from just these files.
- Commit often. Use meaningful comments when you do. If you are committing code which is not clean (not compiling, known errors), state as much in your comment. You can use "WIP" in your comment.
- If you are using an open-source repository or someone else's work
as part of your project, these should be included as submodules.
Read up on how to use git submodules. You cannot commit these
submodules as your work.
- Milestones/demos have to be demonstrated by cloning from your
commited repository only (no local files/dependencies).
Attempting to mandate a directory structure is always a tricky business; what follows is a set of guidelines:
- Separate directories for source code from different languages, eg:
src_c src_py src_vhdl
- Separate directories for flows, eg:
sim synth
- A
doc
directory for documentation (this is where your report will finally reside)
- A
scripts
directory for miscellanous scripts, Makefiles, utilities that you wrote to build your project or stitch things together. If these scripts are central to your project, like a synthesis script, then they should be in their our own src directory.
- The all-important README in your main directory which explains everything.