2009-01-13 10 views
4

Nous sommes sur le point de démarrer un nouveau projet, et l'application actuelle de notre client est .NET versionnée dans SourceSafe. Cependant, nous utilisons Subversion en interne. Il s'agira probablement d'une livraison "ponctuelle" (réécriture complète de l'application), afin qu'ils puissent facilement effectuer une extraction depuis notre dépôt, puis l'exporter et l'importer dans leur dépôt SourceSafe. Cependant, je crains que si nous faisons des modifications ou effectuons de la maintenance à l'avenir, cela devienne beaucoup plus difficile à gérer. Des idées sur la meilleure façon de gérer cela?Nous utilisons Subversion, mais notre client utilise SourceSafe. Quelles sont mes options?

EDIT:

Je ne sais pas si cela fait une différence, mais il y a une faible probabilité que le client fera des changements. Si c'est le cas, ce sera après que nous aurons terminé à 100%, ce qui le rendra plus facile à gérer. Si nous faisions tous deux des changements simultanément, je proposerais probablement que je leur donne un accès en écriture à notre repo pour leur projet, et nous le gérons ainsi. J'essaie de faire preuve d'anticipation, car il y a de fortes chances qu'ils veuillent que nous revenions et travaillions davantage avec eux.

Répondre

3

Une autre option est de leur donner accès à votre repo svn (pour leur projet uniquement) et leur apporter un soutien, des liens, etc. Une fois qu'ils voient la lumière, ils ne veulent pas utiliser quoi que ce soit d'autre ...

Je pense que je le ferais de cette façon jusqu'à ce que vous ayez à prendre une décision à propos de ssafe. Peut-être que, avant de prendre une décision, elle disparaîtra.

J'ai eu une expérience avec ceci dans le passé. Pour une raison quelconque, la société sous-traitante utilisait CVS en interne, mais SourceSafe pour les clients externes. J'ai repris le projet et l'ai mis dans svn. Les entrepreneurs étaient heureux avec ça.

EDIT:

De plus, il est possible d'avoir une prise en pension svn maître/esclave mis en place. Je ne sais pas si cela aide dans cette situation.

Une autre possibilité est de leur demander s'ils hébergeraient un svn repo si vous l'aviez configuré et que vous l'aviez d'abord administré.

Dans l'ensemble, il est probablement préférable de parler au client pour résoudre ce problème. Voyez quelles idées vous pouvez trouver. Maintenir deux repos ACTIVE n'est pas une bonne idée.

+0

Une fois qu'ils voient la lumière? Git n'a pas été mentionné, n'est-ce pas? ;) – pmr

+1

drôle. Je pense que git a un long chemin à parcourir en ce qui concerne l'interface utilisateur et la facilité d'utilisation avant que la foule de la source ne l'adopte. Vous demandez à DEUX sociétés de changer de dépôt, pas seulement un. C'est un grand bond en avant. Je choisirais probablement mercurial sur git dans tous les cas. – Tim

1

Je me demande si vous pouvez utiliser un système de contrôle de version distribué pour gérer l'interaction entre les deux référentiels. Je sais que git peut fonctionner avec svn, mais je ne suis pas sûr de sourcesafe.

+0

Cela semble être une bonne approche; le côté sourcesafe aurait probablement besoin d'être manuel (ou lu/écrit à partir d'un script personnalisé) –

1

Le client va-t-il également apporter des modifications au programme? Si oui, je dirais que ce que vous pensez est le meilleur: faire une exportation hors de subversion et mettre cela dans la source sûre. Puis chaque fois qu'ils veulent que vous fassiez des changements, vous exportez (ou passez à la caisse ou autre chose) toutes les modifications qu'ils ont apportées et faites ces changements (en fait, il suffit de copier par-dessus) d'une version empruntée dans subversion. Ce n'est pas joli, mais vous n'avez pas beaucoup d'options. Vous pouvez également essayer de les amener à vous envoyer tous les changements qu'ils font.

Pourquoi est-il nécessaire de conserver le code dans deux repos de code?

2

Je travaillais sur un outil de migration VSS-> SVN, dont une tâche consistait à fournir un support pour la mise à jour du référentiel SVN avec toutes les modifications apportées après une certaine date (je devais le faire car nous avons 16 Donc, je fais une copie instantanée de la base de données VSS, et je l'utilise pour importer avec, puis quelque temps plus tard, je migre tous les changements fait depuis que j'ai pris l'instantané. Il semble que cela vous serait utile, car vous pourriez simplement importer les changements apportés par votre client à sa base de données VSS.

Le code est publié dans le repo SVN, mais pas encore en tant que paquet, car vous devrez télécharger les fichiers du repo et de la compilation SVN. Son. NET basé de sorte que vous devriez être à l'aise avec elle. Il conserve également toutes les modifications d'étiquettes, d'auteurs et de dates. Il est hébergé sur CodePlex as VSS2SVN.