Hai công cụ thiết yếu trong phát triển phần mềm là Patch và Diff . Cách chúng hoạt động không phải là điều bí ẩn, nhưng tôi nghĩ đây sẽ là một bài viết thú vị. 😉
Cả hai đều rất mạnh mẽ, và điều này chỉ giống như chạm vào bề mặt, chúng có nhiều tiện ích và chức năng khác. Về cơ bản với hai công cụ này, chúng ta có thể tạo kiểm soát phiên bản,
Khác
Chúng tôi đề cập đến việc so sánh, nó so sánh tệp "gốc" với tệp "mới" và thông báo cho chúng tôi về sự khác biệt tồn tại giữa chúng. Công cụ này cũng cho phép chúng tôi tạo các tệp .patch mà chúng tôi sử dụng để tạo các bản vá cho chương trình của mình.
Vá
Đây là lệnh mà chúng tôi thực sự "vá" tệp gốc của mình, thêm và / hoặc xóa các dòng theo hướng dẫn có trong tệp .patch
Ngoài ra còn có vimdiff , một công cụ trực quan để áp dụng các bản vá mà không cần tệp .patch, vì nó so sánh phiên bản "gốc" và "mới", và cho phép bạn chỉnh sửa từng dòng hoặc toàn bộ tài liệu trong cùng một tệp. Tôi sẽ không giải thích điều này, nhưng tôi nghĩ nó đáng được đề cập.
thí dụ
Bây giờ niềm vui là. Thí dụ!
Đây là trường hợp, chúng tôi có một tập lệnh tuyệt vời yêu cầu tên và tuổi của bạn, nếu bạn trên 18 tuổi, nó cho bạn biết rằng bạn có thể bỏ phiếu, nếu không nó sẽ cho bạn biết rằng bạn không thể bỏ phiếu.
bản gốc.sh
#! / bin / bash echo "Nhập tên của bạn:" read name echo "Nhập tuổi của bạn:" read age if [[18 -lt $ age]] then echo "Xin chào $ name, bạn là $ old và bạn có thể bỏ phiếu! " else echo "Xin chào $ name, bạn $ cũ và bạn không thể bỏ phiếu ..." fi
Hình ảnh của mã trong Vim
Xong, đây là script đang chạy:
Mọi thứ dường như làm việc tốt
Vì vậy, với tư cách là những người dùng tốt, chúng tôi chia sẻ tập lệnh của mình với một người bạn :), nhưng chúng tôi nhận được thông báo rằng nó có một lỗ hổng, rằng khi 18 tuổi, nó nói rằng nó không thể bỏ phiếu khi cần.
Lỗi logic
Bây giờ chúng tôi bắt đầu sửa lỗi nhỏ và thực hiện một vài sửa đổi ...
new.sh
#! / bin / bash maxAge = 18 echo "Nhập tên của bạn:"; đọc tên echo "Viết tuổi của bạn:"; đọc tuổi if [[$ maxAge -le $ age]]; sau đó echo "Xin chào $ name, bạn $ tuổi và bạn có thể bỏ phiếu!" else echo "Xin chào $ name, bạn $ tuổi và bạn không thể bỏ phiếu ..." fi thoát 0
Mã nguồn mới được viết bằng Vim.
Giả sử kịch bản rất nặng. Vì vậy, để tránh gửi lại toàn bộ tập lệnh, chúng tôi tạo một .patch
$ diff -u original.sh new.sh> patch.patch
Và giờ chúng ta đã có bản vá. Đây là giao diện trong Vim :
Đây là hướng dẫn cho một .patch trông như thế nào. Màu trắng là những dòng chưa được sửa đổi, những dòng bị xóa màu xanh lam, những dòng được thêm màu cam.
Để áp dụng, chúng ta chỉ cần sử dụng tệp .patch trong kịch bản cần vá. Ở đây nó được gọi là originalAmigo.sh , là bản sao chính xác của kịch bản original.sh .
Tập lệnh kết bạn
$ patch originalFriend.sh <patch.patch
Và điều này khiến tệp originalAmigo.sh của chúng ta trông như thế này:
Tập lệnh kết bạn sau khi áp dụng bản vá
Như bạn có thể thấy, rất dễ dàng để có được sự khác biệt và áp dụng các bản vá. Tất cả là do tôi.
Xin chào mọi người, chúng tôi sẽ đọc vào thứ sáu tới.