J'ai une situation particulière où j'ai besoin de supprimer les opérations d'une série de commits dans le dépôt Subversion. Tout le contenu de (/ trunk/tags/branches) a été étiqueté et ensuite supprimé lorsque l'erreur a été réalisée. J'utiliserais simplement svndumpfilter pour supprimer les noeuds incriminés, mais quelqu'un a réutilisé le mauvais nom de tag à un moment ultérieur afin que les exclusions basées sur le chemin puissent causer d'autres problèmes. Je dois éditer manuellement le fichier de vidage qui est 12GB. J'ai une série de 15 révisions successives dont j'ai besoin d'éditer, qui apparaissent dans la décharge dans le format suivant:Comment utiliser sed/awk ou un autre outil pour faciliter la recherche et le remplacement du fichier de vidage de subversion 12GB
Revision-number: 60338
Prop-content-length: 143
Content-length: 143
K 7
svn:log
V 41
Tagging test prior to creating xx branch
K 10
svn:author
V 7
userx
K 8
svn:date
V 27
2009-05-27T15:01:31.812916Z
PROPS-END
Node-path: test/tags/XX_8_0_FINAL
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 60337
Node-copyfrom-path: test
basés sur des tests que je l'ai fait, je sais que je dois la section ci-dessus pour changer la suivant
Revision-number: 60338
Prop-content-length: 112
Content-length: 112
K 7
svn:log
V 38
This is an empty revision for padding.
K 8
svn:date
V 27
2009-05-27T15:01:31.812916Z
PROPS-END
Il y a 14 révisions supplémentaires où le même remplacement doit avoir lieu. Essayer d'éditer les fichiers manuellement dans VIM est sérieusement impraticable. Les fichiers de vidage sont un mélange de texte binaire et ascii. Si quelqu'un a une magie awk/sed qui pourrait m'aider, je serais vraiment reconnaissant.