8
votes

Comment effacer des informations sensibles de Subversion?

I Une des versions précédentes de mon code, stockées dans un référentiel Subversion, il y a des informations sensibles. Comment effacer cela tout en gardant toutes les autres versions?

edit : le référentiel est l'hébergement de projet Google Code, donc je ne peux donc pas vider et restaurer le référentiel = (

svn

2 commentaires

Je ne pense pas qu'il y ait quelque chose que vous pouvez faire vous-même. Pouvez-vous demander à Google de détruire le référentiel, puis de le reconstruire?


Je peux peut-être le faire, si je choisis un nouveau nom pour le projet.


3 Réponses :


7
votes

Vous voulez que vous souhaitiez être une fonctionnalité SVN communément appelée "oblitérer", qui malheureusement n'est toujours pas implémentée.

En tant que solution de contournement, vous devrez jeter, filtrer et réimporter votre référentiel. Voir par exemple L'entrée de la FAQ SVN Comment supprimer complètement un fichier de l'historique du référentiel? .

BTW: C'est une dupe :-). https://stackoverflow.com/questions/663584/subversion-permanent- Supprimer: incorrectement-coché-répertoire-projet

EDIT:

Le référentiel est l'hébergement de projet de code Google, donc je ne peux donc pas vider et restaurer le référentiel = (

Autant que je puisse le constater, la seule solution dans ce cas est de (demander à Google de) réinitialiser votre réservation (voir cette FAQ , et ceci Blog Post ). Cela supprimera complètement toutes les données du référentiel (données actuelles et historique), comme si vous venez de démarrer le référentiel en utilisant svnadmin créer . .

Évidemment, vous aurez besoin d'une sauvegarde de votre référentiel d'abord.

La meilleure solution est probablement:

  • Créez une sauvegarde de votre repo en utilisant snvsync (cela sauvegardera également l'historique)
  • Faites la décharge / filtre / Restaurer la danse (voir ci-dessus) sur votre sauvegarde du repo, pour supprimer les communautés problématiques
  • Réinitialiser le référentiel Google
  • Remettez votre repo filtré, à nouveau à l'aide de snvsync (voir FAQ Comment importer mon code source existant? )

0 commentaires

2
votes

C'est un peu de travail, mais heureusement, il y a de bonnes explications autour, tel que celui-ci de Rob Gonda .


0 commentaires

7
votes

Vous ne pouvez pas supprimer ce qui a été confié à la subversion autre que complètement déchargée, effacez l'original et recréez le référentiel à partir du décharge.

Si vous souhaitez supprimer complètement un fichier / chemin, vous pouvez le faire avec le svndumpfilter : xxx

puis sauvegardez votre / chemin / vers / référentiel et remplacez-le par / TMP / newRepository après avoir vérifié que tout est correct.

Si Vous voulez exclure une seule révision, vous devez faire quelque chose comme xxx

c'est-à-dire que la révision 1001 est exclue. Vous ne pouvez pas le faire plus de bt BTW grainé, toute une révision doit être exclue. Même affaire ici, sauvegardez votre référentiel d'origine, vérifiez que tout nécessaire dans le nouveau référentiel est là.


0 commentaires