Le déplacement d'un dossier à partir d'un dépôt SVN à l'autre

J'ai un ensemble de dépôts avec une structure semblable à la suivante:

/Source
  /branches
  /tags
  /trunk
    /FolderP
    /FolderQ
    /FolderR

/Target
  /branches
  /tags
  /trunk
    /External
      /Library1
      /Library2
      /Library3
    /Internal
      /FolderA
      /FolderB
      /FolderC
      /FolderX
      /FolderY
      /FolderZ

Je voudrais déplacer les dossiers /Source/trunk/FolderP, /Source/trunk/FolderQ et /Source/trunk/FolderR /Cible/trunk/Internes tels que:

  • /Source/trunk/FolderP devient /Cible/trunk/Interne/FolderP
  • /Source/trunk/FolderQ devient /Cible/trunk/Interne/FolderQ
  • /Source/trunk/FolderR devient /Cible/trunk/Interne/FolderR

Je devrais alors le suivant référentiel de structure:

/Target
  /branches
  /tags
  /trunk
    /External
      /Library1
      /Library2
      /Library3
    /Internal
      /FolderA
      /FolderB
      /FolderC
      /FolderP
      /FolderQ
      /FolderR
      /FolderX
      /FolderY
      /FolderZ

Il est impératif que l'histoire soit maintenu pendant le déplacement.

J'ai regardé les 2 questions posées précédemment qui semblent être similaires:

Je n'ai pas eu beaucoup de chance avec les solutions proposées. Plus précisément, j'ai une erreur quand je lance le svndumpfilter de commande, qui stipule que:

svndumpfilter: Invalid copy source path `/branches/name-of-a-branch/.../File.cs`

Ce qui se passe et comment puis-je contourner ce problème?

Edit:

Une solution de contournement que je suis en train d'essayer:

  • Clone de l' /référentiel Source dans un autre appelé /Temp
  • Supprimer les fichiers et dossiers à partir de /Temp que je n'ai pas besoin et d'archivage des tous les changements
  • Dump /Temp référentiel en appelant "svnadmin dump X:\Repositories\Temp > X:\Dumps\Temp.dmp"
  • Charge De Temp.dmp dans /référentiel Cible, en appelant "svnadmin load --parent-dir trunk\Internal\Temp X:\Repositories\Target < X:\Dumps\Temp.dmp"
  • Caisse/mise à jour /référentiel Cible
  • Utiliser TortoiseSVN pour déplacer des dossiers dans /Target/trunk/Interne/Temp/trunk/** dans /Target/trunk/Interne (en mettant en évidence celles que je veux dans l'Explorateur Windows, en appuyant sur Ctrl+X puis, changeant de dossier /Cible/trunk/Interne et l'émission de la coller avec TortoiseSVN

NB: ci-dessus suppose que svn est le maintien de tous les référentiels en X:\Repositories dossier et on est à l'aide de X:\Dumps dossier comme dossier de travail.

Cela va tabasser les numéros de révision évidemment, mais maintiendra l'histoire. J'espère que votre commettre les commentaires ne sont pas à inclure des références à des numéros de révision.

Quelqu'un d'autre a mentionné une svndumpfilter3 script Python, mais je n'ai jamais utilisé Python, et ne veulent pas apprendre à utiliser Python, juste pour cette.

C'est beaucoup plus tard que maintenant, aujourd'hui, j'ai trouvé un build support en TSVN. L'espoir qui aide les autres à trouver une solution plus rapidement.

OriginalL'auteur Umar Farooq Khawaja | 2010-06-25