compression/ versions de fichier

Random questions or observations about and around computers
Post Reply
User avatar
Lamiel
Posts: 26
Joined: Wed Apr 12, 2006 11:46 am

compression/ versions de fichier

Post by Lamiel » Sat Oct 04, 2008 11:05 am

salut!

j'ai x versions d'un fichier .doc ou .ppt ou .xls ou .pdf, j'aimerais revenir à tout moment à une certaine version d'un fichier.

une première solution est d'enregistrer un fichier pour chaque version, mais ce n'est pas très glorieux.
ou
il y a les patchs, mais si on a 1000 versions, si on veut récupérer la dernière, il faudrait appliquer 999 patchs, non? et ce serait long.
ou
on prend la première solution et on cherche un outil de compression de fichiers optimisés pour les ressemblances.


qu'en penses-tu?

User avatar
Vincent
Posts: 3077
Joined: Fri Apr 07, 2006 12:10 pm
Location: Schtroumpf
Contact:

Re: compression/ versions de fichier

Post by Vincent » Sat Oct 04, 2008 12:02 pm

Franchement, je ne pense pas qu'il y ait de solution miracle; ce sont des formats binaires, donc les patchs, bof.
Lamiel wrote:un outil de compression de fichiers optimisés pour les ressemblances.
Tous les outils de compression sont "optimisés pour les ressemblance"; c'est un peu le nerf de la guerre pour eux, les ressemblances :D

Je ne connais pas les détails des différents outils, mais il est possible que certains, lorsqu'on construit une archive avec de nombreux fichiers, compressent chaque fichier séparément; ces outils sont donc à éviter ici.

En revanche, les formats tar.gz et tar.bz2 devraient être efficaces, puisque la compression passe d'abord par la concaténation des fichiers dans un fichier tar, puis par la compression de ce fichier.

Je pense que la compression tar > bzip2 marchera le mieux: l'algorithme commence par trier les blocs similaires. Tu peux augmenter la taille maxi des blocs avec les options -1 à -9. (de 100Ko à 900Ko). Evidemment, toi tu veux le maximum.

Note que si tu as beaucoup de fichiers avec beaucoup de gros blocs similaires, la compression bzip2 risque de prendre pas mal de temps et de mémoire. Si ça devient ingérable, réduis la taille des blocs.

(note: rien ne t'empêche d'essayer tar > d'autres formats)
{ Vincent Hugot }

User avatar
Lamiel
Posts: 26
Joined: Wed Apr 12, 2006 11:46 am

Re: compression/ versions de fichier

Post by Lamiel » Sat Oct 04, 2008 7:21 pm

merci, avec bzip2,

imaginons que nous avons un fichier MonDocument.xxx bzippé en MonDocument.yyy

est-il possible d'ajouter un autre fichier dans l'archive MonDocument.yyy ?
si oui est-ce plus rapide que si on avait à bzipper 2 fichiers?

User avatar
Vincent
Posts: 3077
Joined: Fri Apr 07, 2006 12:10 pm
Location: Schtroumpf
Contact:

Re: compression/ versions de fichier

Post by Vincent » Sat Oct 04, 2008 7:58 pm

Non, ce n'est pas possible: bzip2 ne compresse qu'un seul fichier à la fois; pour de multiples fichiers, il faut les regrouper dans une tarball. (et c'est comme ça que tu auras la meilleure compression: un algo qui compresse chaque fichier séparément risque de louper les similitudes entre fichiers...)

Donc le plus, simple, ce serait que tu archives tes fichiers 1000 par 1000, par exemple.
{ Vincent Hugot }

User avatar
Lamiel
Posts: 26
Joined: Wed Apr 12, 2006 11:46 am

Re: compression/ versions de fichier

Post by Lamiel » Sun Oct 05, 2008 1:29 pm

aïe, je voulais m'en servir pour faire du versionning à l'instar de subversion.

c'est quoi une tarball?

User avatar
Vincent
Posts: 3077
Joined: Fri Apr 07, 2006 12:10 pm
Location: Schtroumpf
Contact:

Re: compression/ versions de fichier

Post by Vincent » Sun Oct 05, 2008 1:55 pm

Lamiel wrote:c'est quoi une tarball?
Heu, un fichier .tar, tout bêtement (compressé ou non).
Lamiel wrote:aïe, je voulais m'en servir pour faire du versionning à l'instar de subversion.
Rien ne t'empêche d'utiliser SVN ou GIT, ça marche aussi sur les fichiers binaires (sauf pour les merge et les diff, bien sûr).

C'est quoi l'ordre de grandeur du nombre de fichiers que tu as à gérer: une centaine ? 10 000 ? 10^6 et + ? J'ai un peu de mal à comprende ce que tu essayes de faire, au juste... tu as un programme qui génère des zillions de fichiers à la file ou tu es juste en train de chercher midi à 14h pour gérer tes fichiers perso ? :quoi
{ Vincent Hugot }

User avatar
Lamiel
Posts: 26
Joined: Wed Apr 12, 2006 11:46 am

Re: compression/ versions de fichier

Post by Lamiel » Sun Oct 05, 2008 6:00 pm

en fait, on doit réaliser un projet qui refait entre autres, et en gros, du svn, mais pour les fichiers .doc, .ppt, .html, .pdf, .jpg, .xls, forcément on n'a pas le droit d'utiliser svn, ni cvs pour gérer les versions

User avatar
Vincent
Posts: 3077
Joined: Fri Apr 07, 2006 12:10 pm
Location: Schtroumpf
Contact:

Re: compression/ versions de fichier

Post by Vincent » Sun Oct 05, 2008 7:03 pm

Yokiii, vous allez bien vous amuser :hum

Ma suggestion, qui vaut ce qu'elle vaut, est par défaut de compresser les fichiers séparément, donc x.doc devient x.doc.bz2 (modulo tes tags pour t'y retrouver dans les versions...) C'est le plus simple et le plus rapide.

Puis, pour optimiser l'occupation du disque, de définir un phénomène d'archivage (déclenché par l'utilisateur ou automatiquement après un certain nombre de révisions) dans lequel les vieux fichiers sont tous mis dans une unique tarball ( ;) ) et compressés. C'est plus long, mais le gain de place peut être considérable:

Expérience: j'ai fait une copie d'un PDF:

Code: Select all

76K Archive.tar.bz2  64K cr2_1.pdf.bz2  64K cr2.pdf.tar.bz2
76K cr2_1.pdf        76K cr2.pdf
Les deux pdf.bz2 font 128 Ko au total.
Une tar.bz2 contenant les deux fichiers fait 76 Ko...
Une tar.bz2 contenant trois fois le même fichier fait 80 Ko...

Donc plus tu as de fichiers similaires, plus tu gagnes de place.

Note que ce n'est pas vrai de tous les formats: au format zip, l'archive des deux fichiers ferait exactement deux fois la taille de l'archive d'un fichier: zip compresse chaque fichier séparément.

Donc dans tous les cas, tu as intérêt à passer par une tarball avant de compresser, quelque soit le format que tu choisis.
{ Vincent Hugot }

Post Reply

Who is online

Users browsing this forum: No registered users and 77 guests