2009-11-24 6 views
2

Juste une petite question que je ne l'ai pas trouvé une réponse par la recherche ...Comment obtenir la dernière révision mise à jour via SVN?

Comment puis-je obtenir la actuelle vérifié sur le numéro de révision de mon SVN-dir? Plus clair: Je ne veux pas le dernier numéro de révision puisque cela peut être mon propre commit, mais le numéro de révision de la dernière mise à jour que j'ai faite dans mon repo local. Ou, si cela est plus facile, je veux être en mesure de récupérer une liste de tous les fichiers qui ont été engagés dans le rapport depuis ma dernière mise à jour, de préférence sans les fichiers que j'ai engagés depuis.

Vive.

+0

Toutes les réponses actuelles me disent la dernière version que j'ai localement, mais ** pas ** la dernière mise à jour que j'ai faite. Parce que si mon dernier commit était 1234, j'obtiendrai 1234. Cependant, si la dernière révision que j'ai téléchargée est 1233, c'est le nombre que je veux trouver. (Même si je devrais toujours mettre à jour la dernière révision avant de m'engager). – Christoffer

Répondre

5

svnversion affiche une plage de numéros

> svnversion 
2:3 

Le premier numéro est la dernière mise à jour/version extraite. Le second numéro est la dernière version archivée. Si elles sont identiques, vous ne verrez qu'un seul numéro. Sachez que si vous effectuez des vérifications/vérifications/fusions compliquées, différentes parties de votre copie de travail peuvent avoir des révisions différentes, et svnversion vous indiquera la plage des numéros de révision. Voir la documentation svnversion.

+0

Merci, c'est ce que je voulais savoir :) – Christoffer

+0

merci de demander - je l'ai compris en déconnant, ne connaissait pas cette fonctionnalité jusqu'à ce que je l'ai essayé. –

+0

Déclaration à propos de la dernière version vérifiée * est ** erronée **. Pas en général. Vous pouvez simplement ** svn up -r $ OLDREV; svn up $ FILE ** pour obtenir une copie mixte et vous ne vous êtes pas enregistré ** $ FILE **)) – gavenkoa

2

Vous pouvez utiliser le programme svnversion.

0
svn info <your local WC> 

Toute information supplémentaire:

C:\>svn help info 
info: Display information about a local or remote item. 
usage: info [TARGET[@REV]...] 

    Print information about each TARGET (default: '.') 
    TARGET may be either a working-copy path or URL. If specified, REV 
    determines in which revision the target is first looked up. 

Valid options: 
    -r [--revision] ARG  : ARG (some commands also take ARG1:ARG2 range) 
          A revision argument can be one of: 
           NUMBER  revision number 
           '{' DATE '}' revision at start of the date 
           'HEAD'  latest in repository 
           'BASE'  base rev of item's working copy 
           'COMMITTED' last commit at or before BASE 
           'PREV'  revision just before COMMITTED 
    -R [--recursive]   : descend recursively, same as --depth=infinity 
    --depth ARG    : limit operation by depth ARG ('empty', 'files', 
          'immediates', or 'infinity') 
    --targets ARG   : pass contents of file ARG as additional args 
    --incremental   : give output suitable for concatenation 
    --xml     : output in XML 
    --changelist ARG   : operate only on members of changelist ARG 
          [aliases: --cl] 

Global options: 
    --username ARG   : specify a username ARG 
    --password ARG   : specify a password ARG 
    --no-auth-cache   : do not cache authentication tokens 
    --non-interactive  : do no interactive prompting 
    --config-dir ARG   : read user configuration files from directory ARG 

Pour la deuxième partie de votre question:
Vous pouvez utiliser svn diff -r BASE:HEAD. BASE décrit votre révision actuelle, HEAD la dernière version du référentiel.

3

Utilisez la commande svnversion.

$ svnversion 
1234 

signifie que 1234 est la révision la plus élevée à laquelle votre copie de travail a été mise à jour.

0

Si vous voulez savoir ce qui a changé dans le repo qui n'est pas dans votre copie de travail que vous recherchez le commutateur -u à ​​la commande svn status:

svn status -u 

Il vous montrera ce qui se passerait si vous avez fait un svn up, mais sans réellement effectuer la mise à jour.

+1

Non - l'OP cherche le numéro de version de la dernière version mise à jour. svn status -u se compare à la dernière version archivée qui peut être supérieure à la dernière version mise à jour. –

+0

Ugh. C'est ce qui arrive quand je passe au décaféiné! –

0

Pls vérifier cette documentation svnversion

Je pense que vous devez utiliser la commande svnversion avec option -c.

--committed (-c) Utilise les révisions modifiées en dernier lieu plutôt que les révisions en cours (c'est-à-dire les plus disponibles localement).

Espérons que cette aide!

Questions connexes