2014-07-22 8 views
2

J'utilise svndumpfilter pour extraire des projets individuels d'un dépôt plus important et les importer dans leur propre dépôt. Quelque chose comme ceci:SVNDumpFilter changer les chemins avant de les ajouter?

svndumpfilter include --drop-empty-revs --renumber-revs Trunk/Source/Project1 <full.dump> Project1.dump 

Il a bien fonctionné avec un projet, mais sur la deuxième, je remarque que la décharge résultante a été filtrée ne démarre pas en ajoutant un chemin. Voir les deux premières révisions (renuméroté):

SVN-fs-dump-format-version: 2 

UUID: c6612063-4e6b-459c-a579-78605fb1e4b5 

Revision-number: 0 
Prop-content-length: 56 
Content-length: 56 

K 8 
svn:date 
V 27 
2010-05-11T20:45:07.903005Z 
PROPS-END 

Revision-number: 1 
Prop-content-length: 128 
Content-length: 128 

K 7 
svn:log 
V 27 
Fixed code after branching. 
K 10 
svn:author 
V 6 
somedude 
K 8 
svn:date 
V 27 
2010-09-21T23:07:51.719341Z 
PROPS-END 

Node-path: Trunk/Source/Project1/Project1.csproj 
Text-content-md5: 9d127596909e2a9921f1ec1c0223e1ed 
Node-action: change 
Text-content-sha1: 22eb675e0a5bfb41092de6ed39dc7c4d2a15dbd5 
Node-kind: file 
Text-content-length: 5178 
Content-length: 5178 

Remarquez comment il essaie de « changement » Trunk/Source/Project1/Project1.csproj avant jamais ajouté en premier lieu? Pas étonnamment, je reçois "fichier introuvable" lors de l'exécution svnadmin load sur le vidage filtré. Des idées?

Répondre

3

Il existe trois façons:

  1. dossier Ajouter manquants via commettras avant fichier de vidage de chargement: svn mkdir http://server/svn/project/Trunk -m "Created Trunk"
  2. ajouter manuellement un enregistrement de noeud qui crée le dossier Trunk à la décharge:

    Revision-number: 1 
    Prop-content-length: 128 
    Content-length: 128 
    
    K 7 
    svn:log 
    V 27 
    Fixed code after branching. 
    K 10 
    svn:author 
    V 6 
    somedude 
    K 8 
    svn:date 
    V 27 
    2010-09-21T23:07:51.719341Z 
    PROPS-END 
    
    Node-path: Trunk/ 
    Node-kind: dir 
    Node-action: add 
    Prop-content-length: 48 
    Content-length: 48 
    
    PROPS-END 
    
    
    Node-path: Trunk/Source/Project1/Project1.csproj 
    Text-content-md5: 9d127596909e2a9921f1ec1c0223e1ed 
    Node-action: change 
    Text-content-sha1: 22eb675e0a5bfb41092de6ed39dc7c4d2a15dbd5 
    Node-kind: file 
    Text-content-length: 5178 
    Content-length: 5178 
    
  3. Ne pas utiliser du tout svndumpfilter, car il est cassé par conception (svndumpsanitizer ' s home page a une bonne explication pourquoi). Il y a de bonnes chances que vous rencontriez d'autres erreurs dans votre décharge.

Je suis actuellement dans un processus de division d'un repo diaboliquement complexe avec beaucoup de fusions, mouvements et autres choses et je peux dire qu'il n'y a rien autour qui gère les dépotoirs svn fractionnement 100% correctement.

Par exemple bien connu svndumpfilterIN contient au moins trois bugs majeurs (je n'ai réussi à faire rapport one of them et deux autres sont beaucoup plus mal) et a lamentablement échoué sur mon repo. Je vais essayer d'en partager une version fixe sur GitHub un peu plus tard, mais dans son état actuel, je ne peux pas le recommander. Donc, à mon avis, votre meilleure chance est d'essayer ci-dessus svndumpsanitizer sans l'option --redefine-root, car il est également buggé (bugreport à venir). Si vous êtes sur Windows, il compile bien avec la dernière Visual Studio Community 2013 (gratuit).


mis à jour Y2K17

Les deux derniers paragraphes ci-dessus ne sont plus pertinentes, depuis que je suis fixé toutes les questions du svndumpfilterIN, qui ont été me empêchent de convertir ma pension. My PR a été fusionné au dépôt de base, alors essayez-le. Je ne peux toujours pas garantir le succès à 100%, mais vos chances sont beaucoup plus élevées maintenant.

+0

Merci, je ne me souviens pas exactement comment j'ai corrigé cela mais je pense que j'ai fini par éditer manuellement le fichier et ajouter des fichiers/dossiers manquants si nécessaire. –

Questions connexes