118 votes

Comment voir ce qui sera mis à jour à partir du référentiel avant d'émettre la commande "svn update"?

J'ai commis des changements dans de nombreux dossiers à un dépôt SVN depuis Eclipse.

Je suis ensuite aller sur le site de répertoire sur la machine linux où je veux mettre à jour ces modifications à partir du référentiel de l'annuaire.

J'ai envie de dire "svn update project100" qui permettra de mettre à jour les sous-répertoires "project100" avec tous mes ajouté fichiers et les fichiers modifiés, etc.

CEPENDANT, je ne veux pas nécessairement la mise à jour des changements que je n'ai pas fait. J'ai donc pensé que je pourrais dire "svn status project100" mais quand je fais cela, je reçois un totalement différente de la liste des modifications qui seront apportées, aucun des miens sont dans la liste, qui est impair.

Donc pour être sûr que mes modifications sont mises à jour pour l'annuaire du web, je suis obligé de naviguer sur tous les répertoires où je sais qu'il y est un changement que j'ai fait et explicitement mise à jour uniquement les fichiers, par exemple "svn update newfile1.php" etc. ce qui est fastidieux.

Quelqu'un peut nous donner un indice sur la norme de procédure de travail ici, à savoir comment puis-je obtenir une liste précise de tous les changements qui sont sur le point d'être fait avant de m'exécuter le "svn update" commande? Je pensais que c'était le "statut de la commande".

170voto

Dave Webb Points 90034

Essayer:

 svn status --show-updates
 

ou (le même mais plus court):

 svn status -u
 

56voto

TianCaiBenBen Points 331

En fonction de ce que vous voulez savoir entre votre copie de travail et la dernière svn le répertoire du serveur, 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 serveur svn repository, exécutez commande:

$ svn st -u

si vous voulez savoir si le même fichier a été modifié, à la fois dans votre local de la copie de travail et serveur svn repository, exécutez la commande:

$ svn st -u |grep -i "^M \{7\}\*"

si vous souhaitez obtenir la liste des fichiers modifiés entre une révision particulière et La TÊTE, exécutez la commande:

$ svn diff -r revisionNumber:HEAD --summarize

si vous souhaitez obtenir une liste des fichiers modifiés entre particulière révisions, exécutez commande:

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

si vous voulez voir ce qui va être mis à jour (sans mise à jour), exécuté commande:

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

si vous voulez savoir ce que le contenu d'un fichier a été modifié dans le svn le répertoire du serveur par rapport à votre copie de travail, exécutez la commande:

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

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

$ svn diff -r BASE:HEAD .

43voto

Ben Hoffstein Points 44398

Vous pouvez voir ce qui sera mis à jour (sans mettre à jour réellement) en émettant:

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

Plus de détails ici .

17voto

Jeff Points 500

C'est ce que je cherchais. J'ai d'abord vérifié Google, mais svn help fini par arriver pour moi :)

 svn diff -r BASE:HEAD .
 

15voto

Kenzo Points 323

@dave: ou plus court :):

 svn st -u
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X