Bonjour,
Le contexte :
-------------
Je suis lycéen et travaille :
- au lycée sur plusieurs postes différents, ayant en commun un serveur sur lequel j'enregistre mon travail, mais n'ayant pas accès à internet (notons les PCS)
- chez moi sur un ordi portable, ayant accès à internet mais pas aux ordi du lycée (notons le HOME).
J'ai créé un dossier IRIS sur HOME. Il contient tous mes cours et mes tps.
J'en ai créé un autre sur PCS.
Si je commence par exemple un projet "PCS/IRIS/TP1/" au lycée, je veux pouvoir le continuer chez moi dans "HOME/IRIS/TP1/"
Et de retour au lycée je veux pouvoir continuer là où j'en étais chez moi.
J'effectue donc constamment des copies de IRIS, que je met sur une clef (notons la USB).
Chaque fois que je fais des modifs, je dois faire :
Une copie de PCS/IRIS vers USB/IRIS
Une copie de USB/IRIS vers HOME/IRIS
Et vice versa.
Le problème :
-------------
Aujourd'hui j'ai fait une bourde.
J'avais travaillé la semaine dernière sur TP1 et TP2 en cour.
Pressé, je n'avais pas lancé la copie de tout le dossier IRIS sur ma USB, j'avais donc effectué la sauvegarde en ne sélectionnant que les dossiers modifiés. C'est là que j'ai oublié que j'avais travaillé sur TP1, et je n'ai copié que TP2 (PCS/IRIS/TP2 -> USB/IRIS/TP2).
Ce WE j'arrive chez moi, je copie USB/IRIS sur HOME/IRIS.
Je bosse sur HOME/IRIS/TP2.
Le WE se termine, je copie HOME/IRIS sur USB/IRIS.
J'arrive au lycée, et là c'est le drame : je fais comme d'hab USB/IRIS -> PCS/IRIS et par conséquent j'écrase la version la plus récente de TP1 par une ancienne.
J'ai ainsi perdu près de 6h de travail.
Les solutions trouvées :
-----------------------
J'ai appris qu'il existe des logiciels "intelligents" permettant de copier coller sans écraser les fichiers les plus récents par des anciens.
J'ai aussi appris qu'il existe des CVS, Git me plaisant le plus grâce à sa notion de branches, de conservation des historiques et parce qu'il ne nécessite pas forcément une connexion internet.
Ce que je tente de faire :
------------------------
Quitte à changer mes habitudes pour faire quelque chose de mieux, j'aimerais pouvoir combiner
- La synchronisation sans écraser les fichiers les plus récents par des anciens
- La conservation de l'historique des modifications
- Créer des branches pour faire des modifications
- Préparer un futur travail collaboratif (travailler à plusieurs m'intéresse vivement)
J'ai donc l'intention de me servir de Git.
Vu que je n'ai pas internet au lycée, je dois continuer à me servir de ma clef.
Première idée :
--------------
Créer un dépôt nu (que le dossier .git) sur ma clef USB et m'en servir pour pousser et tirer.
Problème :
Je n'arrive pas à push dessus, et ça ne m'étonne pas puisque je n'ai fait que la commande "git clone --bare" sans autre réglages : ce n'est pas un véritable dépôt serveur.
J'ai lu dans le livre Pro Git qu'il était possible de créer un serveur 'local'. Est-ce ce qu'il faudrait faire sur ma USB dans ce cas ?
Deuxième idée :
---------------
Passer de HOME -> USB -> PCS -> USB -> HOME en tirant seulement.
C'est à dire que sur HOME, je crée un dépôt.
Je le clone sur USB, et je clone celui de USB sur PCS.
A ce stade tout est synchronisé.
Je fais des modifs sur HOME.
Il me faut synchroniser PCS, via USB.
Pour synchroniser USB, je tire sur HOME depuis USB.
Pour synchroniser PCS, je tire sur USB depuis PCS.
Je répète l'opération inverse lorsque j'ai fait des modifs
J'ajoute USB comme dépôt à HOME. J'ajoute PCS comme dépôt à USB.
Et j'utilise le même principe pour PCS -> USB -> HOME.
Problème1 :
J'ai lu que sur un serveur distant il faut un dépôt pour chaque projet.
Moi j'ai beaucoup de Tps, donc plusieurs projets.
Il faudrait donc créer un dépôt pour chaque dossier (et cela 3 fois, puisqu'il faut le faire à chaque fois sur HOME, USB, et PC).
Puis tirer 3 fois pour chaque projet avancé dans la journée...
Ca me parait très très lourd.
-> Pour résoudre cela je serais donc tenté de faire un seul dépôt, dans IRIS. Il ne faudrait donc tirer que 3 fois.
Problème2 :
Avec un seul dépôt dans IRIS l'historique serait un peu bizarre puisque tous les projets seraient mélangés. Il me faudrait alors créer des branches parallèles pour chaque projet ? (je suis pas encore méga à l'aise avec les branches, même si ça à l'air génial)
Voilà j'espère que je ne vous ai pas ennuyé, et que mes explications vous paraitront claires.
Si vous avez des réponses aux questions que je me pose, ou "seulement" quelques idées/suggestions, je vous serai très reconnaissant de me les faire connaitre.
Si vous ne comprenez pas certaines de mes explications, n'hésitez pas non plus à me le dire, je reformulerai.
Merci d'avance,
SmallFitz.
Partager