Sử dụng TortoiseSVN thông qua dòng lệnh


253

Tôi muốn sử dụng các tùy chọn SVN dòng lệnh. Tôi sử dụng TortoiseSVN và tôi chạy một số lệnh và tôi gặp lỗi sau.

'svn' không được công nhận là lệnh nội bộ hoặc bên ngoài

Tôi đã sử dụng lệnh

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

Tôi nghĩ rằng tôi nên thêm một số biến môi trường hoặc cái gì đó khác.

Tôi nên làm gì hoặc không thể sử dụng TortoiseSVN từ dòng lệnh?


4
Tôi muốn đề nghị lật đổ slik . Và sau khi cài đặt, chỉ cần thêm thư mục bin của nó vào đường dẫn của bạn. -bhups
bhups

3
TortoiseSVN có lẽ là ứng dụng khách Windows GUI SVN được sử dụng nhiều nhất và nó được ghi chép lại kỹ lưỡng. Tôi sẽ không gọi nó là giả máy khách chỉ vì nó không phải là triển khai dòng lệnh tham chiếu.
Joey

18
Phiên bản mới nhất của TortoiseSVN (1.7.1 của văn bản này) có một tùy chọn trong khi cài đặt cho các công cụ dòng lệnh. Nó không được bật theo mặc định nhưng nó sẽ cài đặt các tệp dòng lệnh tiêu chuẩn cho svn. Vì vậy, không cần phải cài đặt một gói lật đổ riêng như Silk nữa.
vee

1
Chỉ cần một FYI nhanh chóng, nếu sử dụng Slik svn và bạn gặp phải lỗi đó: "'svn' không được nhận ra ..." bạn có thể phải mở đối thoại Thuộc tính hệ thống. Mặc dù Slik không thêm mục chính xác vào biến Đường dẫn của bạn, bạn có thể phải nhấp vào chỉnh sửa và 'ok' (ngay cả khi bạn chưa thực hiện bất kỳ thay đổi nào) để bật biến. Ít nhất đó là kinh nghiệm của tôi khi sử dụng Windows Vista. Sau khi tôi làm điều đó, Windows đã nhận ra sự thay đổi trong Đường dẫn và lệnh svn của tôi đã được nhận ra.
Jesse

1
Tôi đã thêm đường dẫn SlikSvn / bin vào biến môi trường nhưng vẫn gặp lỗi này ...
Lion789

Câu trả lời:


463

Theo mặc định, TortoiseSVN luôn có GUI (Giao diện người dùng đồ họa) được liên kết với nó. Nhưng trên trình cài đặt (của phiên bản 1.7 trở lên), bạn có thể chọn tùy chọn "công cụ máy khách dòng lệnh" để bạn có thể gọi các lệnh svn (như svn commit và svn update) từ dòng lệnh.

Dưới đây là ảnh chụp màn hình của tùy chọn "công cụ máy khách dòng lệnh" trong trình cài đặt, bạn cần chắc chắn rằng bạn đã chọn nó:

Cách cài đặt-TortoiseSvn-CommandLineTools


52
Cá nhân, tôi thích câu trả lời này hơn câu trả lời được chấp nhận: không cài đặt thứ cấp và truy cập đầy đủ vào dòng lệnh SVN tiêu chuẩn.
Haroldo_OK

2
Cũng có thêm lợi ích là các phiên bản công cụ dòng lệnh vẫn đồng bộ với phiên bản TortoiseSVN.
the_mandrill

4
... có nghĩa là, chi tiết hơn: định dạng thư mục làm việc của Subversion đã thay đổi một vài lần, ví dụ như trong phiên bản 1.7 và 1.8. Một khách hàng 1.7 sẽ không sử dụng một thư mục làm việc cũ hơn trừ khi nó là svn upgraded; sau đó, một khách hàng 1.6 sẽ không thể sử dụng nó nữa.
Tobias

38
Một mẹo nhỏ, nếu bạn đã cài đặt Rùa, không cần phải cài đặt lại. Bạn chỉ có thể mở tệp .msi trình cài đặt gốc và thay vì chọn "Gỡ cài đặt", bạn có thể chọn "Sửa đổi". Nó sẽ chỉ cập nhật cài đặt Rùa hiện tại của bạn mà không làm hỏng bất cứ điều gì.
Trevor

5
Theo mẹo, nếu bạn đã cài đặt Rùa và không có tệp .msi - bạn có thể truy cập Bảng điều khiển -> Chương trình và Tính năng, sau đó chọn RùaSVN -> Sửa đổi.
zvi

131

TortoiseSVN có giao diện dòng lệnh có thể được sử dụng cho tự động hóa GUI của TortoiseSVN và nó khác với Subversion thông thường.

Bạn có thể tìm thấy thông tin về các tùy chọn dòng lệnh của TortoiseSVN trong tài liệu: Phụ lục D. Tự động hóa rùaSVN . Chương trình chính để làm việc với ở đây là TortoiseProc.exe.

Nhưng một lưu ý khá nhiều ở đầu đã nói:

Hãy nhớ rằng TortoiseSVN là một máy khách GUI và hướng dẫn tự động hóa này chỉ cho bạn cách làm cho các hộp thoại TortoiseSVN xuất hiện để thu thập dữ liệu nhập của người dùng. Nếu bạn muốn viết một tập lệnh không cần nhập liệu, bạn nên sử dụng ứng dụng khách dòng lệnh Subversion chính thức.

Một tùy chọn khác là bạn cài đặt các nhị phân Subversion. Slik SVN là một bản dựng đẹp (và không yêu cầu đăng ký như Collabnet). Các phiên bản gần đây của TortoiseSVN cũng bao gồm ứng dụng khách dòng lệnh nếu bạn chọn cài đặt nó.


2
Chỉ cần thêm vào điều này - đảm bảo Rùa đang ở trên đường của bạn. Nếu không, không có gì sẽ làm việc.
Thomas Owens

2
Dựa trên câu trả lời này, tôi nghĩ rằng cách tốt nhất sẽ là cài đặt ứng dụng khách dòng lệnh SVN thực tế thay vì học giao diện dòng lệnh thứ hai. Tôi không biết làm thế nào để làm điều đó, mặc dù.
jprete

2
Thomas: Theo mặc định, cả TortoiseSVN và Slik SVN sẽ thay đổi đường dẫn tương ứng.
Joey

23
Giải pháp này đơn giản là hết hạn, trình cài đặt TortosieSVN hiện bao gồm các công cụ dòng lệnh.
Josh

1
Bạn có thể cần phải khởi động lại sau khi cài đặt để có được thay đổi cho biến môi trường PATH của bạn.
Oliver Bock

91

Trong trường hợp bạn đã cài đặt GUI TortoiseSVN và tự hỏi làm thế nào để nâng cấp lên các công cụ dòng lệnh, đây là các bước ...

  1. Chuyển đến Bảng điều khiển Windows → Chương trình và tính năng (Windows 7+)
  2. Xác định vị trí TortoiseSVN và nhấp vào nó.
  3. Chọn "Thay đổi" từ các tùy chọn có sẵn.
  4. Tham khảo hình ảnh này để biết thêm các bước.

    Cho phép dòng lệnh TortoiseSVN

  5. Sau khi hoàn thành các công cụ máy khách dòng lệnh, hãy mở một dấu nhắc lệnh và gõ svn helpđể kiểm tra cài đặt thành công.


Câu trả lời của bạn chưa được định dạng. Và nó có thông tin không mong muốn. Ông đã làm cả định dạng và chỉnh sửa câu trả lời của bạn đúng. Xin vui lòng đọc trung tâm trợ giúp để biết thêm. ;)
May mắn

Win10 là "Ứng dụng & Tính năng" .. nhưng điều đó có thể rõ ràng
mỏng

Ok đừng tin tôi. Vui lòng hỏi điều này như một câu hỏi trong meta liệu chỉnh sửa có hợp pháp hay không. Anh ta không chỉ định dạng câu trả lời của bạn, anh ta còn xóa những thông tin không mong muốn không cần thiết cho câu trả lời. Nó được gọi là kiểm duyệt. Và những người có đại diện cao thường làm sạch trang web bằng cách kiểm duyệt và đóng góp, đó là lý do tại sao tôi đề nghị bạn nên tìm kiếm trung tâm trợ giúp. Nhưng bạn chỉ muốn tranh luận thay vì đạt được kiến ​​thức. Chúc may mắn.😉
May mắn

Vâng thực sự tôi quan tâm đến việc chia sẻ kiến ​​thức và không yêu cầu công việc và thuyết giảng của ai đó. Ngoài ra tôi không phải là một người theo dõi mù quáng của đại diện cao.
Devendra Vaja

Trong khi chúng tôi kích hoạt dòng lệnh, nó yêu cầu đường dẫn ứng dụng được yêu cầu tải xuống. đường dẫn: osdn.net/projects/tortoisesvn/st Storage / 1.12.0 / Ứng dụng / từ
Amit Joshi

27

Để sử dụng lệnh hỗ trợ, bạn nên làm theo các bước sau:

  1. Xác định đường dẫn trong biến môi trường:

    • mở ' Thuộc tính hệ thống ';
    • trên tab ' Nâng cao ', nhấp vào nút ' Biến môi trường '
    • trong phần ' Biến hệ thống ', chọn tùy chọn ' Đường dẫn ' và nhấp vào ' chỉnh sửa '
    • chắp thêm giá trị biến với đường dẫn đến tệp TortoiseProc.exe , ví dụ:

      C: \ Tệp chương trình \ TortoiseSVN \ bin

  2. Vì bạn đã đăng ký TortoiseProc , bạn có thể sử dụng nó theo tài liệu của TortoiseSVN .

    Ví dụ:

    TortoiseProc.exe / lệnh: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" thông báo nhật ký kiểm tra "/ closeonend: 0

    TortoiseProc.exe / lệnh: update / path: "c: \ svn_wc \" / closeonend: 0

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

PS Để sử dụng tên thân thiện như 'svn' thay vì 'TortoiseProc', hãy đặt tệp 'svn.bat' trong thư mục của 'TortoiseProc.exe'. Có một ví dụ về svn.bat:

TortoiseProc.exe %1 %2 %3

Vấn đề chính không phải là tên của tệp thực thi (và cách tìm nó) mà là cú pháp dòng lệnh hoàn toàn khác nhau; xem câu trả lời của tôi nói về tsvnchương trình của tôi (không tồn tại vào thời điểm câu trả lời của Warlock). Các phiên bản Windows gần đây cho phép chỉ định tất cả các đối số là %*(thay vì %1 %2 %3...).
Tobias

10

Để cho phép svn chạy lại chương trình cài đặt TortoiseSVN, chọn "Sửa đổi" (Cho phép người dùng thay đổi cách cài đặt các tính năng) và cài đặt "công cụ máy khách dòng lệnh".


đối với những người bạn đang tự hỏi tùy chọn "Sửa đổi" ở đâu - hãy thử cài đặt lại Rùa SVN
maya

@maya Nếu bạn đã cài đặt, đừng thử gỡ cài đặt và cài đặt lại. Đi đến Control Panel\Programs\Programs and Featurestìm kiếm Rùa SVN và nhấp Changevà sau đó nhấp vào Modify.
May mắn

9

Giải pháp của tôi là sử dụng DOSKEY để thiết lập một số bí danh cho các lệnh tôi sử dụng nhiều nhất:

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 contin" cho các mẹo về cách thiết lập tệp .cmd chạy mỗi khi bạn mở dấu nhắc lệnh như tệp. * RC trong Unix.


Tuyệt quá! Đây là câu trả lời duy nhất thực sự gọi TortoiseSVN, không phải thông thường svn, từ dòng lệnh.
Tinh tinh hiếu chiến

4

Bạn có thể cài đặt cả công cụ dòng lệnh TortoiseSVN và Apache Subversion. Tôi thường cài đặt các công cụ Apache SVN từ trang tải xuống VisualSVN: https://www.visualsvn.com/doads/

Sau khi cài đặt, đặt Subversion \ bin trong PATH đã đặt của bạn. Sau đó, bạn sẽ có thể sử dụng TortoiseSVN khi bạn muốn sử dụng GUI và bạn có các công cụ dòng lệnh SVN thích hợp để sử dụng từ dòng lệnh.


3

Có một sự nhầm lẫn đang khiến rất nhiều người dùng TortoiseSVN sử dụng các công cụ dòng lệnh sai khi họ thực sự đang tìm kiếm svn.exeứng dụng khách dòng lệnh.

Tôi nên làm gì hoặc không thể sử dụng TortoiseSVN từ dòng lệnh?

svn.exe

Nếu bạn muốn chạy các lệnh Subversion từ dấu nhắc lệnh, bạn nên chạy svn.exe máy khách dòng lệnh. TortoiseSVN 1.6.x và các phiên bản cũ hơn không bao gồm các công cụ dòng lệnh SVN, nhưng các phiên bản hiện đại thì có.

Nếu bạn muốn nhận các công cụ dòng lệnh SVN mà không cần phải cài đặt TortoiseSVN, hãy kiểm tra trang phân phối nhị phân SVN hoặc chỉ cần tải xuống phiên bản mới nhất từ trang tải xuống VisualSVN .

Nếu bạn đã cài đặt các công cụ dòng lệnh SVN trên hệ thống của mình nhưng vẫn gặp lỗi 'svn' is not recognized as an internal or external command, bạn nên kiểm tra %PATH%biến môi trường. %PATH%phải bao gồm đường dẫn đến thư mục công cụ SVN, vd C:\Program Files (x86)\VisualSVN\bin.

RùaProc.exe

Ngoài ra svn.exe, TortoiseSVN đi kèm với TortoiseProc.exeđiều đó có thể được gọi từ dấu nhắc lệnh. Trong hầu hết các trường hợp, bạn không cần sử dụng công cụ này, vì nó chỉ được sử dụng cho tự động hóa GUI. TortoiseProc.exekhông phải là sự thay thế cho máy khách dòng lệnh SVN.


2

Như Joey đã chỉ ra, TortoiseSVN có một cú pháp dòng lệnh của riêng nó. Thật không may, nó khá xấu, nếu bạn đã quensvn các lệnh và nó bỏ qua thư mục làm việc hiện tại, do đó nó không thể sử dụng được - ngoại trừ việc viết kịch bản.

Tôi đã tạo một chương trình Python nhỏ ( tsvn) bắt chước svncú pháp dòng lệnh càng sát càng tốt và gọi TortoiseSVN theo đó. Do đó, sự khác biệt giữa việc gọi các công cụ dòng lệnh thông thường và gọi TortoiseSVN được giảm xuống một chữ cái nhỏ tở đầu.

tsvnChương trình của tôi chưa hoàn thành nhưng đã hữu ích. Nó có thể được tìm thấy trong cheeseshop ( https://pypi.python.org/pypi/tsvn/ )


Đối với những người không quen thuộc với Python: bạn cần một trình thông dịch Python 2.x gần đây. Nếu bạn có easy_installhoặc pip install, chỉ cần xác định tsvn; nếu không, bạn có thể tải xuống và giải nén tarball và chạy setup.pytập lệnh cài đặt có chứa . Vì nó được diễn giải, bạn có thể kiểm tra nó một cách chi tiết ;-)
Tobias

2

Sau một thời gian, tôi đã sử dụng cách giải quyết này ...

(tại tệp .bat)

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

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

2

Cách khắc phục của tôi để nhận lệnh SVN là sao chép các tập tin .exe và. Từ thư mục TortoiseSVN và dán chúng vào thư mục system32.

Bạn cũng có thể thực hiện lệnh từ thư mục TortoiseSVN và thêm đường dẫn của thư mục làm việc vào mỗi lệnh. Ví dụ:

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

Thêm thùng vào đường dẫn sẽ làm cho nó hoạt động mà không cần sao chép các tệp, nhưng nó không hoạt động với tôi.


Cách tiếp cận này không hiệu quả, vẫn hiển thị'svn' is not recognized as an internal or external command
Suraj M

0

Sau khi chọn "công cụ dòng lệnh SVN", nó sẽ trở thành như sau:

Nhập mô tả hình ảnh ở đây


5
Đây là kết quả mong muốn, tuy nhiên câu trả lời này không cho biết làm thế nào để thực sự đạt được điều này.
BogdanBiv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.