Question

J'ai une branche dans une prise en pension svn mal structuré qui doit être dépouillé et déplacé vers un autre dépôt svn. (Je suis en train de nettoyer certains).

Si je fais un svn log et non arrête la copie / renommage je peux voir tous 3427 engage que je me soucie. Est-il un moyen de vider les révisions à court d'écrire des scripts majeurs?

Je suivrais les conseils donnés dans cette question mais cette branche a été déplacé dans tous les sens et je voudrais préserver les mouvements aussi bien.

Était-ce utile?

La solution

Je suppose que cela pourrait être semblable à ce que @ZacThompson (et @Pekka) signifient: Je pense que svndumpfilter est votre ami

.

De votre question, je pense que vous avez l'idée de ce qu'il est censé faire, mais lutter avec la copie / déplacement de la branche dans tous les sens? Une réponse à cette question se trouve dans l'avant mentionné Documentation SVN , je crois:

  

En outre, les chemins copiés peuvent vous donner quelques   difficulté. Subversion supporte la copie   des opérations dans le référentiel, où   nouveau chemin est créé en copiant certains   déjà chemin existant. C'est possible   que, à un moment donné dans la vie de   votre dépôt, vous pourriez avoir copié   un fichier ou un répertoire de certains endroits   que svndumpfilter exclut, à un   emplacement qu'il est compris. Faire   l'auto-suffisante de données de vidage,   svndumpfilter doit montrer encore la   ajout du nouveau chemin, y compris la   contenu de tous les fichiers créés par le   copier et ne représentent pas que l'addition   comme une copie d'une source qui ne sera pas   existent dans vos données de décharge filtrée   courant. Mais parce que la Subversion   format de sauvegarde du référentiel indique que ce   a été modifiée dans chaque révision, la   le contenu de la source de copie peut-être pas   être facilement disponibles. Si vous pensez   que vous avez des copies de ce genre   dans votre dépôt, vous voudrez peut-être   repenser l'ensemble de vos inclus / exclus   chemins, y compris peut-être les chemins   qui a servi en tant que sources de votre   opérations de copie gênants aussi.

Signification: faire svndumpfilter comprennent tous les chemins de la branche jamais vécu . Ou suis-je manque quelque chose?

Une autre possibilité pourrait être le svndumpfilter2 mentionné par @compie dans le fil que vous avez lié même si je crois qu'il est même pas nécessaire (et je ne sais pas non plus de @compie ou svndumpfilter2).

Autres conseils

Vous voulez utiliser une combinaison de:

  1. svnadmin dump
  2. svndumpfilter
  3. svnadmin load

Si vous voulez faire toute la branche, vous pouvez même pas besoin svndumpfilter. Mais si vous le faites:

http: / /svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

Il y a une autre solution qui est assez simple et permet de résoudre le « préserver les mouvements » problème . S'il vous plaît voir le dernier paragraphe de l'entrée Apache Subversion FAQ "Comment puis-je supprimer complètement un fichier de l'histoire du référentiel ? ". La solution ne repose pas sur le svndumpfilter.

Vous pouvez effectuer les étapes suivantes:

  1. Configurer contrôles sur les chemins règles à nier accès en lecture pour USERNAME compte CHEMINS du fichier ou un dossier que vous souhaitez supprimer de l'histoire du référentiel.

    S'il vous plaît noter le nom pluriel chemins . Le fichier ou le dossier que vous voulez vous débarrasser de pourrait avoir des noms différents ou peuvent être situés dans des endroits différents à travers une histoire de dépôt. S'il vous plaît tenir compte lors de la mise en place Deny.

  2. Créer un répertoire vide,

  3. Reproduire le référentiel source avec svnsync outil au référentiel cible sous le compte USERNAME . Pour plus de détails sur la synchronisation du référentiel avec svnsync s'il vous plaît se référer au chapitre SVNBook "de réplication du référentiel".

Contrairement à svndumpfilter, svnsync convertit automatiquement les opérations de svn copy avec un chemin source illisible dans une extension normale, ce qui est utile si l'histoire implique des opérations de copie et doit encore filtrer. :)

Vous devez utiliser hotcopy pour sauvegarder le répertoire de dépôt. Ensuite, il devrait être une question de simple restauration du dépôt.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top