2010-12-10 34 views
5

tôi có ba file PHP:Kết hợp thay đổi PHP với diff/vá

  • 1.php - Phiên bản 1.0 của phần mềm OSS (vani)
  • 1a.php - Phiên bản 1.0 của phần mềm OSS (với các tùy biến)
  • 2.php - phiên bản 1.1 của phần mềm OSS (vani)

tôi muốn sử dụng diff/vá (hoặc tương tự) để tạo ra một tập tin vá lỗi duy nhất mà sẽ hợp nhất các thay đổi tôi thực hiện cho phiên bản 1.0 với các thay đổi ngược dòng được thực hiện trong phiên bản 1.1. cách tốt nhất để đạt được điều này là gì?

Rất cám ơn.

Trả lời

5

Sử dụng này:

$ diff -u 1.php 1a.php > customizations.patch

Mà sẽ cung cấp cho bạn một khác biệt thống nhất của tất cả các thay đổi giữa vani của bạn và sao chép tùy chỉnh của phiên bản 1.0 của tập tin.

Bạn có thể thử áp dụng những thay đổi đối với file mới, 2.php, như thế này:

$ patch -p0 2.php customizations.patch

Lưu ý, tuy nhiên, điều này có thể sẽ thất bại với nhiều hunks từ chối nếu mã nguồn đã thay đổi quá nhiều. Tuy nhiên, chỉ cần nhận được sự khác biệt thống nhất đó có thể chứng minh là hữu ích vì sau đó bạn có thể tái hòa nhập các tùy chỉnh của mình theo cách thủ công để phù hợp với mã nguồn mới.

Điều tôi sẽ làm, nếu có thể, là lấy bản sao cục bộ của kho kiểm soát phiên bản mà dự án phần mềm miễn phí sử dụng. Sau đó, tạo một nhánh của nó và tích hợp các tùy chỉnh của bạn, và sau đó xem liệu bạn có thể đưa mọi thứ tiến lên bằng cách hợp nhất các cam kết ngược dòng từ thời điểm đó vào chi nhánh của bạn hay không. Nếu không nhìn thấy tất cả những thứ liên quan, tôi không thể nói với bạn rằng nó sẽ là một quá trình tầm thường hay phức tạp, nhưng nó có thể dễ dàng hơn là chỉ sử dụng diff và patch.

Lưu ý rằng điều này sẽ không hoạt động đối với nhiều tệp; nếu bạn cần làm điều này trong tương lai với nhiều tệp, bạn sẽ muốn sử dụng diff đối với hai tập hợp tệp khác nhau (có cùng tên tệp) trong hai cây thư mục khác nhau. Tôi nghĩ rằng có thể không phải là một ý tưởng tồi để đề cập đến điều này ngay bây giờ chỉ trong trường hợp nó chứng tỏ là một tình huống mà bạn gặp phải trong tương lai.

+0

Cảm ơn bạn, cách tiếp cận khác biệt/vá hoạt động hoàn hảo. Mặc dù một vài người đã thất bại, nhưng chúng khá đơn giản để hợp nhất thủ công. – gjb

+0

Bạn được chào đón nhiều nhất. –

Các vấn đề liên quan