Subversion – Quelles sont les différences entre les commandes SVN Checkout et SVN?

Je comprends que la commande “SVN checkout” effectuera la récupération initiale des fichiers à partir du repository Subversion et les apportera localement dans votre répertoire de travail / copie et que la commande “SVN update” recevra les modifications des fichiers depuis le référentiel si des modifications ont été apscopes par d’autres.

Il me semble cependant qu’une “mise à jour” est juste un cas particulier de “vérification”, c’est-à-dire qu’une extraction survient, elle récupère tous les fichiers car aucun n’existe encore localement et donc TOUS les fichiers ont “changé”, et que dans les coulisses ces commandes font en grande partie la même chose. Je suppose que les commandes existent séparément comme moyen de simplification?

Ou, existe-t-il d’autres différences entre les commandes, par exemple, “SVN update” get files obtient-il de nouveaux fichiers (fichiers existant dans le référentiel que vous n’avez pas dans votre copie de travail) ou simplement des fichiers existants?

À mon avis, la grande différence réside dans le fait que la checkout crée une copie de travail, tandis que la update réduit les modifications apscopes à une copie de travail existante .

svn checkout copie tous les fichiers versionnés du répertoire donné du référentiel à la révision donnée (HEAD par défaut) et les copie sur votre machine locale. Il génère également tous les répertoires .svn cachés et les méta-données qu’ils contiennent, ce qui fait de ces fichiers une copie de travail.

svn export copie tous les fichiers versionnés du répertoire donné dans le référentiel à la révision donnée (HEAD par défaut) et les copie sur votre machine locale, mais produit une hiérarchie de répertoires standard. (Il ne produit pas de copie de travail pouvant être mise à jour ou réintégrée).

svn update applique les modifications à une copie de travail existante . Si, ce faisant, un conflit est découvert, l’utilisateur est alerté et doit résoudre ce problème avant de pouvoir commettre des modifications. Lorsque vous utilisez svn commit il est nécessaire que la copie de travail à svn commit soit à jour (c.-à-d. La même révision que HEAD).

La mise à jour mettra à jour votre version extraite vers la dernière version (ou une autre révision spécifiée) dans le référentiel. Si vous avez apporté des modifications à votre copie de travail, elles seront toujours présentes après la mise à jour. Si des fichiers ont été ajoutés ou supprimés dans le référentiel, cela sera reflété dans votre copie de travail. S’il y a des modifications à la fois dans votre copie locale et dans le référentiel, SVN essaiera de fusionner toutes les modifications pour vous, si cela ne fonctionne pas, cela marquera un conflit que vous résolvez manuellement.

Subversion utilise des répertoires de métadonnées masqués pour activer les fonctionnalités qu’il fournit. Ces répertoires .svn sont ce qui fait qu’un répertoire est une copie de travail Subversion – sans eux, c’est juste un répertoire et Subversion ne peut pas en faire grand chose.

UPDATE est une opération effectuée sur une copie de travail Subversion; pas de répertoires .svn, pas de mise à jour. CHECKOUT est l’opération qui crée une copie de travail.

svn update n’apporte que la différence entre les fichiers de la version utilisateur et la dernière version disponible. Si aucune différence aucune action.

Mais checkout crée un nouveau dossier et apporte tous les fichiers pour cette twig. Checkout est un bon moyen de travailler si nous changeons constamment de twig sur laquelle nous travaillons. La mise à jour se produit lorsque nous avons une jonction et que nous devons obtenir les mises à jour effectuées par d’autres sur cette jonction.

Pendant l’utilisation du SVN, la différence importante entre la vérification et la mise à jour est la suivante: vous ne pouvez utiliser la commande checkout qu’une seule fois pour créer une relation entre un répertoire local et le référentiel (sous contrôle de version) . dans un répertoire de travail local. Après cela, l’utilisation de l’ extraction pour mettre à jour les copies dans le répertoire local générera les erreurs suivantes:

svn: E175002: Impossible de se connecter à un référentiel à l’URL ‘https: // ********’.

svn: E175002: La demande OPTIONS a renvoyé un code XML non valide dans la réponse: ****. ”

La seule façon de mettre à jour les versions actuelles du répertoire local consiste à utiliser la commande svn update .