Using vi to replace strings on multiple files – Utilisation de vi pour remplacer des caractères dans plusieurs fichiers

Here is an example on how massively replace a string with another.

Voici un exemple concret de comment remplacer massivement une chaine de caractères par une autre.

I’m using command line ex editor (vi is the visual clone of ex) and option – (or –s) for none interactive-user feedback.

J’utilise l’éditeur en mode commande ex (vi est un clone visuel de ex)  et l’option – (ou –s) pour ne pas avoir de retour interactif.

Say, for instance, you are migrating you subversion repository from host1 to host 2.

Disons, par exemple, que vous  migrez votre référentiel subversion de host1 vers host2.

The server part is done (see post Migrate A Subversion Repository )

La partie serveur est faite (voir le post Migrer Un Référentiel Subversion)

On each svn client changes have to be made. The “entries” files have to aim to the new repository.

Au niveau des clients svn il faut également modifier les fichiers « entries » pour qu’ils pointent vers le nouveau référentiel.

“Entries” files are everywhere (on every working directory and subdirectories). You will have to change”host1” to “host2” on each file.

Les fichiers “entries” sont dans chaque répertoire de travail et ses sous-répertoires. Il faut changer « host1 » en « host2 » dans chacun des fichiers.

 

The following script finds all the “entries” files (from the current directory), for each file search “host1” strings, if found replace them by ”host2” and save and exit the file.

Le script suivant trouve tous les fichiers “entries” (à partir du répertoire courant), pour chaque fichier cherche les occurrences de « host1 », si trouvés les remplace par « host2 » sauve et quitte le fichier.

1
2
3
4
5
6
7
8
9
find . -name "entries"type f|while read LINE
do
echo "$LINE :"
ex - $LINE <<EOF
%s/host1/host2/g
wq!
EOF
echo OK
done

Migrate a subversion repository – Migrer un référentiel subversion

This is how to migrate a subversion repository from one server to another (the same technique can be used to upgrade the repository’s version, with some limitations).
Voici comment migrer un référentiel subversion d’un serveur à un autre (la même technique peut servir pour mettre à jour la version d’un référentiel, avec quelques limitations cependant).

Extract your repository on host1:

Extraire le référentiel sur host1 :

[myhost1]$ /usr/local/svn144/bin/svnadmin dump /REFERENTIELS/APP/CRUSERS > /tmp/CRUSERS__150411.dmp

* Dumped revision 0.

* Dumped revision 1.

* Dumped revision 2.

* Dumped revision 3.

 

Send the dump file to host2 :

Envoyer le fichier dump vers host2 :

[myhost1]$ scp /tmp/CRUSERS__150411.dmp myhost2:/tmp/

subvr@myhost2's password:

CRUSERS__150411.dmp

 

Create the new target repository on host2 :

Créer le nouveau référentiel cible sur host2 :

[myhost2]$ svnadmin create /REPO/OPE/CRUSERS

 

Load the dump file on the new repository:

Charger le fichier dump dans le nouveau référentiel :

[myhost2]$ svnadmin load /REPO/OPE/CRUSERS < /tmp/CRUSERS__150411.dmp

<<< Started new transaction, based on original revision 1

------- Committed revision 1 >>>

<<< Started new transaction, based on original revision 2

------- Committed revision 2 >>>

<<< Started new transaction, based on original revision 3

------- Committed revision 3 >>>

 

To keep the configuration of the repository (authentication, password … ), copy the content of “conf” directory on your source repository (myhost1) to the “conf” directory of the target repository (myhost2).

Pour garder la configuration du référentiel (authentification, mots de passe …), copier le contenu du répertoire « conf » du référentiel source (myhost1), vers le répertoire « conf » du référentiel cible (myhost2).

[myhost1]$ pwd

/REFERENTIELS/APP/CRUSERS/conf

 [myhost1]$ ls

authz  listeuser  passwd  svnserve.conf

[myhost1]$ scp * myhost2:/REFERENTIELS/OPE/CRUSERS/conf/

subvr@myhost2's password:

authz                                                                                                               100%  684     0.7KB/s   00:00

listeuser                                                                                                           100%   66     0.1KB/s   00:00

passwd                                                                                                              100%  309     0.3KB/s   00:00

svnserve.conf                                                                                                       100%   73     0.1KB/s   00:00

 

Check the result (“verify” does an repository integrity check) :

Vérifier le résultat (vérification de l’intégrité du référentiel avec “verify”) :

[myhost2]$ svnadmin verify /REPO/OPE/CRUSERS

* Verified revision 0.

* Verified revision 1.

* Verified revision 2.

* Verified revision 3.