Je développe des projets personnels sur deux machines sans utiliser de serveur partagé ou de connexion réseau entre les deux.
Des systèmes de contrôle de version courants prennent-ils en charge de manière fiable l'utilisation du stockage portable (tel qu'un périphérique flash USB) comme référentiel partagé?
version-control
billpg
la source
la source
Réponses:
Utilisez un DVCS tel que Git ou Mercurial .
Les systèmes de contrôle de version distribués n'ont pas de serveur central partagé.
Avec un DVCS, chaque copie d'un référentiel contient l'historique complet - tout. Cela signifie que lorsqu'elles sont utilisées sur une clé USB, toutes les modifications que vous apportez sont apportées au référentiel sur la clé USB et lorsqu'elles sont déplacées d'un ordinateur à l'autre, cet historique sera conservé.
la source
Outre GIT, Mercurial, etc. suggéré ci-dessus, jetez également un œil à Fossil - Il présente les avantages que les binaires d'exécution sont petits (environ 1 Mo pour Windows et Linux), une installation portable et zéro nécessaire. Par conséquent, contrairement aux autres (pour autant que je sache), il peut être placé sur le périphérique de stockage et exécuté sur n'importe quelle machine sur laquelle le stockage est branché, sans avoir à installer l'application sur la machine. Il comprend un Wiki et un système de suivi des modifications / défauts avec le repo. Il a également un gui intégré.
Je ne l'ai pas utilisé sérieusement (j'utilise principalement GIT), mais j'ai été impressionné par son approche légère et l'inclusion d'un Wiki et d'un tracker de défauts le rend idéal pour les petits projets. Ma seule préoccupation était que certaines des fonctionnalités les plus puissantes de GIT pourraient ne pas être possibles, et contrairement à GIT, la communauté d'utilisateurs n'est pas si grande qu'il est facile de trouver des réponses aux questions.
la source
L'utilisation d'un DCVS est probablement une bonne idée, mais ce n'est pas la seule option.
J'ai un petit référentiel CVS sur une clé USB. Lorsque je veux y accéder, il me suffit d'utiliser
cvs -d <path>
ou de définir$CVSROOT
le chemin de la racine du référentiel (ce qui nécessite bien sûr que la clé USB soit montée sur le système).Si vous êtes déjà habitué à utiliser CVS, cela devrait être réalisable. La même chose devrait s'appliquer à SVN. Cela signifie simplement que votre référentiel central est sur la clé USB et n'est pas toujours visible.
Il existe des arguments pour utiliser un DCVS plutôt que CVS en général. Je ne pense pas que ces arguments soient particulièrement affectés par le fait que le référentiel central se trouve sur une clé USB ou ailleurs. Par exemple, vous pouvez tout aussi facilement créer un référentiel git sur la clé USB.
la source
En complément des autres réponses:
Bien qu'un DVCS réponde très bien à ce problème, vous pouvez également utiliser Subversion, si vous vous sentez plus à l'aise avec. Subversion peut utiliser un répertoire local au lieu d'un serveur central. Vous pouvez simplement mettre cela sur une clé USB et l'utiliser.
L'inconvénient, par rapport à un DVCS, serait que vous ne pouvez travailler qu'avec Subversion (c'est-à-dire valider, afficher les journaux, etc.) pendant que la clé USB est branchée. De plus, il doit toujours s'agir de la même clé USB (ou au moins d'une clé USB) à jour), car avec Subversion, vous ne devez pas utiliser plus d'un référentiel (c'est la partie non distribuée). Donc, si vous oubliez votre clé USB, vous ne pouvez pas l'utiliser, contrairement à Git ou Mercurial.
Remarque:
Comme expliqué ci-dessus, et dans les commentaires, un DVCS est vraiment mieux adapté à votre problème. Je n'ai mentionné Subversion que par souci d'exhaustivité et au cas où vous auriez une raison particulière d'utiliser Subversion.
la source
svn
(ou même les CV) pourrait peser en faveur de l'utilisation de cette solution, mais dans l'intérêt d'une divulgation complète, les inconvénients de cette approche doivent également être mentionnés. N'hésitez pas à modifier les points de mon commentaire dans votre réponse. Si vous le faites, je serais heureux de nettoyer (supprimer) mes commentaires. * 8 ')