title: "Projets, CM2"
$\rightarrow$ doit correspondre aux fonctionnalités prévues et au code réel
## Étape de conception
## Méthode pour écrire du code
## Conseils sur le développement en équipe
## Programmation en binômes
$\rightarrow$ à utiliser pour les modules de base (traitement de données) voire plus
## Programmation par pseudo-code
$\rightarrow$ très utile quand le code à écrire n’est pas trivial
## Gestion d’erreurs
$\rightarrow$ problème difficile
$\rightarrow$ se mettre d’accord sur la façon de faire au début du projet
## Conventions de code
## Exemple de conventions de code C++
un nom de classe commence par une majuscule :
class Event ...
cpp
std::string _summary ;
préfixe ptr pour les pointeurs :
icalcomponent * _ptrIcal ;
cpp
void updateDataFromIcal();
icalcomponent * getPtrIcal() const ;
maximum 80 caractères par ligne
...
mise en place du code, close #1
historique des commits
H -- I
/
A -- B -- C -- F -- G
\ /
D -- E
installer git :
sudo apt-get install git
configurer l'utilisateur :
git config --global user.name "Julien Dehos"
git config --global user.email dehos@nimpe.org
paramétrer le client :
git config --global core.editor emacs
git config --global http.proxy http://user:pass@proxyhost:proxyport
---|---|
git clone
| récupère un dépôt |
git status
| affiche l'état courant des fichiers |
git add <fichiers>
| demande à Git de versionner des fichiers |
git mv <nom1> <nom2>
| renomme des fichiers versionnés |
git rm <fichiers>
| supprime des fichiers versionnés |
git commit <fichiers>
| valide les modifications des fichiers spécifiés |
git commit -a
| valide les modifications de tous les fichiers versionnés |
git commit -am "message"
| valide les modifications avec le message donné |
git log
| affiche la liste des commits |
git diff
| affiche les modifications courantes (par rapport au dernier commit)|
git checkout -- .
| supprime les modifications courantes (revient au commit) |
---|---|
git pull
| récupère les modifications du dépôt distant et les intègre dans le dépôt local |
git push
| envoie les commits du dépôt local sur le dépôt distant |
git branch
| affiche les branches locales |
git ls-remote
| affiche les branches distantes |
git branch <branche>
| crée une nouvelle branche |
git checkout <branche>
| change de branche |
git push -u origin <branche>
| envoie une nouvelle branche distante |
git merge <branche>
| fusionne une branche dans la branche courante |
git mv
et git rm
pour déplacer et supprimer des fichiers commités$ git clone https://juliendehos@github.com/juliendehos/projet_l3
Clonage dans 'projet_l3'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Dépaquetage des objets: 100% (3/3), fait.
Vérification de la connectivité... fait.
$ git add proto.cpp Makefile
$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
nouveau fichier : Makefile
nouveau fichier : proto.cpp
$ git commit -am "mise en place du code, close #1"
[master eab4260] mise en place du code, close #1
2 files changed, 9 insertions(+)
create mode 100644 Makefile
create mode 100644 proto.cpp
$ git push
Password for 'https://juliendehos@github.com':
Décompte des objets: 4, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (4/4), 447 bytes | 0 bytes/s, fait.
Total 4 (delta 0), reused 0 (delta 0)
To https://juliendehos@github.com/juliendehos/projet_l3
bd1f597..eab4260 master -> master
créer une branche locale :
$ git branch proto2
voir les branches locales :
$ git branch
* master
proto2
changer de branche :
$ git checkout proto2
Basculement sur la branche 'proto2'
voir les branches distantes :
$ git ls-remote
From https://juliendehos@github.com/juliendehos/projet_l3
4fca7ad38b299acdb7453547d5c9fc1d2494e4cc HEAD
4fca7ad38b299acdb7453547d5c9fc1d2494e4cc refs/heads/master
envoyer une nouvelle branche sur le serveur origin
:
$ git push -u origin proto2
Password for 'https://juliendehos@github.com':
Décompte des objets: 2, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (2/2), fait.
Écriture des objets: 100% (2/2), 266 bytes | 0 bytes/s, fait.
Total 2 (delta 0), reused 0 (delta 0)
To https://github.com/juliendehos/projet_l3
* [new branch] proto2 -> proto2
La branche proto2 est paramétrée pour suivre la branche distante proto2 depuis origin.
exemple :
-- B (proto2) -- B -- (proto2)
/ -> / \
A -- C (master) A -- C -- D (master)
passer sur la branche qui doit recevoir la fusion :
$ git checkout master
Basculement sur la branche 'master'
fusionner :
$ git merge proto2
Merge made by the 'recursive' strategy.
proto2.cpp | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 proto2.cpp
éventuellement, vérifier le log :
$ git log --oneline --decorate --graph
* 82eb957 (HEAD, master) Merge branch 'proto2'
|\
| * e29caa2 (origin/proto2, proto2) début proto2
* | 7c13fc0 modif proto1
|/
* 4fca7ad (origin/master) mise en place du code, close #1
## Au début du projet
## Tout au long du projet