Commit dd9f592b84a49ba934f94fc7b373ad98649be6bc
0 parents
Initial commit
Showing 5 changed files with 398 additions and 0 deletions Side-by-side Diff
git/.gitignore
View file @
dd9f592
git/Makefile
View file @
dd9f592
... | ... | @@ -0,0 +1,14 @@ |
1 | +OUTPUT=git.pdf git.html | |
2 | + | |
3 | +all: $(OUTPUT) | |
4 | + | |
5 | +%.pdf: %.md | |
6 | + pandoc -s -N -V lang:french -V papersize:a4paper -V geometry:margin=1in \ | |
7 | + $< -o $@ | |
8 | + | |
9 | +%.html: %.md | |
10 | + pandoc -s -N -t slidy $< -o $@ | |
11 | + | |
12 | +.PHONY: clean | |
13 | +clean: | |
14 | + -rm $(OUTPUT) 2> /dev/null |
git/git.md
View file @
dd9f592
... | ... | @@ -0,0 +1,283 @@ |
1 | +% Introduction à Git et utilisation pour l'enseignement et la recherche | |
2 | +% 30/1/2014 | |
3 | +% Louis-Claude Canon | |
4 | + | |
5 | +Introduction | |
6 | +============ | |
7 | + | |
8 | +- Prérequis : usage basique de `svn`. | |
9 | +- Interruptions bienvenues pour compléter ou discuter. | |
10 | +- Contenu : démonstrations, adoption, comparaison avec Subversion, cas | |
11 | + d'utilisation, conclusion et perspectives. | |
12 | + | |
13 | +Démonstration | |
14 | +============= | |
15 | + | |
16 | +But : montrer l'équivalent de `svn`. | |
17 | + | |
18 | + mkdir test | |
19 | + cd test | |
20 | + git init . # mise en place d'un serveur svn | |
21 | + > file | |
22 | + git add file # svn add file | |
23 | + git commit -a -m "Commit initial" # svn commit | |
24 | + | |
25 | +Le dépôt est uniquement local : le commit n'envoit rien. | |
26 | + | |
27 | + echo phrase1 > file | |
28 | + git commit -a -m "Second commit" | |
29 | + git checkout HEAD~1 | |
30 | + cat file | |
31 | + git checkout master | |
32 | + cat file | |
33 | + | |
34 | +Simplicité de déplacement dans l'historique. | |
35 | + | |
36 | + git log -p | |
37 | + gitk | |
38 | + echo phrase2 >> file | |
39 | + git status | |
40 | + git diff | |
41 | + | |
42 | +Concepts | |
43 | +======== | |
44 | + | |
45 | +Rappel pour Subversion : copie de travail et version serveur. | |
46 | + | |
47 | +Une zone en plus pour git : *stage*. Contient tous les changements candidats | |
48 | +pour être commités. Permet d'organiser les commits (chaque commit ne contenant | |
49 | +que des changements ayant la même logique). | |
50 | + | |
51 | +Une étape supplémentaire pour envoyer la copie locale à un dépôt externe. | |
52 | + | |
53 | +4 zones au total (2 de plus qu'avec Subversion) : | |
54 | + | |
55 | +![<http://upload.wikimedia.org/wikipedia/commons/d/d8/Git_operations.svg>](fig/Git_operations.png) | |
56 | + | |
57 | +Démonstration avancée | |
58 | +===================== | |
59 | + | |
60 | +Micro-commits | |
61 | +------------- | |
62 | + | |
63 | + git commit -a -m "Troisième commit" | |
64 | + sed s/phrase1/phrase1_1/ -i file | |
65 | + echo phrase3 >> file | |
66 | + git add -p | |
67 | + git commit -m "Micro-commit" | |
68 | + git add -p | |
69 | + git commit -m "Micro-commit" | |
70 | + git log -p | |
71 | + | |
72 | +Rédaction collaborative avec un serveur | |
73 | +--------------------------------------- | |
74 | + | |
75 | + git clone morgane:repo.git | |
76 | + mv repo test1 | |
77 | + git clone | |
78 | + mv repo test2 | |
79 | + cd test1 | |
80 | + # Modification quelques lignes | |
81 | + git add -p | |
82 | + git commit | |
83 | + git push | |
84 | + cd ../test2 | |
85 | + # Modification quelques lignes (avec conflit) | |
86 | + git commit -a | |
87 | + git push | |
88 | + git pull | |
89 | + # Fusion | |
90 | + git add lorem | |
91 | + git commit | |
92 | + git push | |
93 | + | |
94 | +Modification d'un précédent commit | |
95 | +---------------------------------- | |
96 | + | |
97 | + git log -p | |
98 | + git rebase -i HEAD~5 | |
99 | + git log -p | |
100 | + | |
101 | +Gestion des branches | |
102 | +-------------------- | |
103 | + | |
104 | + git branch branche | |
105 | + cat phrase4 >> file | |
106 | + git commit -a | |
107 | + git checkout master | |
108 | + cat file | |
109 | + git checkout branche | |
110 | + cat file | |
111 | + | |
112 | +Bilan des commandes | |
113 | +------------------- | |
114 | + | |
115 | +Travail local : | |
116 | + | |
117 | + git init . | |
118 | + git add file | |
119 | + git commit -a # ou git add -p et git commit | |
120 | + git checkout HEAD~1 | |
121 | + git log -p # ou gitk | |
122 | + git status | |
123 | + git diff | |
124 | + | |
125 | +Travail collaboratif : | |
126 | + | |
127 | + git clone | |
128 | + git push | |
129 | + git pull | |
130 | + | |
131 | +Avancées : | |
132 | + | |
133 | + git rebase -i HEAD~5 | |
134 | + git branch branche1 | |
135 | + | |
136 | +Adoption | |
137 | +======== | |
138 | + | |
139 | +Voir <http://en.wikipedia.org/wiki/Git_%28software%29#Adoption> pour un bilan à | |
140 | +jour. | |
141 | + | |
142 | +Offres d'emploi | |
143 | +--------------- | |
144 | + | |
145 | +![<http://www.itjobswatch.co.uk/jobs/uk/subversion.do#demand_trend>](fig/itjobs_svn.png) | |
146 | + | |
147 | +![<http://www.itjobswatch.co.uk/jobs/uk/git%20%28software%29.do#demand_trend>](fig/itjobs_git.png) | |
148 | + | |
149 | +![<http://www.itjobswatch.co.uk/jobs/uk/mercurial.do#demand_trend>](fig/itjobs_mercurial.png) | |
150 | + | |
151 | +![<http://www.itjobswatch.co.uk/jobs/uk/perforce.do#demand_trend>](fig/itjobs_perforce.png) | |
152 | + | |
153 | +![<http://www.indeed.com/jobtrends?q=git%2Csvn%2Cperforce%2Cmercurial%2Cbazaar&l=>](fig/indeed.png) | |
154 | + | |
155 | +Popularité | |
156 | +---------- | |
157 | + | |
158 | +![<http://hntrends.jerodsanto.net/?q=git%2Csvn%2Cmercurial%2Cperforce%2Cbazaar>](fig/hackernews.png) | |
159 | + | |
160 | +![<http://www.google.com/trends/explore#q=%2Fm%2F05vqwg%2C%20%2Fm%2F012ct9%2C%20%2Fm%2F08441_%2C%20perforce&cmpt=q>](fig/google_trends.png) | |
161 | + | |
162 | +<http://trendyskills.com/> avec 25% de git et 16% de svn (au 5/2/2014). | |
163 | + | |
164 | +Utilisation | |
165 | +----------- | |
166 | + | |
167 | +![<http://www.ohloh.net/repositories/compare>](fig/ohloh.png) | |
168 | + | |
169 | +![<http://image.slidesharecdn.com/eclipsesurvey2013reportfinal-130612073444-phpapp01/95/slide-14-638.jpg>](fig/eclipse.jpg) | |
170 | + | |
171 | +Bilan de ces 6 statistiques | |
172 | +--------------------------- | |
173 | + | |
174 | +- 3 montrant que git est plus populaire que Subversion | |
175 | +- 3 montrant que git est aussi utilisé que Subversion | |
176 | +- toute montrant que git progresse alors que Subversion stagne | |
177 | +- mercurial est le plus proche concurrent (10 fois moins que git) | |
178 | + | |
179 | +On est dans la partie "Late majority" du modèle de diffusion des idées. | |
180 | + | |
181 | +![](fig/1000px-Diffusion_of_ideas.png) | |
182 | + | |
183 | +Comparaison avec Subversion | |
184 | +=========================== | |
185 | + | |
186 | +Avantages : | |
187 | + | |
188 | +- aspect décentralisé : dépôt local complet | |
189 | + - utilisation pour le versionnage uniquement (sans aspect collaboratif) | |
190 | + - travail dans le train ou lors des pannes internet | |
191 | + - rapide : opérations immédiates pour les log, les commits | |
192 | +- possibilité d'organiser les modifications en "découpant" les commits | |
193 | +- ergonomie : pager intégré et couleurs | |
194 | +- facilité pour travailler sur un dépôt lorsqu'on a pas les droits (clone et | |
195 | + génération de patch) | |
196 | + | |
197 | +Inconvénients : | |
198 | + | |
199 | +- aspect décentralisé : une commande en plus pour enregistrer une modification | |
200 | + sur un serveur distant | |
201 | +- possibilité d'organiser les commits : une commande en plus pour sélectionner | |
202 | + les modifications à intégrer dans le futur commit (zone *stage*) | |
203 | + | |
204 | +Cas d'utilisation | |
205 | +================= | |
206 | + | |
207 | +Développement logiciel | |
208 | +---------------------- | |
209 | + | |
210 | +- ampleur : quelques dizaines de milliers de lignes ? | |
211 | +- historique : nécessité de le conserver ? | |
212 | +- nombre d'intervenants ? | |
213 | +- besoins avancées (branches) ? | |
214 | + | |
215 | +La migration et l'apprentissage de git peuvent valoir le coup (beaucoup de | |
216 | +projets ont fait le passage) ou pas. | |
217 | + | |
218 | +Contexte éducatif | |
219 | +----------------- | |
220 | + | |
221 | +- plus didactique car on peut découper l'enseignement (versionnage, puis fusion | |
222 | + de branche) | |
223 | +- apprentissage plus progressif et plus de concepts | |
224 | +- [gitstats](gitstats/index.html) | |
225 | + | |
226 | +Versionnage des supports d'un cours | |
227 | +----------------------------------- | |
228 | + | |
229 | +- pas d'historique | |
230 | +- un seul utilisateur (quel niveau d'information sur git ?) | |
231 | +- besoins modestes (commit) | |
232 | + | |
233 | +Git semble largement gagnant car décentralisé. | |
234 | + | |
235 | +Rédaction d'un article | |
236 | +---------------------- | |
237 | + | |
238 | +- dépôt existant avec historique | |
239 | +- utilisateurs néophytes | |
240 | +- quelques utilisateurs en mode passage de jeton (peu de conflit) | |
241 | +- besoins modestes (push/pull) | |
242 | + | |
243 | +Le coût de la migration ou de l'apprentissage dépasse les avantages apportés | |
244 | +par git. | |
245 | + | |
246 | +Rédaction d'un article (bis) | |
247 | +---------------------------- | |
248 | + | |
249 | +- pas de dépôt existant | |
250 | +- utilisateurs informés | |
251 | + | |
252 | +Autant commencer directement avec git. | |
253 | + | |
254 | +Conclusion | |
255 | +========== | |
256 | + | |
257 | +- plus puissant que Subversion et qui peut le plus peut le moins | |
258 | +- plus ergonomique à l'usage | |
259 | +- mieux vaut un seul outil pour n'avoir à retenir que le minimum de réflexes | |
260 | +- pas beaucoup plus complexe pour les besoins basiques (et même plus simple | |
261 | + pour le versionnage seul) | |
262 | +- pas indispensable de tout migrer à git, mais outil à connaître pour ne pas | |
263 | + limiter le choix lors des nouveaux projets (l'une des principales limites à | |
264 | + son utilisation avec l'absence de forge) | |
265 | + | |
266 | +Perspectives | |
267 | +============ | |
268 | + | |
269 | +- idées pour de prochains séminaires techniques | |
270 | + - plagiat : recherche un participant pour présenter les outils de détection | |
271 | + spécifiques aux textes / dissertations (C. Lang ?) | |
272 | + - syllabus : recherche de participants pour présenter leur usage et leur | |
273 | + retour (B. Legard ?) | |
274 | + - dépôt APP (F. Bouquet ?) : recherche d'un autre spécialiste d'une | |
275 | + démarche administrative | |
276 | + - tutoriel git : 1 à 2 heures avec plus de théorie, de la pratique et une | |
277 | + ouverture eclipse (N. Marilleau ?) | |
278 | + - BigData et calcul parallèle (K. Mazouzi ?) | |
279 | +- possibilité de monter un groupe de travail plus formel ? | |
280 | + - thème : outils connexes à la recherche et l'enseignement ? | |
281 | + - liste de diffusion pour éviter la pollution ? | |
282 | + - créneau ? | |
283 | + - durée : 15' à 1 heure ? |
talk.md
View file @
dd9f592
... | ... | @@ -0,0 +1,67 @@ |
1 | +Liste des thèmes possibles | |
2 | +========================== | |
3 | + | |
4 | +Séminex -> Séminaires sur les outils connEXes (ou séminaire d'excellence) | |
5 | + | |
6 | +Outils scientifiques | |
7 | +-------------------- | |
8 | + | |
9 | +- analyse de données : R, ggplot2 | |
10 | +- analyse de données reproductible : RStudio, Markdown, knitr, publish, git | |
11 | + | |
12 | +Outils techniques | |
13 | +----------------- | |
14 | + | |
15 | +- tutoriel git : 1 à 2 heures avec plus de théorie, de la pratique et une | |
16 | + ouverture eclipse (N. Marilleau ?) et un test de Mercurial ? | |
17 | +- BigData et calcul parallèle (K. Mazouzi ?) | |
18 | +- C11 et C++11 (J. Bernard) | |
19 | +- tikz (Pierre-Cyrille) | |
20 | +- Maven, Jenkins, Sonar ? | |
21 | +- plateformes de développement : Github/Bitbucket/Gitlab, travis, drone.io, | |
22 | + codeclimate, gemnasium, coveralls.io ? | |
23 | +- technos pratiques : rédaction collaborative (Authorea, Draftin, Penflip), | |
24 | + pad, chatb | |
25 | +- formats de fichier : Markdown (présentation, prise de notes, rédaction), quiz | |
26 | + (gift, latex) | |
27 | + | |
28 | +Outils pédagogiques | |
29 | +------------------- | |
30 | + | |
31 | +- plagiat : recherche un participant pour présenter les outils de détection | |
32 | + spécifiques aux textes / dissertations (C. Lang ?) | |
33 | +- syllabus (plan de cours) : recherche de participants pour présenter leur | |
34 | + usage et leur retour (B. Legard ?) | |
35 | +- Outils pédagogiques comme les TRC ? | |
36 | +- Génération de tests/mutants (mujava) et évaluation des batteries de tests | |
37 | +- Gradebook with import for publishing notes | |
38 | + | |
39 | +Outils administratifs | |
40 | +--------------------- | |
41 | + | |
42 | +- dépôt APP (F. Bouquet ?) : recherche d'un autre spécialiste sur la PI et les | |
43 | + licences pour les questions ouvertes suivantes | |
44 | + - licence sur les supports de cours (CC) ? | |
45 | + - PI des productions étudiantes ? | |
46 | + - PI des réalisations enseignantes (administratif, enseignement ou | |
47 | + recherche) ? | |
48 | + | |
49 | +Créneaux disponibles | |
50 | +==================== | |
51 | + | |
52 | +------- ----------------------------------------------- --- | |
53 | +30/1 surveillances EAD OK | |
54 | +6/2 projets M2 | |
55 | +13/2 AG département non | |
56 | +20/2 projet Lpro, forum BAC+2, réunion Vesontio non | |
57 | +27/2 vacances non | |
58 | +6/3 Bouquet (MOIA) | |
59 | +13/3 présentation M2, projets L3, réunion Cartoon non | |
60 | +20/3 Bouquet (APP), Forum sup'Info 70 Premières | |
61 | +27/3 Héam (entretien doctoraux), réunion Cartoon non | |
62 | +3/4 | |
63 | +10/4 | |
64 | +17/4 Paquette (APP) | |
65 | +24/4 | |
66 | +1/5 vacances | |
67 | +------- ----------------------------------------------- --- |
trends.md
View file @
dd9f592
... | ... | @@ -0,0 +1,30 @@ |
1 | +# Indicateurs de popularité et d'adoption d'une technologie | |
2 | + | |
3 | +## Agrégateur d'offres d'emploi | |
4 | + | |
5 | +- Offres françaises : <http://www.jobisjob.fr/Trends?q=postgresql> | |
6 | +- Offres mondiales : <http://www.indeed.com/jobtrends> | |
7 | +- Offres britanniques : | |
8 | + <http://www.itjobswatch.co.uk/jobs/uk/postgresql.do#demand_trend> | |
9 | + | |
10 | +## Tendance/popularité | |
11 | + | |
12 | +- Google trends : | |
13 | + <http://www.google.com/trends/explore#q=PostgreSQL%20%2B%20Postgres%2C%20MySQL&cmpt=q> | |
14 | +- Hacker news : | |
15 | + - <http://hntrends.jerodsanto.net/> | |
16 | + - <http://www.diffbot.com/robotlab/hackernews/#> | |
17 | + - <http://www.ryan-williams.net/hacker-news-hiring-trends/> | |
18 | +- Nombre et popularité des projets sur github : <www.yasiv.com/github/> | |
19 | +- <http://trendyskills.com/> | |
20 | + | |
21 | +## Usage réel | |
22 | + | |
23 | +Spécifique à chaque technologie : | |
24 | + | |
25 | +- SGBDs libre : Jelastic | |
26 | +- systèmes de gestion de versions : Ohloh, | |
27 | + <http://en.wikipedia.org/wiki/Git_%28software%29#Adoption> | |
28 | +- IPv6 : Google | |
29 | +- languages : TIOBE, | |
30 | + <http://en.wikipedia.org/wiki/Measuring_programming_language_popularity> |