1 votes

Comment importer une partie d'un référentiel SVN dans Bazaar

La situation

J'utilise bazaar 2.4.1.

Une société d'hébergement de projets héberge mon dépôt svn pour les projets suivants Project A à :

https://svn.example.com/myrepo/trunk/ProjectA/

Je n'ai pas d'accès svn-admin au dépôt à l'adresse suivante svn.example.com .

Au sein de la projectA il y a un répertoire qui contient tout le code de l'outil de gestion de l'environnement. Component X . Son emplacement svn est :

https://svn.example.com/myrepo/trunk/ProjectA/ComponentX

L'objectif

J'essaie de séparer Component X de Project A pour devenir le repo SVN de Project B . Où Project B est versionnée dans Bazaar.

Le plan

Mon plan est de :

  1. Créer un dépôt local bzr pour Project B
  2. 使用方法 bzr svn-import d'importer Component X de Project A dans mon local Project B
  3. Ensuite, appuyez sur Project B à Launchpad
  4. Ensuite, svn-delete l'ancien Component X à partir du dépôt svn.

Je suis bloqué à l'étape 2.

Jusqu'à présent, tout va bien

Donc, sur mon Windows XP, j'ai créé un dépôt bzr pour Project B :

# cd C:\me\OpenSource\
# bzr init-repo ProjectB

Ensuite, je me suis installé dans ce répertoire :

# cd ProjectB

Ça se passe un peu mal

Ensuite, j'ai essayé de bzr svn-import pour récupérer le répertoire svn :

# bzr svn-import https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/

Toutefois, cela génère une erreur :

bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').

J'ai essayé plusieurs choses et j'obtiens toujours la même erreur.

Les choses que j'ai essayées

Essayé : Modifier subversion.conf pour indiquer que ComponentX est une branche

Après avoir examiné 'bzr help svn-layout' j'ai modifié C:\Documents and Settings\Me\Application Data\bazaar\2.0\subversion.conf et ajouté une ligne pour indiquer que /ComponentX doit être traitée comme une branche :

[203ae883-c723-44c9-aabd-cb56e4f81c9a]
branches = */ComponentX

Cela n'a pas fonctionné. Même erreur :

bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').

Essayé : Spécifier une disposition de référentiel différente comme argument

c'est-à-dire en le passant comme argument : --layout=root (Parce que je voulais que ce chemin soit traité comme la racine du nouveau repo bzr) :

# bzr svn-import --layout=root https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/

Cela n'a pas fonctionné. Même erreur :

bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').

Donc, j'ai essayé de dire juste --layout=none :

# bzr svn-import --layout=none https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/

Cela n'a pas fonctionné. Même erreur :

bzr: ERROR: The specified path is inside a branch. Specify a different URL or a
different repository layout (see also 'bzr help svn-layout').

Pour être honnête, je suis en train de pirater.

Je ne sais pas où je me trompe.

1voto

Katherine Higgins Points 11

Svn-import est spécifiquement destiné à importer toutes les branches d'un référentiel Subversion. L'option --layout est utilisée pour spécifier ce qu'il considère comme une branche. Il semble que vous essayez de cloner une seule branche, pour laquelle "bzr branch" est en effet la commande correcte.

Pour expliquer les mises en page :

Les astérisques dans le paramètre "branches = " ne traversent pas plus d'un niveau de répertoires. Le paramètre "branches = trunk/*/ComponentX" dans subversion.conf serait la valeur correcte. Il semble que l'erreur de bzr-svn soit un peu confuse. Vraiment, il devrait dire que le chemin que vous avez spécifié ne contient pas de branches.

Cela signifie que --layout=root lui fera simplement prendre en compte https://svn.example.com/myrepo une branche. Cela explique pourquoi vous obtenez l'erreur concernant la spécification d'une branche à l'intérieur d'un chemin.

0voto

Matthew Points 101

En réponse à ma propre question.

Au lieu de se battre avec bzr svn-import contourner le problème en utilisant bzr branch à la place. Il ne répond pas vraiment aux questions suivantes : pourquoi bzr svn-import jette des erreurs, mais résout le problème.

Ainsi, dans la situation où une société d'hébergement de projets héberge votre dépôt svn pour le compte de Project A à :

https://svn.example.com/myrepo/trunk/ProjectA/

et au sein de la projectA il y a un répertoire qui contient tout le code de l'outil de gestion de l'environnement. Component X . Son emplacement svn est :

https://svn.example.com/myrepo/trunk/ProjectA/ComponentX

et où le but est de se séparer Component X de Project A pour devenir le repo SVN de Project B . Où Project B est versionnée dans Bazaar.

Le plan devrait être le suivant :

  1. Créer un dépôt local bzr pour Project B
  2. 使用方法 bzr branch à jeter Component X de Project A dans mon local Project B
  3. Ensuite, appuyez sur Project B à Launchpad
  4. Recommandé : N'oubliez pas de svn-delete les Component X de Project A pour éviter les doublons.

Comme ça :

1. Créez un dépôt bzr local pour Project B

Donc, sur mon Windows XP, je crée un répertoire bzr pour Project B :

# cd C:\me\OpenSource\
# bzr init-repo ProjectB

Ensuite, allez dans ce répertoire :

# cd ProjectB

2. Utilisez bzr branch à jeter Component X de Project A dans mon local Project B

Ensuite, créez une branche locale à partir du sous-répertoire svn repo :

# bzr branch https://svn.example.com/myrepo/trunk/ProjectA/ComponentX/ ComponentX

3. Ensuite, appuyez sur Project B à Launchpad

Ensuite, poussez-le pour créer la branche hébergée sur le launchpad, comme indiqué dans le document suivant les instructions dans les docs de bazaar :

# bzr push lp:~mylaunchpadteam/mylaunchpadproject/trunk

Ensuite, vous pouvez éventuellement modifier la structure du répertoire et ajouter des fichiers pour le convertir en "projet".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X