Cam kết các Thay đổi của bạn vào Kho

Gửi thay đổi bạn đã thực hiện đến bản làm việc của bạn được gọi là cam kết các thay đổi. Nhưng trước khi bạn cam kết bạn phải đảm bảo rằng bản sao làm việc của bạn được cập nhật. Bạn có thể sử dụng TortoiseSVN Cập nhật trực tiếp. Hoặc bạn có thể sử dụng TortoiseSVN Kiểm tra cho sửa đổi trước, để xem các tập tin đã thay đổi cục bộ hoặc trên máy chủ.

Hộp Thoại Cam kết

Nếu bản sao làm việc của bạn được cập nhật và không có xung đột, bạn đã sẵn sàng cam kết thay đổi của bạn. Chọn bất kỳ tập tin và / hoặc thư mục mà bạn muốn cam kết, sau đó TortoiseSVN Cam kết ... .

Hình 4.8. Hộp thoại Cam kết

Hộp thoại Cam kết


Hộp thoại cam kết sẽ cho bạn thấy tất cả các tập tin thay đổi, bao gồm cả các tập tin được thêm, xoá và không được phiên bản. Nếu bạn không muốn một tập tin thay đổi được cam kết, chỉ cần bỏ chọn tập tin đó. Nếu bạn muốn để bao gồm một tập tin không được phiên bản, chỉ cần kiểm tra tập tin để thêm vào cam kết.

To quickly check or uncheck types of files like all versioned files or all modified files, click the link items just above the list of shown items.

Để biết thêm thông tin về màu sắc và lớp phủ của các mục tùy theo trạng thái của chúng, xin xem phần “Trạng thái địa phương và từ xa”.

Các mục đã được chuyển sang một đường dẫn kho lưu trữ khác cũng được chỉ định sử dụng một đánh dấu (s) . Bạn có thể đã chuyển một cái gì đó trong khi làm việc trên một chi nhánh và quên trở về với thân cây. Đây là dấu hiệu cảnh báo của bạn!

Cam kết các tập tin hoặc thư mục?

Khi bạn cam kết các tập tin, hộp thoại cam kết chỉ hiển thị các tập tin mà bạn đã chọn. Khi bạn cam kết một thư mục hộp thoại cam kết sẽ tự động lựa chọn các tập tin thay đổi. Nếu bạn quên một tập tin mới mà bạn tạo ra, cam kết các thư mục sẽ tìm thấy nó. Cam kết một thư mục không có nghĩa là mỗi tập tin được đánh dấu là thay đổi, chỉ làm cho cuộc sống của bạn dễ dàng hơn bằng cách thực hiện công việc nhiều hơn cho bạn.

Nhiều tập tin không phiên bản trong hộp thoại cam kết

Nếu bạn thấy hộp thoại cam kết cho thấy bạn quá nhiều các tập tin không phiên bản (ví dụ như trình biên dịch tạo ra hoặc sao lưu dự phòng biên tập), có một số cách để xử lý việc này. Bạn có thể:

  • thêm các tập tin (hoặc một phần mở rộng ký tự đại diện) vào danh sách các tập tin để loại trừ trên các trang thiết lập. Điều này sẽ ảnh hưởng đến tất cả các bản sao làm việc mà bạn có.

  • thêm các tập tin vào danh sách svn:ignore sử dụng TortoiseSVN Thêm vào danh sách bỏ qua Điều này sẽ chỉ ảnh hưởng đến thư mục mà bạn thiết lập thuộc tính svn:ignore . Sử dụng hộp thoại Thuộc Tính SVN, bạn có thể thay đổi thuộc tính svn:ignore cho một thư mục.

  • add the file to the svn:global-ignores list using TortoiseSVNAdd to ignore list (recursively) This will affect the directory on which you set the svn:global-ignores property and all subfolders as well.

Đọc phần “Bỏ qua các Tập Tin và Thư mục” để biết thêm thông tin.

Nhấp đúp chuột trên bất kỳ tập tin được sửa đổi trong hộp thoại cam kết sẽ khởi động công cụ tìm khác biệt bên ngoài để hiển thị các thay đổi của bạn. Trình đơn ngữ cảnh sẽ cung cấp cho bạn nhiều lựa chọn hơn, như thể hiện trong ảnh chụp màn hình. Bạn cũng có thể kéo tập tin từ ở đây vào một ứng dụng khác chẳng hạn như một trình soạn thảo văn bản hoặc một IDE.

Bạn có thể chọn hoặc bỏ chọn các mục bằng cách nhấp vào hộp kiểm bên trái của mục đó. Trong thư mục, bạn có thể sử dụng Shift-chọn để làm cho hành động đệ quy.

Các cột hiển thị ở khung bên dưới có thể tùy chỉnh. Nếu bạn click chuột phải trên bất kỳ tiêu đề cột, bạn sẽ thấy một trình đơn ngữ cảnh cho phép bạn chọn các cột được hiển thị. Bạn cũng có thể thay đổi chiều rộng cột bằng cách sử dụng xử lý kéo xuất hiện khi bạn di chuyển chuột lên một ranh giới cột. Các tùy chỉnh được bảo tồn, vì vậy bạn sẽ thấy cùng các tiêu đề trong thời gian tiếp theo.

Theo mặc định khi bạn cam kết thay đổi, bất kỳ ổ khóa mà bạn giữ trên các tập tin được phát hành tự động sau khi cam kết thành công. Nếu bạn muốn giữ những ổ khóa, đảm bảo hộp kiểm Giữ khóa được đánh dấu. Trạng thái mặc định của hộp kiểm này được lấy từ tùy chọn no_unlock trong file cấu hình Subversion. Đọc phần “Các Thiết Lập Tổng Qu” để có thông tin về việc làm thế nào để chỉnh sửa các file cấu hình Subversion.

Warning when committing to a tag

Usually, commits are done to the trunk or a branch, but not to tags. After all, a tag is considered fixed and should not change.

If a commit is attempted to a tag URL, TortoiseSVN shows a confirmation dialog first to ensure whether this is really what is intended. Because most of the time such a commit is done by accident.

However, this check only works if the repository layout is one of the recommended ones, meaning it uses the names trunk, branches and tags to mark the three main areas. In case the setup is different, the detection of what is a tag/branch/trunk (also known as classification patterns), can be configured in the settings dialog: phần “Các Thiết Lập Cho Đồ thị Sửa Đổi ”

Kéo và thả

Bạn có thể kéo tập tin vào hộp thoại cam kết từ các nơi khác, miễn là bản sao làm việc được kiểm tra ra từ cùng kho lưu trữ. Ví dụ, bạn có thể có một bản sao làm việc rất lớn với một số nhà thám hiểm cửa sổ đang mở nhìn vào thư mục xa của hệ thống phân cấp. Nếu bạn muốn tránh cam kết từ các thư mục cấp cao nhất (với một thu thập dữ liệu thư mục dài để kiểm tra xem có thay đổi), bạn có thể mở hộp thoại cam kết cho một thư mục và kéo vào các mục từ các cửa sổ khác bao gồm trong các cam kết nguyên tử.

Bạn có thể kéo các tập tin không phiên bản cư trú trong một bản sao làm việc vào hộp thoại cam kết, và chúng sẽ được SVN tự động thêm vào.

Kéo tập tin từ danh sách ở dưới cùng của hộp thoại cam kết vào hộp thông điệp tường trình sẽ chèn các đường dẫn dưới dạng văn bản vào đó hộp chỉnh sửa. Điều này rất hữu ích nếu bạn muốn viết tin nhắn thông điệp tường trình cam kết bao gồm những đường dẫn bị ảnh hưởng bởi các cam kết.

Sửa chữa đổi tên bên ngoài

Đôi khi các tập tin được đổi tên từ bên ngoài của Subversion, và chúng hiển thị trong danh sách tập tin như một tập tin bị mất và một tập tin không phiên bản. Để tránh mất lịch sử bạn cần phải thông báo cho Subversion về kết nối. Đơn giản chỉ cần chọn cả hai tên (bị mất) và tên mới (không phiên bản) và sử dụng Trình Đơn Ngữ Cảnh Sửa chữa Di chuyển để ghép hai tập tin như đổi tên.

Sửa chữa bản sao bên ngoài

Nếu bạn đã thực hiện một bản sao của một tập tin nhưng quên sử dụng lệnh Subversion để làm như vậy, bạn có thể sửa chữa bản sao để các tập tin mới không bị mất lịch sử của nó. Đơn giản chỉ cần chọn tên cũ (bình thường hoặc sửa đổi) và tên mới (không phiên bản) và sử dụng Trình Đơn Ngữ Cảnh Sửa chữa Sao chép ghép hai tập tin như một bản.

Danh sách Thay đổi

Hộp thoại cam kết hỗ trợ tính năng danh sách thay đổi Subversion để giúp đỡ với nhóm các tập tin liên quan với nhau. Tìm hiểu về tính năng này trong phần “Danh sách Thay đổi” .

Chỉ cam kết các phần của tập tin

Thỉnh thoảng bạn chỉ muốn cam kết vài phần của các thay đổi bạn thực hiện tới một tập tin. Tình huống như vậy thường xảy ra khi bạn làm việc trên vài thứ nhưng rồi một việc sửa chửa khẩn cấp cần được cam kết, và việc sửa chửa đó tình cờ xảy ra trong cùng tập tin bạn đang làm việc.

right click on the file and use Context MenuRestore after commit. This will create a copy of the file as it is. Then you can edit the file, e.g. in a text editor and undo all the changes you don't want to commit. After saving those changes you can commit the file.

Sử dụng TortoiseMerge

If you use TortoiseMerge to edit the file, you can either edit the changes as you're used to, or mark all the changes that you want to include. right click on a modified block and use Context MenuMark this change to include that change. Finally right click and use Context MenuLeave only marked changes which will change the right view to only include the changes you've marked before and undo the changes you have not marked.

Sau khi việc cam kết xong, bản sao của tập tin được khôi phục một cách tự động, và bạn nhận lại một tập tin với tất cả các chỉnh sửa không được cam kết.

Loại trừ mục khỏi Danh mục Cam kết

Đôi khi bạn có các tập tin được phiên bản mà thay đổi thường xuyên nhưng mà bạn thực sự không muốn cam kết. Đôi khi điều này cho thấy một lỗ hổng trong quá trình xây dựng của bạn - tại sao các tập tin được phiên bản? bạn có nên sử dụng tập tin mẫu? Nhưng đôi khi nó là không thể tránh khỏi. Một lý do cổ điển là IDE của bạn thay đổi dấu thời gian trong các tập tin dự án mỗi khi bạn xây dựng. Các hồ sơ dự án phải được phiên bản vì nó bao gồm tất cả các thiết lập xây dựng, nhưng nó không cần phải được cam kết chỉ vì các dấu thời gian đã thay đổi.

Để giúp đỡ trong các trường hợp khó xử như thế này, chúng tôi đã dành một danh sách thay đổi gọi là bỏ qua cam kết . Bất kỳ tập tin thêm vào danh sách thay đổi này sẽ tự động được đánh dấu trong hộp thoại cam kết. Bạn vẫn có thể cam kết thay đổi, nhưng bạn phải chọn nó trong hộp thoại cam kết.

Thông Điệp Tường Trình Cam Kết

Hãy chắc chắn để nhập vào một thông điệp tường trình trong đó mô tả những thay đổi bạn đang cam kết. Điều này sẽ giúp bạn xem những gì đã xảy ra và khi nào, khi bạn duyệt qua các thông điệp tường trình dự án vào một ngày sau đó. Các thông điệp có thể dài hoặc ngắn gọn như bạn thích, nhiều dự án có hướng dẫn cho những gì nên được bao gồm, ngôn ngữ sử dụng, và đôi khi thậm chí là một định dạng nghiêm ngặt.

Bạn có thể áp dụng định dạng đơn giản cho thông điệp tường trình của bạn bằng cách sử dụng một quy ước tương tự như được sử dụng trong email. Để áp dụng phong cách vào văn bản , sử dụng *Văn bản* cho chữ đậm, _text_ gạch chân, và ^Văn bản^ cho chữ in nghiêng.

Hình 4.9. Bộ kểm tra chính tả của Hộp Thoại Cam Kết

Bộ kểm tra chính tả của Hộp Thoại Cam Kết


TortoiseSVN bao gồm một bộ kiểm tra chính tả để giúp bạn có thông điệp tường trình của bạn đúng. Điều này sẽ làm nổi bật bất kỳ từ sai chính tả. Sử dụng trình đơn ngữ cảnh để truy cập vào chỉnh sửa được đề nghị. Tất nhiên, nó không biết tất cả thuật ngữ kỹ thuật mà bạn biết, vì vậy từ được đánh vần một cách chính xác đôi khi sẽ xuất hiện như là lỗi. Nhưng đừng lo lắng. Bạn chỉ có thể thêm vào từ điển cá nhân của bạn bằng cách sử dụng trình đơn ngữ cảnh.

The log message window also includes a filename and function auto-completion facility. This uses regular expressions to extract class and function names from the (text) files you are committing, as well as the filenames themselves. If a word you are typing matches anything in the list (after you have typed at least 3 characters, or pressed Ctrl+Space), a drop-down appears allowing you to select the full name. The regular expressions supplied with TortoiseSVN are held in the TortoiseSVN installation bin folder. You can also define your own regexes and store them in %APPDATA%\TortoiseSVN\autolist.txt. Of course your private autolist will not be overwritten when you update your installation of TortoiseSVN. If you are unfamiliar with regular expressions, take a look at the introduction at https://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/.

Để có regex đúng có thể được hóc búa, do đó, để giúp bạn sắp xếp một biểu thức phù hợp có một hộp thoại kiểm tra cho phép bạn nhập một biểu thức và sau đó gõ vào tên tập tin để kiểm tra trên đó. Bắt đầu từ dấu nhắc lệnh bằng cách sử dụng lệnh TortoiseProc.exe/command:autotexttest .

The log message window also includes a commit message snippet facility. These snippets are shown in the autocomplete dropdown once you type a snippet shortcut, and selecting the snippet in the autocomplete dropdown then inserts the full text of the snippet. The snippets supplied with TortoiseSVN are held in the TortoiseSVN installation bin folder. You can also define your own snippets and store them in %APPDATA%\TortoiseSVN\snippet.txt. # is the comment character. Newlines can be inserted by escaping them like this: \n and \r. To insert a backslash, escape it like this: \\.

Bạn có thể sử dụng lại thông điệp tường trình được nhập vào trước đó. Chỉ cần nhấp vào Các thông điệp gần đây để xem một danh sách các các tin nhắn cuối cùng mà bạn nhập vào cho bản sao làm việc này. Số lượng thông điệp được lưu trữ có thể được tùy chỉnh trong hộp thoại cài đặt TortoiseSVN.

Bạn có thể dọn dẹp tất cả thông điệp tường trình cam kết được lưu trữ từ trang Dữ liệu được lưu của các thiết lập TortoiseSVN, hoặc bạn có thể xóa từng thông điệp từ bên trong hộp thoại Các thông điệp gần đây bằng cách sử dụng phím Xóa .

Nếu bạn muốn bao gồm các đường dẫn được kiểm tra trong thông điệp tường trình của bạn, bạn có thể sử dụng lệnh Trình đơn ngữ cảnhDán danh sách tên tập tin trong trong hộp biên tập.

Một cách khác để chèn đường dẫn vào thông điệp tường trình là chỉ cần kéo các tập tin từ danh sách tập tin vào hộp biên tập.

Các Thuộc Tính Thư Mục Đặc Biệt

Có một số thuộc tính thư mục đặc biệt có thể được sử dụng để giúp cung cấp nhiều kiểm soát hơn trên các định dạng của thông điệp tường trình cam kết và ngôn ngữ được sử dụng bởi các mô đun kiểm tra chính tả. Đọc phần “Thiết lập Dự án” để biết thêm thông tin.

Tích hợp với Công cụ Theo Dõi Lỗi

Nếu bạn đã kích hoạt hệ thống theo dõi lỗi, bạn có thể thiết lập một hoặc nhiều vấn đề trong hộp văn bản Bug-ID/Vấn đề-Nr:. Nhiều vấn đề cần được phân tách bằng dấu phẩy. Ngoài ra, nếu bạn đang sử dụng hỗ trợ theo dõi lỗi dựa trên regex, chỉ cần thêm tài liệu tham khảo vấn đề của bạn như là một phần của thông điệp tường trình. Tìm hiểu thêm trong phần “Tích hợp với Hệ thống Theo dõi Lỗi / Trình theo dõi Vấn đ” .

Tiến độ Cam kết

Sau khi nhấn OK, một hộp thoại sẽ xuất hiện hiển thị tiến độ cam kết.

Hình 4.10. Hộp thoại tiến độ thể hiện một cam kết đang tiến triển

Hộp thoại tiến độ thể hiện một cam kết đang tiến triển


Hộp thoại tiến triển sử dụng màu sắc mã hóa để làm nổi bật hành động cam kết khác nhau

Màu xanh dương

Cam kết một sửa đổi

Màu tím

Cam kết một bổ sung mới

Màu đỏ sậm

Cam kết một xoá bỏ hoặc thay thế.

Đen

Tất cả các mục khác.

Đây là sơ đồ màu mặc định, nhưng bạn có thể tùy chỉnh những màu sắc bằng cách sử dụng hộp thoại thiết lập. Đọc phần “Thiết Lập Màu TortoiseSVN” để biết thêm thông tin.