Wie kann ich eine bestimmte Subversion-Revision über die Befehlszeile auschecken?

364

Ich möchte eine bestimmte Revision eines Ordners in Subversion über die Befehlszeile auschecken.

Ich sehe keine Option zum Angeben der Revisionsnummer in TortoiseProc.exe,

TortoiseProc.exe /command:checkout <url>

Wie bekomme ich die gewünschte Revision? Ist TortoiseProc.exedas richtige Werkzeug für das, was ich tun möchte?

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

Antworten:

469

Wenn Sie es bereits lokal ausgecheckt haben, können Sie dort cd, wo es ausgecheckt ist, die folgende Syntax verwenden:

$ svn up -rXXXX

ref: Überprüfen Sie eine bestimmte Revision aus der Subversion über die Befehlszeile

Rogerdpack
quelle
Aus irgendeinem Grund tut das nichts für mich. Immer noch bei der alten Revision.
Igor Ganapolsky
2
@IgorGanapolsky Haben Sie die Datei, die Sie aktualisieren möchten, lokal geändert?
Wie machst du einen Hard Reset? (Konflikte ignorieren?)
Dilip Raj Baral
313

Entweder

svn checkout url://repository/path@1234

oder

svn checkout -r 1234 url://repository/path
pix0r
quelle
3
Ich musste nach -r Leerzeichen entfernen, damit "-r1234" für mich funktioniert.
Elijah Lofgren
257

Gibt es einen Grund, TortoiseProc anstelle der normalen svn-Befehlszeile zu verwenden?

Ich würde verwenden:

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

(um Revision 1234 zu bekommen)

Jon Skeet
quelle
36

Sie sollten TortoiseProc.exe niemals als Befehlszeilen-Subversion-Client verwenden! TortoiseProc sollte nur zur Automatisierung der Benutzeroberfläche von TortoiseSVN verwendet werden. Siehe den Hinweis im TortoiseSVN-Handbuch :

Denken Sie daran, dass TortoiseSVN ein GUI-Client ist. In diesem Automatisierungshandbuch erfahren Sie, wie Sie die TortoiseSVN-Dialogfelder so anzeigen, dass Benutzereingaben erfasst werden. Wenn Sie ein Skript schreiben möchten, für das keine Eingabe erforderlich ist, sollten Sie stattdessen den offiziellen Subversion-Befehlszeilenclient verwenden.

Verwenden Sie den Subversion- Befehlszeilen-Client svn.exe . Mit dem Befehlszeilen-Client können Sie

Möglicherweise stellen Sie fest, dass mit svn checkoutund svn exportSie die REV-Nummer als --revision REVArgument und @REVnach der URL eingeben können . Die erste wird als operative Revision und die zweite als Peg-Revision bezeichnet. Weitere Informationen zum Konzept von Peg und operativen Revisionen finden Sie im SVNBook .

bahrep
quelle
8

svn checkout zur Revision, wo sich Ihr Repository auf einem anderen Server befindet

Verwenden Sie den svn logBefehl, um herauszufinden, welche Revisionen verfügbar sind:

svn log

Welche Drucke:

------------------------------------------------------------------------
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

Notieren Sie die Nummer r761. Hier ist die Befehlsbeschreibung:

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

Ich habe diesen Befehl speziell verwendet:

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

Dadurch wird calcFeatures.m Revision 761 in das aktuelle Verzeichnis ausgecheckt.

Eric Leschinski
quelle
6

Ich glaube die Syntax dafür ist /rev:<revisionNumber>

Dokumentation hierzu finden Sie hier

Stuart Thompson
quelle
3

Du könntest es versuchen

TortoiseProc.exe /command:checkout /rev:1234

um Revision 1234 zu bekommen.

Ich bin nicht 100% sicher, ob die /revOption kompatibel ist checkout, aber ich habe die Idee aus einer TortoiseProc-Dokumentation .

System PAUSE
quelle
2

Es scheint, dass Sie den Repository-Browser verwenden können. Klicken Sie oben rechts auf die Schaltfläche "Revision" und ändern Sie sie in die gewünschte Revision. Klicken Sie dann mit der rechten Maustaste auf Ihre Datei im Browser und verwenden Sie "In Arbeitskopie kopieren ...". Ändern Sie jedoch den Dateinamen, der ausgecheckt werden soll, um Konflikte zu vermeiden.

user1240259
quelle
1

Sie müssen svn direkt verwenden:

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

und

svn help co

gibt dir ein bisschen mehr Hilfe.

Sebastian Dressler
quelle
2
Soweit ich sehe, kann ein Beispiel helfen. Schließen Sie die Klammern ein oder nicht? Was ist mit 3 Perioden? Was ist mit dem Raum nach den 3 Perioden? Welche Zeichen sind wörtlich und welche sind Platzhalter, und welche Zeichen werden für die Platzhalter hinzugefügt?
Ahnbizcad
0

Gehen Sie zum Ordner und verwenden Sie den Befehl:

svn co {url}
jsduniya
quelle