Comment effectuer une meilleure version du document de contrôle sur les fichiers Excel et SQL fichiers de schéma
Je suis en charge de plusieurs fichiers Excel et SQL fichiers de schéma. Comment dois-je effectuer une meilleure version du document de contrôle sur ces fichiers?
J'ai besoin de savoir la partie modifiée (autre partie) dans ces fichiers et de garder toutes les versions de référence. Actuellement, je suis en ajoutant l'horodatage sur le nom de fichier, mais j'ai trouvé qu'il semblait être inefficace.
Est-il un moyen ou une bonne pratique de faire mieux, le document de contrôle de version?
Par la manière, les éditeurs de m'envoyer les fichiers par e-mail.
- J'ai peut convertir les fichiers Excel en CSV les fichiers, puis de les suivre à l'aide de git, de sorte que je peux utiliser la commande diff pour voir la modification. Est-il d'autres bonnes pratiques?
- Voir les autres réponses, qui, je pense, sont mieux que celle que vous avez accepté.
Vous devez vous connecter pour publier un commentaire.
Depuis que vous avez marqués à votre question avec git je suppose que vous posez sur l'utilisation de Git pour cela.
Bien, SQL dumps sont de simples fichiers textes il est donc parfaitement logique à suivre avec Git. Il suffit de créer un référentiel et de les conserver en elle. Lorsque vous obtenez une nouvelle version d'un fichier, il suffit de l'écraser et de s'engager, Git va déterminer tout pour vous, et vous serez en mesure de voir les dates de modification, la caisse des versions spécifiques de ce fichier et de comparer les différentes versions.
La même chose est vraie pour
.xlsx
si vous les décompresser..xlsx
fichiers sont zippés les répertoires de fichiers XML (Voir Comment assembler correctement valide xlsx fichier à partir de son sous-composants?). Git va les voir comme des binaires à moins que décompressé. Il est possible de décompresser le.xlsx
et de suivre les changements apportés à chacun des fichiers XML à l'intérieur de l'archive.Vous pourriez aussi le faire avec
.xls
fichiers, mais le problème, c'est que.xls
format binaire, de sorte que vous ne pouvez pas obtenir des différences par rapport à elle. Mais vous serez toujours en mesure de voir l'historique des modifications et de la caisse des versions spécifiques..xls
fichiers. Vous pourrait probablement ajouter un pre-commit hook qui va mettre un.csv
près de lui et vous serez en mesure de diff de ceux-ci.La réponse que j'ai écrite ici peut être appliqué dans ce cas. Un outil appelé xls2txt peut fournir lisible par l'homme de sortie de .les fichiers xls. Donc en bref, vous devez mettre à votre .gitattributes fichier:
Et dans le .git/config:
Bien sûr, je suis sûr que vous pouvez trouver des outils similaires pour d'autres types de fichier, en les faisant
git diff
un outil très utile pour les documents office. C'est ce que j'ai actuellement dans mon global .gitconfig:Le Pro Git livre a un bon chapitre sur le sujet: 8.2 Personnalisation De Git - Git Attributs
J'ai été aux prises avec ce problème depuis quelques jours et nous avons écrit une petite .NET utilitaire permettant d'extraire et de normaliser les fichiers Excel de telle manière qu'ils sont beaucoup plus facile à stocker dans le contrôle de 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
Si il n'y a aucun intérêt, je suis heureux de le rendre plus configurable, mais pour le moment, vous devez mettre le fichier exécutable dans un dossier (par exemple la racine de votre répertoire source) et quand vous l'exécutez, il va:
Il est clair que toutes ces choses sont nécessaires, mais le résultat final est un fichier de feuille de calcul qui va encore ouvrir dans Excel, mais qui est beaucoup plus susceptible de différentiation et de différentiels de compression. Aussi, en stockant les fichiers extraits ainsi, il est beaucoup plus évident dans la version de l'histoire que des modifications ont été appliquées dans chaque version.
Si il n'y a aucun appétit, je suis heureux de rendre l'outil plus configurable depuis que je ne crois pas, tout le monde voudra le contenu de l'extrait, ou éventuellement les valeurs supprimées à partir de la formule de cellules, mais ceux-ci sont à la fois très utile pour moi en ce moment.
Dans les tests, 2 MO de feuille de calcul 'déballe' à 21 MO, mais ensuite j'ai été en mesure de stocker cinq versions de celui-ci avec de petites variations entre chacun d'eux, en 1.9 MO Mercurial fichier de données, et de visualiser les différences entre les versions de l'utilisation efficace de Au-Delà De Comparer en mode texte.
NB: même si je suis en utilisant Mercurial, j'ai lu cette question, tout en recherchant ma solution et il n'y a rien Mercurial spécifiques au sujet de la solution, doit fonctionner correctement pour que Git ou de tout autre VCS.
Tante, il est très simple dans La gestion des ZIP formats de fichiers dans Git:
Nous avons construit un open-source de Git en ligne de commande d'extension 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 n'importe quel classeur formats de fichier de sorte qu'il affiche le diff du classeur VBA contenu (à un certain moment, nous allons faire ce travail pour le contenu des feuilles de calcul, trop).Il est encore tôt, mais ça pourrait aider.
Utiliser le document ouvert extension
.fods
. C'est une plaine, non compressé balisage XML format Excel et LibreOffice peut ouvrir, et les diff aura l'air bien.Comme mentionné dans une autre réponse du commentaire .xlsx fichiers sont juste du XML.
Pour obtenir le répertoire XML (qui est
git
-mesure), vous avez pour "décompresser" le .xlsx fichier dans un répertoire. Un moyen rapide de voir cela sur Windows, c'est de renommer le fichier <nom de fichier>.xlsx <nom de fichier>.zip, et vous le verrez à l'intérieur du contenu. J'avais store avec le binaire, de sorte que lorsque vous commandez, vous n'avez pas à faire d'autres étapes dans l'ordre d'ouvrir le document dans Excel.Cet utilitaire Excel fonctionne très bien pour moi:
Le Contrôle de Version pour Excel
C'est un simple outil de gestion des versions pour les classeurs et les macros VBA. Une fois que vous avez commis une version, il est enregistré dans un dépôt Git sur votre PC. Je n'ai jamais essayé de ré. SQL fichiers de schéma, mais je suis sûr qu'il ya un moyen de contourner.
xltrail
est beaucoup plus facile que cela.Mon approche avec des fichiers Excel est similaire à Jon, mais au lieu de travailler avec les premières Excel des données de texte je l'exportation de plus les formats acceptés.
Voici l'outil que j'utilise: https://github.com/stenci/ExcelToGit/tree/master
Tous vous avez besoin est de télécharger l' .fichier xlsm (cliquez sur la Vue Raw lien sur cette page.) N'oubliez pas de vérifier la Excel réglage comme décrit dans le fichier readme. Vous pouvez également ajouter le code pour l'exportation de données SQL pour les fichiers texte.
Le classeur est à la fois un convertisseur binaire Excel pour les fichiers texte et un lanceur de windows Git outils, et il peut être utilisé aussi avec les non Excel de projets connexes.
Ma version de travail est configuré avec des dizaines de classeurs Excel. J'utilise le fichier d'ouvrir également Git-gui pour les non Excel projets, tout en ajoutant la commande git dossier en main.