2009-06-05 5 views
0

Nous essayons de restructurer notre dépôt SVN et inclure un dossier lib sous le tronc à des ensembles de maisons que le projet dépend.dépôt SVN Structure et assemblages partagés

Je suis curieux de savoir comment vous avez affaire à des assemblages partagés? En avez-vous plusieurs copies qui couvrent différents dossiers de bibliothèque de troncs? Avez-vous une sorte de processus de construction qui mettra automatiquement à jour les dossiers lib quand cet assemblage est construit?

Comment voyez-vous les gars poignée où vous êtes à?

Merci!

Répondre

1

version Nous tous nos bibliothèques de base.

Ainsi par exemple, le SVN ressemble à ceci:

/repo/lib1/trunk/

/repo/lib1/tags/1.0

/repo/lib1/tags/1.1

/repo/LIB1/branches

...

Cela évite la situation où vous cassez BC, ou quelque chose, et il nécessite une mise à jour pour les trois autres projets qui utilisent la bibliothèque.

De plus, nous utilisons svn:externals à lier ces bibliothèques dans les projets.

/repo/project1/tags/1.0

/repo/projet1/trunk/bibliothèque

...

svn propedit svn:externals /repo/project1/trunk/library 

Entrez les informations suivantes:

lib1 svn: //host/repo/lib1/tags/1.1

... et valider la modification. Project12 lui-même suit également la convention (balises pour les versions, etc.).

Selon la langue de votre choix, il y a bien sûr d'autres options. Faites-moi savoir si vous pouvez entrer dans les détails et je vois si je peux prolonger ma réponse. Mais dans l'ensemble, c'est aussi simple que ça. Aucun autre outil de construction requis.

Nous effectuons tout notre déploiement directement à partir de subversion (via capistrano). C'est en gros juste vérifiant l'étiquette, et fait. Permet même de le fixer à chaud. Si vous me permettez pimping mon propre blog - J'ai beaucoup écrit sur ce sujet ("déploiement de svn").

HTH!

1

Pour les différents référentiels partageant les mêmes bibliothèques, j'utilise une référence externe au référentiel hébergeant les bibliothèques afin qu'elles partagent toutes le même code. Si, dans le même référentiel, plusieurs projets nécessitent la compilation des bibliothèques, le processus de génération effectue une copie à partir d'un dossier libs de niveau supérieur vers chaque sous-dossier de projets si nécessaire.

Questions connexes