L'utilisation de Git pour l'écriture de la thèse
Je suis de la planification à l'utilisation de Git pour la rédaction de ma thèse avec Latex. Que Git est spécialement conçu pour le développement de logiciels, serait-il envisageable pour mes besoins? Si c'est un bon choix pour moi, alors quoi de spécial et d'unique fonctionnalités sont disponibles dans Git, qui sont idéales pour la rédaction d'une thèse. Aussi je voudrais savoir quelles sont les précautions que je dois prendre avant d'entrer dans le Git de flux de travail. Je suis un débutant complet pour Git, donc ce qui doit être mon point de départ avant d'entrer en elle.
- Git est un très bon système de contrôle des révisions, il (et des trucs comme mercurial, svn) n'est pas strictement pour une utilisation avec le logiciel de développement. Puisque vous êtes à l'aide de Latex, qui est textuelle, git sera utile si vous souhaitez conserver les révisions de votre thèse, puis de comparer les révisions ou de retrouver une ancienne version. Il y a beaucoup de fonctionnalités vraiment cool dans Git, mais je pense que beaucoup des fonctionnalités plus avancées ne sera pas vraiment s'appliquer à vous (comme
git-bisect
), mais la gestion de version est de votre allée. Voici un tutoriel: schacon.github.com/git/gittutorial.html - La Fourche de la fonctionnalité sera utile si vous faites l'acquisition trouble de la personnalité multiple
- Les documents automatique de contrôle de version de Mac OS X Lion pourrait être intéressant si c'est une option pour vous.
- Git est grande, mais il vous faudra un certain temps pour apprendre, trouver des outils qui répondent à vos besoins, à comprendre la philosophie, etc. Tout en étant un fervent utilisateur git, je vous recommande Mercurial pour cette tâche, avec les mêmes fonctionnalités et est plus facile à installer/en savoir
Vous devez vous connecter pour publier un commentaire.
Il y a quelques considérations techniques et les meilleures pratiques. Je vais, pour la seconde, spécifiquement pour la rédaction de votre thèse et/ou des documents. Pour la technique, vous pouvez vérifier tout git tutoriel.
Définir la structure de répertoire pour votre thèse. Vous pouvez le changer
plus tard, et l'utilisation de git pour le suivi de l'évolution. Avoir une bonne structure
serait rendre votre vie plus facile.
De travailler avec plusieurs fichiers (utiliser include et/ou d'entrée en LaTeX). Vous pouvez les diviser en chapitres ou sections. Cela rendra plus facile pour suivre les changements qui impliquent des parties spécifiques de votre thèse (par exemple
git log content/introduction.tex
).Suivre uniquement les fichiers que vous allez toucher, pas ceux d'auto-généré. La création d'un bon .gitignore fichier va vous aider à beaucoup (LaTeX générer beaucoup de fichiers de travail).
Comme dans les programmes, de faire des micro-s'engage, c'est: un commit par idée/fonction/fix/activité.
Chaque fois que vous s'engager, écrire des messages significatifs (de haut niveau) qui explique ce que vous essayez d'atteindre dans chaque modification. Après une semaine, vous risquez de ne pas rappeler ce que vous avez essayé d'accomplir.
Garder la trace de chaque activité/idée/fix [voir (4) et (5)] pourrait être très utile de savoir combien vous avez fait (à l'aide de
git log
). Vous pouvez écrire votre avance de votre superviseur(s) basé surgit log
. Même plus, vous pouvez partager le référentiel avec votre directeur de recherche (à l'aide d'une interface web), et ils peuvent vérifier ce que vous avez fait dans votre thèse. Pour la prochaine réunion, ils savent à quoi s'attendre (cela dépendra de la façon dont sont friands à vos superviseurs en suivant un flux RSS).À l'aide de git sera utile pour vous garder en bonne humeur (parfois vous sentez que vous n'avez pas fait trop, mais d'avoir une trace de chaque changement vous aidera à garder les choses en perspective).
Pour chaque rapport d'avancement de vous envoyer, créer une balise. Pour le prochain rapport, vous pouvez télécharger la version et appliquer latexdiff. Il sera utile pour le suivi des modifications entre les versions vous soumettre pour révision. Ce sera également vous aider à vérifier si vous avez tenu compte de la rétroaction que vous avez reçu pour le rapport précédent.
Au dernier mais non le moins, je vous recommande de lire "Un succès Git ramification modèle". C'est un très court article sur un workflow git. Vous pouvez appliquer les mêmes concepts que lorsque vous rédigez votre thèse. Par exemple, si vous écrivez une expérience, vous pouvez créer une branche pour elle, et de fusionner une fois qu'il est "prêt." Si vous avez la revoir plus tard, il serait plus facile de voir quels ont été les changements impliqués et pourquoi.
Quand j'ai écrit ma thèse de Doctorat,1 j'ai utilisé git pour gérer le document et l'intégralité de ses chiffres, et je suis très heureux que je l'ai fait, pas moins, car il est facile d'écrire un script qui graphiques votre voie comme vous allez le long 😉 Le chef des avantages que j'ai trouvé:
pull
directement à partir de l'ordinateur portable et d'y travailler. Lorsque vous quittez, vous allez à votre ordinateur portable et de tirer à partir de l'ordinateur de bureau.Le chef de conseils que je donnerais:
git status
vide, soit par l'ajout de fichiers dont vous avez besoin, ou de les énumérer dans.gitignore
. Vous ne voulez pas risquer d'avoir des fichiers importants sans traces.git rebase
), juste pour être sûr et ne jamais utiliser git est dangereux commandes commegit reset --hard
etgit checkout -f
. Vous ne serez jamais voir votre référentiel complet, de sorte que vous ne se soucient pas ce que l'histoire ressemble - c'est beaucoup plus important que vous ne faites rien qui pourrait perdre (ou le rendre plus difficile à extraire) de votre travail.--color-words
option pourgit diff
. Sinon, votre diffs sera basé sur la ligne, et si vous reformatez un paragraphe en LaTeX, ça va être dur de voir ce que les vrais changements sont -git diff --color-words
ignore les sauts de lignes, et montre juste les vieux mots en rouge et les nouveaux mots dans le vert.1 ... avec LyX plutôt que directement en LaTeX, mais les problèmes sont essentiellement les mêmes.
Lines in Document
. Je saisgit log --log-size
montre la taille du message de commit, mais vous ne savez pas comment faire pour voir la taille de l'ensemble de la commettre (y compris les fichiers). Aucune idée de comment faire cela? merci encore!C'est principalement conçu comme un commentaire, mais il s'est avéré un peu trop long, donc je suis annonce comme une réponse.
J'ai utilisé darcs pour ma thèse de Maîtrise, et ont été à l'aide de RCS, CVS, SVN et Git pour beaucoup de documentation /projets d'écriture dans le passé. L'ensemble de ces outils fournissent la fonctionnalité de base que je veux -- possibilité de revoir mes modifications, remonter dans l'histoire, vérifiez dans "points d'annulation" lorsque je commence à écrire quelque chose de nouveau.
Il y a de vieux et essayé des recommandations pour la rédaction de la documentation avec le contrôle de version. À l'aide d'un texte-seulement le format source est important pour l'obtention sane diff. En outre, une astuce utile, j'ai ramassé (IIRC de Kernighan, écrit à propos de l'observance Troff source dans le contrôle de version) est de s'assurer que toutes les lignes sont raisonnablement court. J'ai tendance à frapper entrer tous les quelques lignes, avec un oeil vers le maintien d'une telle clause, ou idiome sur une seule ligne, de sorte que la diff sera minime si je décide de revoir ce détail plus tard.
Git fonctionne. Latex est effectivement le code source, il doit donc être parfaitement bien.
Cela dit,Git, tout génial, a que légèrement courbe d'apprentissage abrupte, car il permet beaucoup de choses pour collaborer avec de nombreuses personnes, la manipulation divergentes des histoires,etc. Son grand avantage est dans la fusion des conflits ( ce qui se passe si je modifie un fichier et quelqu'un d'autre modifie un fichier, et nous avons essayez de télécharger/s'engager pour un serveur?).
Si vous voulez juste la version de votre thèse, vous êtes peu probable de même frappé le conflit de fusion de cas (puisque vous êtes le seul à l'édition) et, a fortiori, les multiples histoires de cas.
Je voudrais utiliser quelque chose de plus simple comme SVN, qui, tout en pire pour faire les deux choses que j'ai décrit, s'adapte à vos besoins et est plus facile à apprendre.
Aussi, git stocke tout dans une .git fichier dans le dossier où vous vous trouvez. Si vous supprimez ce dossier , vos données ont disparu.
Dans un DVCS, un "flux de travail" signifie:
Avec votre local .repo git, vous serez en mesure de comparer avec les versions précédentes (qui peut venir dans maniable)
Mais l'avantage d'un DVCS, c'est quand:
Ensuite, une fois que la synchronisation est effectuée (par le biais d'un
git push
), vous pouvez prendre votre deuxième environnement complètement hors-ligne, et continuent à bénéficier de l'historique complet de votre repo.C'est là un DVCS questions dans votre cas.