Menggunakan TortoiseSVN melalui baris perintah

254

Saya ingin menggunakan opsi SVN commandline. Saya menggunakan TortoiseSVN, dan saya menjalankan beberapa perintah dan saya mendapatkan kesalahan berikut.

'svn' tidak dikenali sebagai perintah internal atau eksternal

Saya menggunakan perintah

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH

Saya pikir saya harus menambahkan beberapa variabel lingkungan atau sesuatu yang lain.

Apa yang harus saya lakukan atau tidak bisa TortoiseSVN digunakan dari baris perintah?

Walker Malam
sumber
4
Saya sarankan slik subversi . Dan setelah menginstal cukup tambahkan direktori bin-nya ke jalur Anda. -bhups
bhups
3
TortoiseSVN mungkin adalah klien Windows GUI SVN yang paling banyak digunakan dan didokumentasikan secara menyeluruh. Saya tidak akan menyebutnya pseudo-client hanya karena itu bukan implementasi command-line referensi.
Joey
18
Versi terbaru dari TortoiseSVN (1.7.1 dari penulisan ini) memiliki opsi selama instalasi untuk alat-alat baris perintah. Ini tidak diaktifkan secara default tetapi itu akan menginstal file baris perintah standar untuk svn. Jadi tidak perlu menginstal paket subversi yang terpisah seperti Silk lagi.
vee
1
Hanya FYI cepat, jika menggunakan Slik svn dan Anda mendapatkan kesalahan itu: "'svn' tidak dikenali ..." Anda mungkin harus membuka dialog System Properties. Sementara Slik memang menambahkan entri yang benar ke variabel Path Anda, Anda mungkin harus mengklik edit dan 'ok' (bahkan jika Anda belum membuat perubahan) untuk mengaktifkan variabel. Setidaknya itulah pengalaman saya menggunakan Windows Vista. Setelah saya melakukan itu, Windows mengenali perubahan di Path dan perintah svn saya dikenali.
Jesse
1
Saya telah menambahkan jalur SlikSvn / bin ke variabel lingkungan tetapi masih mendapatkan kesalahan ini ...
Lion789

Jawaban:

464

Secara default TortoiseSVN selalu memiliki GUI (Graphical User Interface) yang terkait dengannya. Tetapi pada installer (versi 1.7 dan yang lebih baru), Anda dapat memilih opsi "alat klien baris perintah" sehingga Anda dapat memanggil perintah svn (seperti svn commit dan pembaruan svn) dari baris perintah.

Berikut screenshot dari opsi "alat klien baris perintah" di installer, Anda harus memastikan Anda memilihnya:

Bagaimana cara menginstal TortoiseSvn-CommandLineTools

AnneTheAgile
sumber
52
Secara pribadi, saya lebih suka jawaban ini daripada yang diterima: tidak ada instalasi sekunder, dan akses penuh ke baris perintah SVN standar.
Haroldo_OK
2
Juga memiliki manfaat tambahan bahwa versi alat baris perintah tetap sinkron dengan versi TortoiseSVN.
the_mandrill
4
... yang artinya, secara lebih rinci: format direktori kerja Subversion telah berubah beberapa kali, misalnya dalam versi 1.7 dan 1.8. Klien 1,7 tidak akan menggunakan direktori kerja yang lebih lama kecuali jika svn upgraded; setelah itu, klien 1.6 tidak akan dapat menggunakannya lagi.
Tobias
38
Sebagai tip, jika Anda sudah menginstal Kura-kura, tidak perlu menginstal ulang. Anda cukup membuka file .msi installer asli, dan alih-alih memilih "Copot" Anda bisa memilih "Ubah." Itu hanya akan memperbarui instalasi Kura-kura Anda saat ini tanpa mengacaukan apa pun.
Trevor
5
Sebagai tip, jika Anda sudah menginstal Tortoise, dan tidak memiliki file .msi - Anda dapat pergi ke Control Panel -> Program dan Fitur, dan kemudian pilih TortoiseSVN -> Ubah.
zvi
131

TortoiseSVN memiliki antarmuka baris perintah yang dapat digunakan untuk otomatisasi GUI TortoiseSVN dan berbeda dari yang Subversion normal.

Anda dapat menemukan informasi tentang opsi baris perintah TortoiseSVN dalam dokumentasi: Lampiran D. Mengotomatiskan TortoiseSVN . Program utama untuk bekerja di sini adalah TortoiseProc.exe.

Tetapi sebuah catatan di bagian atas sudah mengatakan:

Ingat bahwa TortoiseSVN adalah klien GUI, dan panduan otomasi ini menunjukkan kepada Anda cara membuat dialog TortoiseSVN muncul untuk mengumpulkan input pengguna. Jika Anda ingin menulis skrip yang tidak memerlukan input, Anda harus menggunakan klien baris perintah Subversion resmi sebagai gantinya.

Opsi lain adalah Anda menginstal binari Subversion. Slik SVN adalah bangunan yang bagus (dan tidak memerlukan pendaftaran seperti Collabnet). Versi terbaru dari TortoiseSVN juga menyertakan klien baris perintah jika Anda memilih untuk menginstalnya.

Joey
sumber
2
Hanya untuk menambahkan ini - pastikan Tortoise ada di jalur Anda. Kalau tidak, tidak akan ada yang berhasil.
Thomas Owens
2
Berdasarkan jawaban ini, saya pikir yang terbaik adalah menginstal klien baris perintah SVN yang sebenarnya daripada belajar antarmuka baris perintah kedua. Saya tidak tahu bagaimana melakukan itu.
jprete
2
Thomas: Secara default TortoiseSVN dan Slik SVN akan mengubah jalurnya.
Joey
23
Solusi ini sudah ketinggalan zaman, pemasang TortosieSVN sekarang termasuk alat-alat baris perintah.
Josh
1
Anda mungkin perlu me-reboot setelah instalasi agar Anda mendapatkan perubahan pada variabel lingkungan PATH Anda.
Oliver Bock
91

Jika Anda telah menginstal GUI TortoiseSVN dan bertanya-tanya bagaimana cara memutakhirkan ke alat-alat baris perintah, berikut adalah langkah-langkahnya ...

  1. Buka Windows Control Panel → Program dan Fitur (Windows 7+)
  2. Temukan TortoiseSVN dan klik di situ.
  3. Pilih "Ubah" dari opsi yang tersedia.
  4. Lihat gambar ini untuk langkah lebih lanjut.

    Baris Perintah TortoiseSVN Aktif

  5. Setelah alat klien baris perintah selesai, buka prompt perintah dan ketik svn helpuntuk memeriksa instalasi yang berhasil.

Devendra Vaja
sumber
Jawaban Anda belum diformat. Dan itu memiliki informasi yang tidak diinginkan. Dia memformat dan mengedit jawaban Anda dengan benar. Baca pusat bantuan untuk informasi lebih lanjut. ;)
Lucky
Win10 adalah "Aplikasi & Fitur" .. tapi itu mungkin jelas
langsing
Ok, jangan percaya padaku. Silakan ajukan ini sebagai pertanyaan dalam meta apakah hasil edit itu sah atau tidak. Dia tidak hanya memformat jawaban Anda, tetapi juga menghapus informasi yang tidak diinginkan yang tidak diperlukan untuk jawabannya. Ini disebut moderasi. Dan orang-orang dengan repetisi tinggi biasanya membersihkan situs dengan memoderasi dan berkontribusi itulah sebabnya saya menyarankan Anda untuk mencari pusat bantuan. Tapi Anda hanya ingin berdebat bukannya mendapatkan pengetahuan. Semoga berhasil.😉
Lucky
Ya sebenarnya saya tertarik untuk berbagi pengetahuan dan tidak mengklaim karya dan khotbah seseorang. Juga saya bukan pengikut buta repetisi tinggi.
Devendra Vaja
sementara kami mengaktifkan baris perintah, ia meminta jalur aplikasi yang diperlukan untuk mengunduh. path: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi
27

Untuk menggunakan dukungan perintah, Anda harus mengikuti langkah-langkah ini:

  1. Tentukan Path dalam Variabel Lingkungan:

    • buka ' Properti Sistem ';
    • pada tab ' Advanced ' klik pada tombol ' Variabel Lingkungan '
    • di bagian ' System variable ' pilih opsi ' Path ' dan klik ' edit '
    • tambahkan nilai variabel dengan path ke file TortoiseProc.exe , misalnya:

      C: \ Program Files \ TortoiseSVN \ bin

  2. Karena Anda telah mendaftarkan TortoiseProc , Anda dapat menggunakannya sesuai dengan dokumentasi TortoiseSVN .

    Contoh:

    TortoiseProc.exe / command: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" test log message "/ closeonend: 0

    TortoiseProc.exe / command: update / path: "c: \ svn_wc \" / closeonend: 0

    TortoiseProc.exe / command: log /path:"c:\svn_wc\file1.txt "/ startrev: 50 / endrev: 60 / closeonend: 0

PS Untuk menggunakan nama yang ramah seperti 'svn' dan bukan 'TortoiseProc', letakkan file 'svn.bat' di direktori 'TortoiseProc.exe'. Ada contoh svn.bat:

TortoiseProc.exe %1 %2 %3
Ahli sihir
sumber
Masalah utama bukanlah nama yang dapat dieksekusi (dan bagaimana menemukannya) tetapi sintaks baris perintah yang sama sekali berbeda; lihat jawaban saya yang menceritakan tsvnprogram saya (yang tidak ada pada saat jawaban Warlock). Versi Windows terbaru memungkinkan untuk menentukan semua argumen sebagai %*(bukan %1 %2 %3...).
Tobias
10

Untuk mengaktifkan svn, jalankan lagi program instalasi TortoiseSVN, pilih "Ubah" (Memungkinkan pengguna untuk mengubah cara fitur diinstal) dan menginstal "alat klien baris perintah".

Kiki
sumber
bagi Anda yang bertanya-tanya di mana opsi "Ubah" - coba instal ulang Tortoise SVN
maya
@maya Jika Anda telah menginstalnya jangan mencoba untuk menghapus dan menginstalnya kembali. Pergi ke Control Panel\Programs\Programs and Featurespencarian Tortoise SVN dan klik Changelalu klik Modify.
Lucky
9

Solusi saya adalah menggunakan DOSKEY untuk mengatur beberapa alias untuk perintah yang paling sering saya gunakan:

DOSKEY svc=TortoiseProc.exe /command:commit /path:.
DOSKEY svu=TortoiseProc.exe /command:update /path:.
DOSKEY svl=TortoiseProc.exe /command:log /path:.
DOSKEY svd=TortoiseProc.exe /command:diff /path:$*

Google "doskey bertahan" untuk tips tentang cara mengatur file .cmd yang berjalan setiap kali Anda membuka prompt perintah seperti file. * Rc di Unix.

SeanH
sumber
Bagus! Ini adalah satu-satunya jawaban yang benar-benar memanggil TortoiseSVN, bukan biasa svn, dari baris perintah.
Simpanse Warlike
4

Anda dapat menginstal alat perintah baris TortoiseSVN dan Apache Subversion. Saya biasanya menginstal alat Apache SVN dari situs unduhan VisualSVN: https://www.visualsvn.com/downloads/

Setelah diinstal, tempatkan Subversion \ bin di PATH yang Anda atur. Kemudian Anda akan dapat menggunakan TortoiseSVN saat Anda ingin menggunakan GUI, dan Anda memiliki alat baris perintah SVN yang tepat untuk digunakan dari baris perintah.

David
sumber
3

Ada kebingungan yang menyebabkan banyak pengguna TortoiseSVN menggunakan alat baris perintah yang salah ketika mereka benar-benar mencari svn.exeklien baris perintah.

Apa yang harus saya lakukan atau tidak bisa TortoiseSVN digunakan dari baris perintah?

svn.exe

Jika Anda ingin menjalankan perintah Subversion dari prompt perintah, Anda harus menjalankan svn.exeklien baris perintah. TortoiseSVN 1.6.x dan versi yang lebih lama tidak termasuk alat baris perintah SVN, tetapi versi modern melakukannya.

Jika Anda ingin mendapatkan alat baris perintah SVN tanpa harus menginstal TortoiseSVN, periksa halaman distribusi biner SVN atau cukup unduh versi terbaru dari halaman unduhan VisualSVN .

Jika Anda memiliki alat baris perintah SVN yang diinstal pada sistem Anda, tetapi masih mendapatkan kesalahan 'svn' is not recognized as an internal or external command, Anda harus memeriksa %PATH%variabel lingkungan. %PATH%harus menyertakan path ke direktori alat SVN misalnya C:\Program Files (x86)\VisualSVN\bin.

TortoiseProc.exe

Terlepas dari svn.exe, TortoiseSVN hadir dengan TortoiseProc.exeyang dapat dipanggil dari command prompt. Dalam kebanyakan kasus, Anda tidak perlu menggunakan alat ini, karena itu hanya boleh digunakan untuk otomasi GUI. TortoiseProc.exebukan pengganti untuk klien baris perintah SVN.

bahrep
sumber
2

Seperti yang ditunjukkan Joey, TortoiseSVN memiliki sintaks baris perintahnya sendiri. Sayangnya itu sangat jelek, jika Anda terbiasa dengan svnperintah, dan mengabaikan direktori yang sedang aktif, sehingga tidak bisa digunakan - kecuali untuk skrip.

Saya telah membuat program Python kecil ( tsvn) yang meniru svnsintaks baris perintah sedekat mungkin dan memanggil TortoiseSVN sesuai. Dengan demikian, perbedaan antara memanggil alat commandline normal dan memanggil TortoiseSVN dikurangi menjadi huruf kecil tdi awal.

tsvnProgram saya belum lengkap tetapi sudah berguna. Itu dapat ditemukan di cheeseshop ( https://pypi.python.org/pypi/tsvn/ )

Tobias
sumber
Bagi mereka yang tidak terbiasa dengan Python: Anda memerlukan juru bahasa Python 2.x baru-baru ini. Jika Anda memiliki easy_installatau pip install, sebutkan saja tsvn; jika tidak, Anda dapat mengunduh dan mengekstrak tarball dan menjalankan setup.pyskrip instalasi yang ada . Karena ditafsirkan, Anda dapat memeriksanya secara rinci ;-)
Tobias
2

Setelah beberapa waktu, saya menggunakan solusi ini ...

(di file .bat)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
jorgesimoes
sumber
2

Perbaikan saya untuk mendapatkan perintah SVN adalah menyalin file .exe dan .dll dari direktori TortoiseSVN dan menempelkannya ke folder system32.

Anda juga bisa melakukan perintah dari direktori TortoiseSVN dan menambahkan jalur direktori kerja ke setiap perintah. Sebagai contoh:

C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout

Menambahkan bin ke path seharusnya membuatnya berfungsi tanpa menduplikasi file, tetapi tidak berhasil untuk saya.

KC dan EE
sumber
Pendekatan ini tidak bekerja, masih menunjukkan'svn' is not recognized as an internal or external command
Suraj M
0

Setelah memilih "alat baris perintah SVN" akan menjadi seperti ini:

Masukkan deskripsi gambar di sini

Alvin567
sumber
5
Ini adalah hasil yang diinginkan, namun jawaban ini tidak memberi tahu bagaimana sebenarnya mencapai ini.
BogdanBiv