Comment extraire une révision Subversion spécifique à partir de la ligne de commande?

364

Je souhaite extraire une révision spécifique d'un dossier dans Subversion à l'aide de la ligne de commande.

Je ne vois pas d'option pour spécifier le numéro de révision dans TortoiseProc.exe,

TortoiseProc.exe /command:checkout <url>

Comment obtenir la révision que je souhaite? Est-ce TortoiseProc.exele bon outil pour ce que je veux faire?

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source

Réponses:

469

Si vous l'avez déjà extrait localement, vous pouvez cdà l'endroit où il est extrait, puis utilisez cette syntaxe:

$ svn up -rXXXX

ref: Extraire une révision spécifique de subversion à partir de la ligne de commande

rogerdpack
la source
Pour une raison quelconque, cela ne fait rien pour moi. Toujours à l'ancienne révision.
IgorGanapolsky
2
@IgorGanapolsky Avez-vous modifié localement le fichier que vous essayez de mettre à jour?
Comment effectuez-vous une réinitialisation matérielle? (Ignorer les conflits?)
Dilip Raj Baral
313

Soit

svn checkout url://repository/path@1234

ou

svn checkout -r 1234 url://repository/path
pix0r
la source
3
J'ai dû supprimer de l'espace après -r, donc "-r1234" a fonctionné pour moi.
Elijah Lofgren
257

Y a-t-il une raison d'utiliser TortoiseProc au lieu de simplement la ligne de commande svn normale?

J'utiliserais:

svn checkout svn://somepath@1234 working-directory

(pour obtenir la révision 1234)

Jon Skeet
la source
36

Vous ne devez jamais utiliser TortoiseProc.exe comme client Subversion en ligne de commande! TortoiseProc ne doit être utilisé que pour automatiser l'interface graphique de TortoiseSVN. Voir la note dans le manuel de TortoiseSVN :

N'oubliez pas que TortoiseSVN est un client GUI et ce guide d'automatisation vous montre comment faire apparaître les boîtes de dialogue TortoiseSVN pour collecter les entrées utilisateur. Si vous souhaitez écrire un script qui ne nécessite aucune entrée, vous devez utiliser le client de ligne de commande Subversion officiel à la place.

Utilisez le client svn.exe de ligne de commande Subversion . Avec le client de ligne de commande, vous pouvez

Vous pouvez remarquer qu'avec svn checkoutet svn exportvous pouvez entrer le numéro REV comme --revision REVargument et comme fin@REV après l'URL. La première est appelée révision opératoire, et la seconde est appelée révision de cheville. Lisez SVNBook pour plus d'informations sur l'ancrage et le concept des révisions opérationnelles .

bahrep
la source
8

svn checkout pour réviser l'emplacement de votre référentiel sur un autre serveur

Utilisez la svn logcommande pour savoir quelles révisions sont disponibles:

svn log

Qui imprime:

------------------------------------------------------------------------
r762 | machines | 2012-12-02 13:00:16 -0500 (Sun, 02 Dec 2012) | 2 lines

------------------------------------------------------------------------
r761 | machines | 2012-12-02 12:59:40 -0500 (Sun, 02 Dec 2012) | 2 lines

Notez le nombre r761. Voici la description de la commande:

svn export http://url-to-your-file@761 /tmp/filename

J'ai utilisé cette commande spécifiquement:

svn export svn+ssh://[email protected]/home1/oct/calc/calcFeatures.m@761 calcFeatures.m

Ce qui provoque l'extraction de calcFeatures.m révision 761 dans le répertoire en cours.

Eric Leschinski
la source
6

Je crois que la syntaxe est /rev:<revisionNumber>

La documentation pour cela peut être trouvée ici

Stuart Thompson
la source
3

Tu pourrais essayer

TortoiseProc.exe /command:checkout /rev:1234

pour obtenir la révision 1234.

Je ne suis pas sûr à 100% que l' /revoption soit compatible avec checkout, mais j'ai eu l'idée de la documentation de TortoiseProc .

système PAUSE
la source
2

Il semble que vous puissiez utiliser le navigateur du référentiel. Cliquez sur le bouton de révision en haut à droite et remplacez-le par la révision souhaitée. Cliquez ensuite avec le bouton droit de la souris sur votre fichier dans le navigateur et utilisez «Copier vers la copie de travail ...» mais changez le nom de fichier qu'il extraira, pour éviter un conflit.

user1240259
la source
1

Vous devrez utiliser svn directement:

svn checkout URL[@REV]... [PATH]

et

svn help co

vous donne un peu plus d'aide.

Sebastian Dressler
la source
2
autant que je vois, je pense qu'un exemple peut aider. incluez-vous ou non les crochets? qu'en est-il de 3 périodes? qu'en est-il de l'espace après les 3 périodes? Quels caractères sont littéraux, quels sont les espaces réservés et quels sont les caractères ajoutés pour les espaces réservés?
ahnbizcad
0

Accédez au dossier et utilisez la commande:

svn co {url}
jsduniya
la source