Comment voir ce qui sera mis à jour depuis le référentiel avant de lancer la commande “svn update”?

J’ai engagé des modifications dans de nombreux fichiers dans un référentiel SVN à partir d’Eclipse.

Je vais ensuite dans le répertoire du site Web sur la boîte Linux où je souhaite mettre à jour ces modifications du référentiel vers le répertoire.

Je veux dire “svn update project100″ qui mettra à jour les répertoires sous “project100” avec tous mes fichiers ajoutés et modifiés, etc.

Cependant, je ne veux pas nécessairement mettre à jour les modifications que je n’ai pas apscopes. Je pensais donc pouvoir dire “svn status project100” mais quand je fais cela, je reçois une liste totalement différente des changements qui seront effectués, aucun des miens ne figure dans la liste, ce qui est étrange.

Par conséquent, pour être sûr que seules mes modifications sont mises à jour dans le répertoire Web, je suis obligé de naviguer dans tous les répertoires où je sais qu’un changement a été effectué. ce qui est fastidieux.

Est-ce que n’importe qui peut faire la lumière sur la procédure de travail standard ici, à savoir comment obtenir une liste précise de toutes les modifications qui sont sur le point d’être faites avant d’exécuter la commande “svn update”? J’ai pensé que c’était la commande “status”.

Essayer:

svn status --show-updates 

ou (le même mais plus court):

 svn status -u 

Selon ce que vous voulez savoir entre votre copie de travail et le dernier référentiel de serveur svn, sans mettre à jour votre copie de travail locale, voici ce que vous pouvez faire:

Si vous voulez savoir ce qui a été changé dans le repository du serveur svn, exécutez la commande:

 $ svn st -u 

Si vous voulez savoir si le même fichier a été modifié à la fois dans votre copie de travail locale et dans le référentiel du serveur svn, exécutez la commande:

 $ svn st -u | grep -E '^M {7}\*' 

Si vous souhaitez modifier la liste des fichiers entre une révision particulière et HEAD, exécutez la commande:

 $ svn diff -r revisionNumber:HEAD --summarize 

Si vous voulez modifier la liste des fichiers entre les révisions paticulaires, exécutez la commande:

 $ svn diff -r revisionNumber:anotherRevisionNumber --summarize 

Si vous voulez voir ce qui sera mis à jour (sans mettre à jour), exécutez la commande:

 $ svn merge --dry-run -r BASE:HEAD . 

Si vous voulez savoir quel contenu d’un fichier particulier a été modifié dans le répertoire du serveur svn par rapport à votre copie de travail, exécutez la commande:

 $ svn diff -r BASE:HEAD ./pathToYour/file 

Si vous voulez savoir quel contenu de tous les fichiers ont été modifiés dans le répertoire du serveur svn par rapport à votre copie de travail, exécutez la commande:

 $ svn diff -r BASE:HEAD . 

Vous pouvez voir ce qui sera mis à jour (sans être mis à jour) en émettant:

 svn merge --dry-run -r BASE:HEAD . 

Plus de détails ici .

C’est ce que je cherchais. Vérifié Google en premier, mais svn help fini par venir pour moi 🙂

 svn diff -r BASE:HEAD . 

Le même mais moins long :):

 svn st -u 

Vous pouvez utiliser ‘svn diff’ pour voir la différence entre votre copie de travail et le référentiel.

En théorie, vous pouvez effectuer tous vos changements dans une twig que vous avez créée pour votre propre usage. Vous seriez alors raisonnablement sûr que vous étiez le seul à vous y engager.

Le développement des fonctionnalités IMHO devrait être fait comme ça.

Ensuite, vous pouvez mettre à jour cette machine cible à partir de cette twig plutôt que depuis le tronc.