Getting the Source ------------------ The sources for this project are in a git repository. Git is a distributed revision control tool originally created by Linus Torvalds to track the Linux kernel tree. With git, there is generally no central repository that everyone commits their changes to. Instead, collaboration is done by "pulling" changes from the repositories of other contributors. When you check out the sources, you will get the entire history along with the latest version. You do not need any special permissions to clone a repository and start making changes. To retrieve the ceo sources, clone the public repository: git clone /users/git/public/pyceo.git Making Changes -------------- Now that you have your own repository, you can start making changes. You may can add, update, or delete files as necessary and then commit these changes to your local repository. Then you can make these changes available to others. Read the documentation to learn more about basic git usage. Git Resources ------------- For a tutorial, see [1] generally and [2] if you are familiar with CVS. The manpages for git are also invaluable, use `man git-foo` to view them, or look online at [3]. Finally, if you're interested in how git works internally, see [4] for documentation of the "core" commands, and [5] for documentation of the repository format. [1] http://www.kernel.org/pub/software/scm/git/docs/tutorial.html [2] http://www.kernel.org/pub/software/scm/git/docs/cvs-migration.html [3] http://www.kernel.org/pub/software/scm/git/docs/ [4] http://www.kernel.org/pub/software/scm/git/docs/core-tutorial.html [5] http://www.kernel.org/pub/software/scm/git/docs/repository-layout.html Setting up a Public Repository ------------------------------ If you make changes, you will probably want to share them with the other contributors. The only thing other people need to fetch your changes into their own repository is the location of your repository and read access to it. With that they can use `git pull` to fetch and merge your changes. If you want to make changes but not publish them immediately after each commit, create a second "public" repository and use "git push" when you are ready to make your changes public. Refer to the Internet for more details.