|
PPL
|
Access the Parma Polyhedra Library Using GitThe Parma Polyhedra Library is currently being maintained on a publicly readable Git repository.Git is a powerful tool that allows many developers to work on the same source code. This is possible because each developer can clone the entire repository, including the entire development history. Developers then work independently on the cloned repository, on which they have full revision tracking capabilities, without the need of network connection to the server hosting the central repository. When they have made and tested their changes locally, they push them back to the central Git server. The Git server takes care of things like trying to merge the changes coming from different developers. When this is not possible, developers are notified so that they can proceed to a manual merge of the conflicts. Full read-write access to this repository is of course restricted to recognized developers. Write to us if you want to be involved in the development effort. We also provide read-only anonymous access to the repository. This allows anyone to easily synchronize their own copy with the development sources. Git is a powerful and complex system: see below for some Git tips and pointers to further reading. Read-Only Anonymous Git AccessFor this to work you need to install a reasonably recent version of Git on your system.In order to clone the repository of the PPL sources, issue the command
This will put your clone into the
The above commands will give you repositories with the complete development history. If you only want the latest revision of anything, use the following command instead:
After the initial checkout,
you can change into one of the project's directories and execute
any Git command that does not require read-write access to the central
repository.
For example, whenever you want to merge with the latest code changes,
Another repository you may be interested in is the one containing our web pages. To fully clone it, do, e.g.,
If you are behind a firewall that only allows you access to the outside world via HTTP (possibly with the intermediation of a proxy), you can use the alternative commands
Read-Write Git AccessIf you are a recognized developer, the first thing to do is to let Git know who you are. To do so, you should issue commands like
These commands will create the file [user] name = Roberto Bagnara email = bagnara@cs.unipr.it
Full access to the repository requires authenticated access
via the SSH protocol.
For this to work, an SSH client must be available on your local machine
and you must have an account on
If this does not work there is no point in reading further: solve this problem first. Issue the command
to clone the PPL source or the PPL web repositories, respectively.
After the initial checkout,
you can change into one of the project's directories and execute
most Git commands omitting
the
This command saves all non-pushed changes made by your commits in a temporary area, updates the local repository with changes done in the central one, and reapplies the saved commits. It is up to you to solve possible conflicts. Pull with rebase permits to have a cleaner linear history for small incremental changes. Web PagesNote that when you commit changes to the web pages, these will automatically be checked out into the web server's data area at http://www.cs.unipr.it/ppl/. Write Access and ResponsibilityAlways remember the commandments of team membership:
Using GitDocumentation
TipsMore About Git Configuration
The following command will define a
TODO: explain things such as diff.renames. Tips from External Sources
CVS Ultra-Quick Reference for the Old, CVS-addicted PPL DeveloperFor the lazy, here is a rough correspondence between some basic CVS commands and their Git counterparts.Checkout of the main trunk vs Cloning of the master branchcvs -d ssh://myusername@git.cs.unipr.it/cvs/ppl checkout ppl | +---> git clone ssh://myusername@git.cs.unipr.it/git/ppl/ppl.git Checkout of a branch vs Cloning of the master branch + Creation of a local branch tracking a remote one
cvs -d ssh://myusername@git.cs.unipr.it/cvs/ppl checkout -r products ppl
|
+---> git clone ssh://myusername@git.cs.unipr.it/git/ppl/ppl.git
git checkout -b products origin/products
Adding a file vs Staging file content for inclusion in next commitcvs add file.c | +---> git add file.c Removing a filecvs rm file.c | +---> git rm file.c Update vs Pull + Rebasecvs update | +---> git pull --rebase Commit vs Staging modified files content for inclusion + Commit + Push to the central repository
cvs commit
|
+---> git commit -a
git push
Differences with respect to the central repositorycvs diff | +---> git diff You can also try giving to your shell the command
or, if you really feel adventurous,
[Page last updated on July 25, 2009, 15:21:56.] |
|||||||||||
|
|
Home | Documentation | FAQ | Download | Applications | Credits | Mailing Lists | Bugs | Contribute | Links | About |