2009-01-31 6 views
13

J'ai un gros fichier dans mon dépôt qui n'est pas fusionnable par le texte et que je n'ai pas besoin du contrôle de plusieurs versions pour (PPT par exemple). Je souhaite le conserver dans le référentiel à des fins de sauvegarde et le partager avec plusieurs personnes, mais je ne veux pas que la taille du référentiel s'agrandisse, car il conserve une copie du fichier chaque fois qu'il change. Est-il possible de spécifier ce comportement pour un fichier dans un référentiel Subversion?Comment Subversion peut-il conserver uniquement la dernière version d'un fichier?

Merci!

+1

Je voudrais juste dire que je pense que c'est une question plus valable que de nombreux commentateurs semblent l'indiquer. Bien sûr, le but de Subversion n'est pas de ne ressentir que la dernière version d'un fichier - mais il y a quelque chose à dire pour la cohérence ... – philsquared

+1

... Le soumissionnaire a déclaré vouloir conserver les fichiers aux côtés d'autres fichiers versionnés. Je peux aussi imaginer un cas hybride dans lequel vous ne voudriez pas avoir un historique limité, mais avoir une option d'auto-purge après tant de révisions, ou par seuil de stockage. Cela pourrait être utile – philsquared

+0

Je me demande si, en guise d'alternative, il existe une méthode pour utiliser certains hook svn que vous pourriez utiliser pour récupérer automatiquement un fichier d'un autre emplacement sur checkout/update? – Zoredache

Répondre

7

Cela n'est pas possible dans Subversion. Cependant: subversion conserve les changements dans ce fichier en tant que diffs binaires dans le dépôt, donc en fonction du type de changements que vous faites, il ne consommera pas beaucoup d'espace supplémentaire.

+0

+1 En d'autres termes, seules les modifications d'un fichier sont ajoutées lorsqu'il est versionné, et non une copie complète du fichier dans son nouvel état. –

1

Vous ne pouvez pas - et à juste titre.

Si un fichier ne change pas, une seule version est enregistrée. Si un fichier change, le point d'utilisation du contrôle de version de n'importe quel formulaire est sûrement de sorte que vous pouvez récupérer et version antérieure. Il peut sembler maintenant que vous ne voudriez jamais faire cela, mais les chances sont que dans le futur vous voudrez le récupérer.

Si l'espace est un problème, procurez-vous un disque plus grand ou améliorez votre plan. Cela en vaudra la peine à long terme.

+0

Je ne suis pas totalement d'accord. J'ai un arrangement différent, mais quelque peu comparable à la maison où j'ai des dossiers d'iMovie sauvegardés par Time Machine. Chaque fois que je fais une édition dans un fichier iMovie, tout est dupliqué - et chaque fichier est d'environ 5-10 Go! Mes disques de sauvegarde se remplissent très rapidement – philsquared

+0

Ce n'est pas vraiment la même situation car lorsque vous utilisez le contrôle de version, vous validez vos modifications quand elles sont terminées. La version de fichiers volumineux (médias) est presque une discipline distincte et je ne suis pas sûr que j'utiliserais subversion pour cela. –

0

Une alternative peut être de stocker un lien symbolique, puis d'héberger le fichier sur un partage réseau.

2

Vous ne pouvez pas. Subversion est conçu pour conserver les différentes versions de fichiers. C'est un système de contrôle de version, après tout. Peut-être ne pas le mettre dans subversion, mais le sauvegarder ou le partager en utilisant rsync à la place.

0

Vous utilisez probablement un mauvais outil pour ce travail.

0

Je ne peux pas croire que je le dis, mais MS Visual Source Safe a cette fonctionnalité. Cependant, je ne recommanderais pas d'utiliser MS-VSS pour trop de raisons. Les deux principaux sont les problèmes d'instabilité et puisqu'il est pratiquement impossible d'utiliser le branchement (officiellement cette option existe, mais pratiquement, elle ne fonctionne pas bien).

+0

La question initiale portait sur Subversion. – Starkey