Thứ Năm, tháng 7 26, 2007

Diff - Patch

Man của mấy thằng này dài quá, nhìn là thấy ớn, không muốn đọc rồi , đành đi xem người ta xài sao rồi đọc cái tham số đó.
Diff
Ra là thằng này chơi được cả với thư mục luôn, tiện hỉ. Ở đây, người ta xài luôn 1 tràng:


diff -Naur olddir newdir > new-patch
- or -
diff -Naur oldfile newfile >new-patch

Mấy cái tham số:
-N Coi tệp thiếu như một tệp trống, cái này hình như chơi để mần cái tệp mới.
-a Coi thằng mô cũng như tệp văn bản.
-r Chui vô ngõ ngách để mần.
---
Path
Thằng này cũng khá dễ dùng. Nó lấy nguồn từ stdin hoặc dùng tham số -i để chỉ ra tệp để patch. Mặc định nó sẽ xuất ra cái file được chỉ trong tệp patch, hoặc dùng -o để chỉ ra tệp xuất ra sau khi thực hiện.
Một số tham số khác:
-b Xài để dự phòng cái tệp mình sửa.
-d Chỉ ra thư mục để xài.
-R Đảo ngược 2 tệp khai báo trong đầu đề (header) của tệp patch.
Còn một tham số nữa là -p. Nói chung, nó xài để cắt xén cái đường dẫn được chỉ ra trong tệp patch, với là để chỉ số cái gạch bị cắt.
Ví dụ, trong đó chỉ ra cái đường dẫn là /duong/dan/den/mo/day:
-p0 Cho lại nguyên.
-p0 duong/dan/den/mo/day
-p1 dan/den/mo/day
...
Còn lại mấy cái tham số, hoặc thấy không cần, hoặc đọc không hiểu :P.

---
Nguồn:
-How to create and use a patch in Linux
-Commands Reference, Volume 4
-patch (Unix)
---
Còn merge đọc chưa hiểu nó viết quái vì, có lẽ cần gặm nhấm thêm.

3 bình loạn:

pclouds nói...

patch chỉ cần biết (ít ra là tui chỉ biết) hai tham số: -pN và --dry-run. Chạy --dry-run trước coi có ổn không trước khi patch thiệt.

Nguyễn Thành Luân nói...

Hờ, --dry-run cũng gần tương tự -o :D.
Mà người ta mần cho rồi cũng phải thử lại sao anh?

pclouds nói...

Nếu chắc chắn code để patch y chang như đoạn code được dùng để tạo patch thì khỏi. Nhưng thường thì nên --dry-run trước cho chắc (dùng để thử -pN cũng được, tui lười suy nghĩ nên cứ thử từ từ, từ -p0 tới -p3 :P). Chuyện không patch được cũng ko phải hiếm gặp.

Đăng nhận xét | Feed



 
^

Powered by Bloggerblogger addicted por UsuárioCompulsivo
original Washed Denim por Darren Delaye
Creative Commons License