Hướng dẫn này cung cấp một cái nhìn tổng quan cơ bản để áp dụng một bản vá cho một chương trình hoặc tập tin.
Lệnh được sử dụng để áp dụng các bản vá là lệnh vá nhưng để áp dụng một bản vá , lệnh diff cũng cần được sử dụng để cung cấp các khác biệt cần được vá.
Tại sao bạn sẽ tạo một bản vá
Hãy tưởng tượng bạn đã có một tệp HTML như sau:
head>
Chào mừng bạn đến với MySite h1>
body>
html>
Nguồn trên khi được tải vào trình duyệt web sẽ hiển thị dòng chữ "Chào mừng bạn đến với MySite".
Nó là phổ biến khi lập trình cho có được nhiều phiên bản của cùng một tập tin. Ví dụ sẽ có một phiên bản là phiên bản trực tiếp hiện tại, sẽ có một phiên bản khác trên nhánh phát triển có thể chứa nhiều thay đổi, cuối cùng có thể có một phiên bản khác trên nhánh phát hành.
Nhánh phát hành sẽ là phiên bản được sử dụng bởi người dùng thực (ví dụ trong trường hợp này khách truy cập vào trang web MySite). Hãy để chúng tôi nói rằng MySite đang ở phiên bản 1.0. Sau giai đoạn phát triển, bạn sẽ tạo ra một nhánh phát hành mà trong trường hợp này là 1.1. Chi nhánh phát triển sẽ có thể đi trước nhánh phát hành vì nó có thể chứa các thay đổi không phải do phát hành trong phiên bản 1,2 nhưng sẽ dành cho phiên bản 1.1.
Hãy tưởng tượng có một lỗi trong đó MySite nên được gọi là YourSite. Bạn có thể đi đến từng nhánh và thay đổi phiên bản trực tiếp, phiên bản phát triển và phiên bản phát hành của bạn có thể thực hiện thay đổi dưới dạng bản sửa lỗi nóng và sau đó áp dụng bản vá cho nhánh phát triển và phát hành.
Một ví dụ làm việc
Tạo một tệp có tên myfile.html với mã sau trong đó:
head>
Chào mừng bạn đến với MySite h1>
Đây là ví dụ hoạt động về vá mã nguồn. p>
body>
html>
Tạo một tệp khác có tên myfile_v2.html với mã sau trong đó:
head>
Chào mừng bạn đến với YourSite h1>
Đây là ví dụ hoạt động về vá mã nguồn. p>
body>
html>
Tệp đầu tiên là trang web gốc với tiêu đề "Chào mừng bạn đến với MySite". Tệp thứ hai cũng giống như tệp đầu tiên ngoại trừ MyFile được đổi tên thành YourFile trong văn bản.
Cách tạo tệp Diff
Để tạo một bản vá, chúng tôi cần phải tìm ra sự khác biệt giữa myfile.html và myfile_v2.html.
Chúng ta có thể làm điều này với lệnh diff như sau:
diff -u myfile.html myfile_v2.html> myfile.patch
Bạn có thể mở tệp myfile.patch trong trình soạn thảo nano như sau để xem nó:
nano myfile.patch
Các dòng không thay đổi được hiển thị bằng màu xanh dương. Các dòng đã bị xóa được hiển thị bằng màu đỏ và các dòng đã được thêm vào được hiển thị bằng màu xanh lục.
Làm thế nào để áp dụng các miếng vá bằng cách sử dụng lệnh Patch
Để áp dụng bản vá cho myfile.html, hãy sử dụng lệnh sau:
vá Điều này sẽ áp dụng các thay đổi được tạo bằng cách sử dụng lệnh diff cho tệp gốc myfile.html. Nếu bạn muốn hoàn nguyên bản vá để myfile.html quay lại cách ban đầu nó sử dụng lệnh sau: patch -R Lệnh vá có thể được sử dụng để áp dụng các bản vá trên toàn bộ cấu trúc thư mục. Có những công cụ tốt hơn nhiều so với lệnh vá để tạo bản vá và đảm bảo kiểm soát nguồn tốt. Có một lý do khiến rất nhiều dự án phát triển sử dụng GIT để kiểm soát nguồn. GIT giúp dễ dàng tạo ra một chiến lược phân nhánh nhất quán. Lệnh patch là ok để áp dụng sự khác biệt cho một script bash hoặc một cái gì đó đơn giản nhưng bạn có thể dễ dàng tạo một bản sao lưu của các tập tin mà bạn muốn vá và chỉ cần sao chép các tập tin mới vào cùng một vị trí. Để biết thêm thông tin, hãy sử dụng lệnh man: người đàn ông vá Cách hoàn nguyên bản vá
Tóm lược