2010-01-04 4 views
2

J'ai lu une discussion intéressante sur la mise en place de projets séparés dans leurs propres dépôts ou non. Mais ma question concerne un seul projet, qui a du code, et puis beaucoup d'illustrations - des centaines de Mb au moins. À un niveau de convivialité simple, il est ennuyeux de dire à un développeur «d'obtenir une copie de travail», c'est-à-dire d'attendre toute la section artistique à télécharger. Et je suis préoccupé par le fait que ça va être un gros ballonnement quand on utilise plus les branches.SVN pour un projet lourd en ressources - code et ressources dans un référentiel séparé?

Conceptuellement, c'est un projet. Mais quand j'ai travaillé avec des repos qui m'attendent à obtenir individuellement des copies de travail de plusieurs sous-répertoires, les choses semblent bousiller d'une manière ou d'une autre. Grâce à l'erreur de l'utilisateur le plus probable, mais tout le point est de faire des erreurs suer moins facile à faire! Un autre problème que je semble garder à l'esprit est que la définition des permissions par utilisateur sur les sous-répertoires ne permettra pas aux gens d'obtenir simplement une copie de travail du repo, avec les dossiers non autorisés omis. Au lieu de cela, ça casse juste ... Je ne veux pas vraiment que mes artistes puissent changer (ou même voir) du code.

+0

je l'ai déjà fait. Pas que ce soit une de vos affaires, pour être honnête. Aidez si vous voulez aider, pas pour obtenir des points insignifiants. –

Répondre

3

Je mettrais toujours le dans un dépôt, pour vous permettre de ramifier et de fusionner ce projet de manière centralisée. Surtout lors de la publication de balisage, vous devez marquer dans deux référentiels lors de la publication.

Vous pouvez faire une structure comme celle-ci:

/svn/repository/trunk/src 
/svn/repository/trunk/artwork 

Et dire aux développeurs de ne checkout src, les gens d'art checkout artwork, et quand branchement, vous pouvez faire une branche/tag trunk

1

Vous pouvez également utiliser un seul dépôt mais stocker les ressources dans un arbre séparé. À savoir, il suffit de déplacer la disposition habituelle

trunk/ 
branches/ 
tags/ 

ci-dessous un nouveau dossier que vous appelez code ou quelque chose comme ça, et stocker les ressources dans un dossier artwork. C'est à dire. créer une structure de dossiers comme celui-ci

code/ 
    trunk/ 
    branches/ 
    tags/ 
resources/ 
    trunk/ 
    branches/ 
    tags/ 

Un développeur veut généralement que pour obtenir le tronc de code, et comme il obtient habituellement trunk dans la première mise en page, il a juste besoin de se code/trunk dans la deuxième mise en page à la place. Je n'ai pas essayé cela, mais si le code lui-même repose sur des ressources, vous pourriez être en mesure de les tirer via svn:externals.

+0

Cela signifie qu'une fois que vous branchez ou marquez, vous devez branchez/étiqueter les deux, puis éditez les éléments externes pour utiliser la branche ou la balise. –

+0

Je suis d'accord sur le branch/tag à faire deux fois, mais c'est facile à écrire et peut être automatisé. – omermuhammed

0

Vous pouvez avoir un dépôt séparé pour les ressources, et vous y référer simplement avec une propriété svn: external, en évitant toutes ces erreurs d'utilisateur.

+0

Cela signifie qu'une fois que vous branchez ou marquez, votre externe est toujours une cible mobile. Vous devez branche/tag, puis * éditer * l'externe pour utiliser une révision fixe ou sa propre branche/tag pour obtenir ce droit –

0

Il semble que compressing your binary files peut réduire le temps d'importation et d'exportation de ces données à partir d'un référentiel Subversion.

+0

Pas de fichiers binaires. Les ressources artistiques, qui ne sont souvent pas compressibles - les fichiers PNG ne compressent pas vraiment par exemple, ni les fichiers vidéo. C'est une bonne chose à faire, mais cela ne résout pas vraiment le problème. –

Questions connexes