Phụ lục D. Tự động hoá TortoiseSVN

Mục lục

Các lệnh TortoiseSVN
xử lý Tsvncmd URL
Các lệnh TortoiseIDiff
TortoiseUDiff Commands

Vì tất cả các lệnh cho TortoiseSVN được kiểm soát thông qua các tham số dòng lệnh, bạn có thể tự động hoá nó với kịch bản hàng loạt hoặc bắt đầu các lệnh và hộp thoại cụ thể từ các chương trình khác (ví dụ như trình soạn thảo văn bản yêu thích của bạn).

Quan trọng

Hãy nhớ rằng TortoiseSVN là một trình máy khách giao diện đồ họa, và hướng dẫn tự động này cho bạn thấy làm thế nào để làm cho các hộp thoại TortoiseSVN xuất hiện để thu thập đầu vào của người sử dụng. Nếu bạn muốn viết một kịch bản không yêu cầu đầu vào, bạn nên sử dụng dòng lệnh máy khách Subversion chính thức thay thế.

Các lệnh TortoiseSVN

Chương trình TortoiseSVN giao diện đồ họa được gọi là TortoiseProc.exe . Tất cả các lệnh được quy định cụ thể với tham số /command:abcd nơi abcd là tên lệnh được yêu cầu. Hầu hết các lệnh này cần ít nhất một đối số đường dẫn, được đưa ra với /path: "some\path" . Trong bảng sau lệnh đề cập đến tham số /command:abcd và đường dẫn liên quan đến tham số /path:"some\path" .

There's a special command that does not require the parameter /command:abcd but, if nothing is specified on the command line, starts the project monitor instead. If /tray is specified, the project monitor starts hidden and only adds its icon to the system tray.

Bởi vì một số lệnh có thể lấy một danh sách các đường dẫn mục tiêu (ví dụ như cam kết một số tập tin cụ thể) tham số /path có thể lấy một vài đường dẫn, cách nhau bởi ký tự *.

You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format, without a BOM. If you pass such a file, use /pathfile instead of /path. To have TortoiseProc delete that file after the command is finished, you can pass the parameter /deletepathfile. If you don't pass /deletepathfile, you have to delete the file yourself or the file gets left behind.

Hộp thoại tiến triển được sử dụng cho các cam kết, cập nhật và các lệnh thường vẫn mở sau khi lệnh đã hoàn tất cho đến khi người dùng nhấn nút OK. Điều này có thể được thay đổi bằng cách kiểm tra các tùy chọn tương ứng trong hộp thoại thiết lập. Nhưng sử dụng thiết lập đó sẽ đóng hộp thoại tiến triển, bất ể nếu bạn bắt đầu lệnh từ tập tin hàng loạt của bạn hoặc từ trình đơn ngữ cảnh TortoiseSVN.

Để chỉ định một vị trí khác nhau của tập tin cấu hình, sử dụng các tham số /configdir:"path\to\config\directory" . Việc này sẽ ghi đè lên đường dẫn mặc định, bao gồm cả bất kỳ thiết lập registry.

Để đóng hộp thoại tiến triển ở cuối một lệnh một cách tự động mà không cần sử dụng các thiết lập vĩnh viễn, bạn có thể đưa vào tham số /closeonend .

  • /closeonend:0 không tự động đóng hộp thoại

  • /closeonend:1 tự động đóng nếu không có lỗi

  • /closeonend:2 tự động đóng nếu không có lỗi và xung đột

  • /closeonend:3 tự động đóng nếu không có lỗi, xung đột và sáp nhập

Để đóng hộp thoại tiến triển cho các hoạt động địa phương nếu không có lỗi hoặc xung đột, đưa vào tham số /closeforlocal .

Bảng dưới đây liệt kê tất cả các lệnh có thể được truy cập bằng cách sử dụng dòng lệnh TortoiseProc.exe. Như đã mô tả ở trên, những lệnh này nên được sử dụng dưới hình thức /command:abcd . Trong bảng, tiền tố /command được bỏ qua để tiết kiệm không gian.

Bảng D.1. Danh sách các lệnh có thể dùng và các tùy chọn

LệnhMô tả
:aboutHiển thị hộp thoại nói về. Cái này cũng được hiển thị nếu lệnh không được đưa ra.
:log

Opens the log dialog. The /path specifies the file or folder for which the log should be shown. Additional options can be set:

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict enables the 'stop-on-copy' checkbox,

  • /merge enables the 'include merged revisions' checkbox,

  • /datemin:"{datestring}" sets the start date of the filter, and

  • /datemax:"{datestring}" sets the end date of the filter. The date format is the same as used for svn date revisions.

  • /findstring:"filterstring" fills in the filter text,

  • /findtext forces the filter to use text, not regex, or

  • /findregex forces the filter to use regex, not simple text search, and

  • /findtype:X with X being a number between 0 and 511. The numbers are the sum of the following options:

    • /findtype:0 lọc theo tất cả mọi thứ

    • /findtype:1 lọc qua các thông điệp

    • /findtype:2 lọc theo con đường

    • /findtype:4 lọc theo các tác giả

    • /findtype:8 lọc theo các sửa đổi

    • /findtype:16 không sử dụng

    • /findtype:32 lọc bằng bug ID

    • /findtype:64 không sử dụng

    • /findtype:128 lọc bằng ngày tháng

    • /findtype:256 lọc theo ID lỗi

  • If /outfile:path\to\file is specified, the selected revisions are written to that file when the log dialog is closed. The revisions are written in the same format as is used to specify revisions in the merge dialog.

An svn date revision can be in one of the following formats:

  • {2006-02-17}

  • {15:30}

  • {15:30:00.200000}

  • {"2006-02-17 15:30"}

  • {"2006-02-17 15:30 +0230"}

  • {2006-02-17T15:30}

  • {2006-02-17T15:30Z}

  • {2006-02-17T15:30-04:00}

  • {20060217T1530}

  • {20060217T1530Z}

  • {20060217T1530-0500}

:checkoutMở hộp thoại kiểm xuất. Các /path xác định thư mục đích và /url quy định cụ thể URL để kiểm xuất từ đó. Nếu bạn chỉ định phím /blockpathadjustments , các điều chỉnh đường dẫn kiểm xuất tự động bị chặn. Các /revision:XXX quy định cụ thể bản sửa đổi để kiểm xuất.
:importMở hộp thoại nhập khẩu. Các /path quy định cụ thể thư mục với dữ liệu để nhập khẩu. Bạn cũng có thể chỉ định /logmsg chuyển đổi để truyền vào một thông điệp tường trình được định nghĩa trước vào hộp thoại nhập khẩu. Hoặc, nếu bạn không muốn truyền vào thông báo tường tình trên dòng lệnh, sử dụng /logmsgfile:path , nơi đường dẫn chỉ vào một tập tin có chứa thông điệp tường trình.
:updateUpdates the working copy in /path to HEAD. If the option /rev is given then a dialog is shown to ask the user to which revision the update should go. To avoid the dialog specify a revision number /rev:1234. Other options are /nonrecursive, /ignoreexternals and /includeexternals. The /stickydepth indicates that the specified depth should be sticky, creating a sparse checkout. The /skipprechecks can be set to skip all checks that are done before an update. If this is specified, then the Hiện tường trình button is disabled, and the context menu to show diffs is also disabled after the update.
:commitMở hộp thoại cam kết. Các /path xác định thư mục đích hay danh sách các tập tin để cam kết. Bạn cũng có thể chỉ định /logmsg chuyển đổi để truyền vào một thông điệp tường trình được xác định trước vào hộp thoại cam kết. Hoặc, nếu bạn không muốn truyền vào thông điệp tường trình trên dòng lệnh, sử dụng /logmsgfile:path , nơi đường dẫn chỉ vào một tập tin có chứa thông điệp tường trình. Để trước khi điền vào hộp ID lỗi (trong trường hợp bạn đã thiết lập tích hợp với bộ theo dõi lỗi đúng cách), bạn có thể sử dụng /bugid:"id lỗi ở đây" để làm điều đó.
:addThêm các tập tin trong /path vào kiểm soát phiên bản.
:revertHoàn nguyên các thay đổi địa phương một bản sao làm việc. Các /path cho biết các mục để hoàn nguyên.
:cleanupCleans up interrupted or aborted operations and unlocks the working copy in /path. You also have to pass the /cleanup to actually do the cleanup. Use /noui to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). /noprogressui also disables the progress dialog. /nodlg disables showing the cleanup dialog where the user can choose what exactly should be done in the cleanup. The available actions can be specified with the options /cleanup for status cleanup, /breaklocks to break all locks, /revert to revert uncommitted changes, /delunversioned, /delignored, /refreshshell, /externals, /fixtimestamps and /vacuum.
:resolveĐánh dấu một tập tin mâu thuẫn được chỉ ra tại /path như đã được giải quyết. Nếu /noquestion được đưa ra, thì việc giải quyết được thực hiện mà không cần yêu cầu người sử dụng trước nếu nó thực sự nên được thực hiện.
:repocreateTạo ra một kho lưu trữ trong /path
:switchMở hộp thoại chuyển. Mục /path chỉ ra thư mục đích và /url là URL để chuyển đến.
:exportXuất khẩu bản sao làm việc trong /path vào một thư mục khác. Nếu /path chỉ đến một thư mục không phiên bản, một hộp thoại sẽ yêu cầu một URL để xuất khẩu sang các thư mục trong /path . Nếu bạn chỉ định phím /blockpathadjustments , điều chỉnh đường dẫn xuất khẩu tự động sẽ bị chặn.
:dropexportXuất khẩu các bản sao làm việc trong /path vào thư mục quy định tại /droptarget. Việc xuất khẩu này không sử dụng hộp thoại xuất khẩu mà thực hiện trực tiếp. /overwrite Tùy chọn xác định rằng các tập tin có sẵn được ghi đè mà không cần xác nhận của người sử dụng, và tùy chọn /autorename xác định rằng nếu các tập tin đã tồn tại, các tập tin được xuất khẩu được tự động đổi tên để tránh ghi đè lên chúng. Tùy chọn /extended có thể chỉ định một trong localchanges để chỉ xuất khẩu các tập tin đã thay đổi cục bộ, hoặc unversioned để xuất khẩu tất cả các mục không được phiên bản.
:dropvendorCopies the folder in /path recursively to the directory specified in /droptarget. New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog.
:mergeOpens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx.
:mergeallMở hộp thoại kết hợp tất cả. Các /path xác định thư mục đích.
:copyBrings up the branch/tag dialog. The /path is the working copy to branch/tag from. And the /url is the target URL. If the urls starts with a ^ it is assumed to be relative to the repository root. To already check the option Chuyển bản sao làm việc sang nhánh/thẻ mới you can pass the /switchaftercopy switch. To check the option Tạo các thư mục trung gian pass the /makeparents switch. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where đường dẫn points to a file containing the log message.
:settingsMở hộp thoại thiết lập.
:removeLoại bỏ các tập tin trong /path khỏi kiểm soát phiên bản.
:renameĐổi tên tập tin trong /path . Các tên mới cho tập tin đó được yêu cầu với một hộp thoại. Để tránh câu hỏi về đổi tên tập tin tương tự trong một bước, chuyển qua /noquestion .
:diffStarts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. If the specified file also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option /ignoreprops. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx, and for the optional peg revision use /pegrevision:xxx. If /blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions. The parameter /line:xxx specifies the line to jump to when the diff is shown.
:shelveShelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message. If option /checkpoint is passed, the modifications of the files are kept.
:unshelveApplies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X.
:showcompare

Tùy thuộc vào các URL và các phiên bản để so sánh, việc này hoặc cho thấy một khác biệt thống nhất (nếu tùy chọn thống nhất được thiết lập), một hộp thoại với một danh sách các tập tin đã thay đổi hoặc nếu các URL trỏ đến tập tin bắt đầu trình xem khác cho hai tập tin đó.

Các tùy chọn url1 , url2 , revision1 revision2 phải được xác định. Các tùy chọn pegrevision , ignoreancestry , đổ lỗi thống nhất là tùy chọn.

If the specified url also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option /ignoreprops.

If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.

:conflicteditorBắt đầu trình soạn thảo xung đột quy định trong các thiết lập TortoiseSVN với các tập tin đúng cho tập tin mâu thuẫn trong /path .
:relocateMở hộp thoại di dời. Các /path quy định cụ thể đường dẫn bản sao làm việc để di dời.
:helpMở tập tin trợ giúp.
:repostatusMở hộp thoại kiểm tra-cho-sửa đổi. Các /path quy định cụ thể thư mục bản sao làm việc. Nếu /remote được chỉ định, hộp thoại liên lạc kho lưu trữ ngay lập tức khi khởi động, nếu người dùng nhấp vào nút Kiểm tra kho lưu trữ.
:repobrowser

Bắt đầu hộp thoại trình duyệt kho lưu trữ, chỉ vào URL của bản sao làm việc được đưa ra trong /path hoặc /path chỉ trực tiếp đến một URL.

Một tùy chọn bổ sung /rev:xxx có thể được sử dụng để xác định bản sửa đổi nào mà trình duyệt kho sẽ hiển thị. Nếu /rev:xxx được bỏ qua, nó được mặc định đến CHÍNH.

Nếu /path chỉ đến một URL, /projectpropertiespath:path/to/wc xác định đường dẫn từ nơi để đọc và sử dụng các thuộc tính của dự án.

Nếu /outfile:path\to\file được chỉ định, URL được lựa chọn và bản sửa đổi được ghi vào tập tin đó khi trình duyệt kho lưu trữ được đóng lại. Dòng đầu tiên trong tập tin văn bản có chứa URL, dòng thứ hai chứa sửa đổi trong định dạng văn bản.

:ignoreThêm tất cả các mục tiêu ở /path vào danh sách bỏ qua, tức là bổ sung thêm svn:ignore thuộc tính cho các tập tin.
:blame

Mở hộp thoại đổ lỗi cho tập tin quy định tại /path .

Nếu các tùy chọn /startrev /endrev được thiết lập, thì hộp thoại yêu cầu phạm vi đổ lỗi là không được hiển thị nhưng giá trị sửa đổi trong các tùy chọn được sử dụng thay vào đó.

Nếu tùy chọn /line:nnn được thiết lập, TortoiseBlame sẽ mở ra với số dòng quy định được hiển thị.

Các tùy chọn /ignoreeol , /ignorespaces /ignoreallspaces cũng được hỗ trợ.

:catLưu một tập tin từ một đường dẫn URL hoặc bản sao làm việc được đưa ra trong /path đến vị trí được đưa ra trong /savepath:path . Bản sửa đổi này được đưa ra trong /revision:xxx . Điều này có thể được sử dụng để lấy một tập tin với một phiên bản cụ thể.
:createpatchCreates a patch file for the path given in /path. To skip the file Save-As dialog you can pass /savepath:path to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview. If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.
:revisiongraph

Hiển thị đồ thị sửa đổi cho các đường dẫn được đưa ra trong /path .

Để tạo một tập tin ảnh của đồ thị sửa đổi cho một đường dẫn cụ thể, nhưng không hiển thị cửa sổ đồ thị, truyền vào /output:path với đường dẫn đến tập tin đầu ra. Các tập tin đầu ra phải có phần mở rộng mà đồ thị sửa đổi thực sự có thể xuất khẩu sang. Đó là: .svg , .ưmf , .png , .jpg , .bmp .gif .

ở vì đồ thị sửa đổi có nhiều lựa chọn có ảnh hưởng đến cách nó được hiển thị như thế nào, bạn cũng có thể thiết lập các tùy chọn để sử dụng khi tạo ra các tập tin hình ảnh đầu ra. Truyền vào những lựa chọn với /options:XXXX , nơi XXXX là một giá trị thập phân. Cách tốt nhất để tìm thấy các tùy chọn cần thiết là bắt đầu biểu đồ sửa đổi theo cách thông thường, thiết lập tất cả các tùy chọn giao diện người sử dụng và đóng đồ thị. Sau đó, các tùy chọn mà bạn cần phải truyền vào trên dòng lệnh có thể được đọc từ registry HKCU\Software\TortoiseSVN\RevisionGraphOptions .

:lockKhóa một hoặc tất cả các tập tin trong một thư mục được cho bởi /path . Hộp thoại 'khóa' được hiển thị để người dùng có thể nhập một bình luận cho khóa.
:unlockMở khóa một hoặc tất cả các tập tin trong một thư mục được cho trong /path .
:rebuildiconcacheXây dựng lại bộ nhớ cache biểu tượng cửa sổ. Chỉ sử dụng trong trường hợp các biểu tượng cửa sổ bị hỏng. Một tác dụng phụ của việc này (không có thể tránh được) là các biểu tượng trên máy tính để bàn được sắp xếp lại. Để ngăn chặn các hộp thông báo, truyền vào /noquestion .
:properties

Hiển thị hộp thoại thuộc tính cho đường dẫn cho bởi /path.

Để làm việc với các thuộc tính được đánh phiên bản lệnh này đòi hỏi một bản sao làm việc.

Các thuộc tính của bản chỉnh sửa có thể được xem/thay đổi nếu /path là một URL và /rev:XXX được chỉ định.

Để mở hộp thoại thuộc tính trực tiếp cho một thuộc tính cụ thể, truyền vào tên thuộc tính dưới dạng /property:name.

:sync

Exports/imports settings, either depending on whether the current settings or the exported settings are newer, or as specified.

If a path is passed with /path, then the path is used to store or read the settings from.

The parameter /askforpath will show a file open/save dialog for the user to chose the export/import path.

If neither /load nor /save is specified, then TortoiseSVN determines whether to export or import the settings by looking at which ones are more recent. If the export file is more recent than the current settings, then the settings are loaded from the file. If the current settings are more recent, then the settings are exported to the settings file.

If /load is specified, the settings are imported from the settings file.

If /save is specified, the current settings are exported to the settings file.

The parameter /local forces a settings export to include local settings, i.e. settings that refer to local paths.


Các ví dụ (nên được nhập vào trên một dòng):

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