Je suis en charge de plusieurs fichiers Excel et fichiers de schéma SQL. Comment dois-je effectuer un meilleur contrôle de version de document sur ces fichiers?
J'ai besoin de connaître la partie modifiée (partie différente) dans ces fichiers et de conserver toutes les versions pour référence. Actuellement, j'ajoute l'horodatage au nom du fichier, mais j'ai trouvé que cela semblait inefficace.
Existe-t-il un moyen ou une bonne pratique d'améliorer le contrôle des versions des documents?
Au fait, les éditeurs m'envoient les fichiers par e-mail.
git
version-control
ms-office
versioning
Marcus Thornton
la source
la source
Réponses:
Puisque vous avez tagué votre question avec git Je suppose que vous posez des questions sur l'utilisation de Git pour cela.
Eh bien, les vidages SQL sont des fichiers texte normaux, il est donc parfaitement logique de les suivre avec Git. Créez simplement un référentiel et stockez-les dedans. Lorsque vous obtenez une nouvelle version d'un fichier, écrasez-le simplement et validez, Git déterminera tout pour vous, et vous pourrez voir les dates de modification, extraire des versions spécifiques de ce fichier et comparer différentes versions.
La même chose est vraie
.xlsx
si vous les décompressez..xlsx
Les fichiers sont des répertoires compressés de fichiers XML (voir Comment assembler correctement un fichier xlsx valide à partir de ses sous-composants internes? ). Git les verra comme binaires à moins d'être décompressés. Il est possible de décompresser.xlsx
et de suivre les modifications apportées aux fichiers XML individuels à l'intérieur de l'archive.Vous pouvez également le faire avec des
.xls
fichiers, mais le problème ici est que le.xls
format est binaire, vous ne pouvez donc pas en obtenir des différences significatives. Mais vous pourrez toujours voir l'historique des modifications et extraire des versions spécifiques.la source
.xlsx
est XML, donc devrait fonctionner correctement . En général, il n'existe aucun moyen de comparer facilement deux.xls
fichiers. Vous pourriez probablement ajouter un hook pré-commit qui en mettra un à.csv
proximité et vous pourrez les différencier.La réponse que j'ai écrite ici peut être appliquée dans ce cas. Un outil appelé xls2txt peut fournir une sortie lisible par l'homme à partir de fichiers .xls. Donc, en bref, vous devriez mettre ceci dans votre fichier .gitattributes:
Et dans le .git / config:
Bien sûr, je suis sûr que vous pouvez également trouver des outils similaires pour d'autres types de fichiers, ce qui en fait
git diff
un outil très utile pour les documents bureautiques. C'est ce que j'ai actuellement dans mon .gitconfig global:Le livre Pro Git a un bon chapitre sur le sujet: 8.2 Personnalisation de Git - Attributs Git
la source
Je me débat avec ce problème exact depuis quelques jours et j'ai écrit un petit utilitaire .NET pour extraire et normaliser les fichiers Excel de manière à ce qu'ils soient beaucoup plus faciles à stocker dans le contrôle de code source. J'ai publié l'exécutable ici:
https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXmlUnpack.exe
..et la source ici:
https://bitbucket.org/htilabs/ooxmlunpack
S'il y a un intérêt, je suis heureux de rendre cela plus configurable, mais pour le moment, vous devriez placer l'exécutable dans un dossier (par exemple la racine de votre référentiel source) et lorsque vous l'exécuterez, il:
Il est clair que toutes ces choses ne sont pas nécessaires, mais le résultat final est un fichier de feuille de calcul qui sera toujours ouvert dans Excel, mais qui se prête beaucoup mieux à une compression différente et incrémentielle. De plus, le stockage des fichiers extraits rend beaucoup plus évident dans l'historique des versions les changements qui ont été appliqués dans chaque version.
S'il y a un quelconque appétit, je suis heureux de rendre l'outil plus configurable car je suppose que tout le monde ne voudra pas que le contenu soit extrait, ou peut-être les valeurs supprimées des cellules de formule, mais ces deux éléments me sont très utiles pour le moment.
Lors des tests, une feuille de calcul de 2 Mo `` décompresse '' à 21 Mo, mais j'ai ensuite pu stocker cinq versions de celle-ci avec de petites modifications entre chacune, dans un fichier de données Mercurial de 1,9 Mo, et visualiser les différences entre les versions efficacement en utilisant Beyond Compare dans mode texte.
NB: bien que j'utilise Mercurial, j'ai lu cette question en recherchant ma solution et il n'y a rien de spécifique à Mercurial dans la solution, cela devrait fonctionner correctement pour Git ou tout autre VCS.
la source
Tante a recommandé une approche très simple dans la gestion des formats de fichiers ZIP dans Git :
la source
Utilisez l'extension de document ouvert
.fods
. C'est un format de balisage XML simple et non compressé que Excel et LibreOffice peuvent ouvrir, et les différences auront l'air bien.la source
Nous avons créé une extension de ligne de commande Git open source pour les classeurs Excel: https://www.xltrail.com/git-xltrail .
En un mot, la caractéristique principale est qu'il rend
git diff
travailler sur tous les formats de fichier de classeur afin d'afficher la différence sur le contenu VBA du classeur (à un moment donné, nous ferons également ce travail pour le contenu des feuilles de calcul).C'est encore tôt, mais cela pourrait aider.
la source
Comme mentionné dans le commentaire d'une autre réponse, les fichiers .xlsx ne sont que du XML.
Pour accéder au répertoire XML (qui est
git
-able), vous devez "décompresser" le fichier .xlsx dans un répertoire. Un moyen rapide de voir cela sous Windows est de renommer le fichier <filename> .xlsx en <filename> .zip, et vous verrez le contenu interne. Je stockerais cela avec le binaire afin que lorsque vous passez à la caisse, vous n'ayez pas à faire d'autres étapes pour ouvrir le document dans Excel.la source
Cet utilitaire Excel fonctionne très bien pour moi:
Contrôle de version pour Excel
Il s'agit d'un outil de gestion des versions assez simple pour les classeurs et les macros VBA. Une fois que vous avez validé une version, elle est enregistrée dans un référentiel Git sur votre PC. Je ne l'ai jamais essayé. Fichiers de schéma SQL, mais je suis sûr qu'il existe un moyen de contourner.
la source
xltrail
c'est beaucoup plus facile que ça.Mon approche avec les fichiers Excel est similaire à celle de Jon, mais au lieu de travailler avec les données de texte Excel brutes, j'exporte vers des formats plus conviviaux.
Voici l'outil que j'utilise: https://github.com/stenci/ExcelToGit/tree/master
Tout ce dont vous avez besoin est de télécharger le fichier .xlsm (cliquez sur le lien Afficher brut sur cette page .) N'oubliez pas de vérifier le paramètre Excel comme décrit dans le readme. Vous pouvez également ajouter le code pour exporter des données SQL vers des fichiers texte.
Le classeur est à la fois un convertisseur d'Excel binaire en fichiers texte et un lanceur des outils Windows Git, et il peut également être utilisé avec des projets non liés à Excel.
Ma version de travail est configurée avec des dizaines de classeurs Excel. J'utilise également le fichier pour ouvrir Git-gui pour les projets non Excel, en ajoutant simplement le dossier git à la main.
la source