Cách dễ nhất để tạo một bản vá để gửi lên WordPress Core?


13

Tôi đã gửi một vài bản vá cho lõi WordPress trên Trac (một trong số đó đã được sử dụng) nhưng mỗi khi tôi nghĩ về việc đó, tôi lại chùn bước vì thiết lập của tôi để làm như vậy là vô cùng tẻ nhạt.

Ai đó có thể vui lòng nêu chi tiết các bước cần thiết để gửi một bản vá cho lõi, và sau đó là cách tốt nhất để hợp lý hóa quy trình để nó không quá tẻ nhạt? Tôi hiện đang làm việc với Mac OS X và PhpStorm nhưng tôi nghĩ kịch bản shell có thể dễ nhất? Hoặc có thể một PHP Script mà tất cả các vẹt hoạt động?

Một trong những vấn đề là tôi không hiểu đầy đủ những gì tôi cần bắt đầu. Tôi có bắt đầu với thân cây không? Tôi có phải tải xuống một bản sao mới và thêm vào / chỉnh sửa bản sao đó bằng mã của mình mỗi lần tôi muốn tạo một bản vá không?

Một lần nữa, trong khi tôi đã thực hiện nó hoạt động với SVN và việc vá lỗi thực sự nằm ngoài bộ kỹ năng hiện tại của tôi và tôi muốn thay đổi điều đó. Hy vọng bạn các chuyên gia vá WordPress có thể đến cứu tôi. Cảm ơn trước.

CẬP NHẬT:

Sau câu trả lời của @ hakre, tôi nghĩ rằng tôi nên thêm nhiều hơn vào câu hỏi:

  • Tôi có thể tạo các bản vá từ phiên bản cũ hơn hoặc tôi phải sử dụng thân cây?
  • Nếu tôi đang làm việc trên một dự án sử dụng phiên bản đã phát hành (3.0.1), tôi có thể sửa đổi nó và tạo một bản vá cho lõi hay tôi phải tải xuống và thiết lập một bản sao nguyên sơ và mới của thân cây và mới thực hiện các sửa đổi của mình ở đó?
  • Tôi có thể làm với shell script để tôi có thể mã hóa thông tin đăng nhập vào tập lệnh và chỉ cần chạy tập lệnh để tạo lại mọi thứ tôi cần và / hoặc để tạo bản vá?
  • Và những cạm bẫy là gì?

Tất cả những câu hỏi này dường như được giả định bởi những người biết SVN của WordPress hoạt động như thế nào và vì thế luôn được đề cập trong bất kỳ cuộc thảo luận nào.

Câu trả lời:


8

Cách dễ nhất để tạo một bản vá được mô tả ở đây:

http://wordpress.org/doad/svn/

Tôi có thể tạo các bản vá từ phiên bản cũ hơn hoặc tôi phải sử dụng thân cây?

Bạn nên tạo bản vá với cùng một phiên bản mà bạn muốn nó được áp dụng.

Nói cách khác, đừng mong đợi một bản vá được tạo ra chống lại WP 3.0.1 để áp dụng hoàn toàn trên WP 3.1-alpha.

Nếu tôi đang làm việc trên một dự án sử dụng phiên bản đã phát hành (3.0.1), tôi có thể sửa đổi nó và tạo một bản vá cho lõi hay tôi phải tải xuống và thiết lập một bản sao nguyên sơ và mới của thân cây và mới thực hiện các sửa đổi của mình ở đó?

Bạn không phải thiết lập cài đặt mới cho mỗi bản vá mới. Bạn chỉ có thể sử dụng svn Revert để quay lại bản sao nguyên sơ.

Ngoài ra, cơ sở dữ liệu không phải sạch mỗi lần. Trên thực tế, sẽ tốt hơn nếu bạn có một số sửa đổi, để mô phỏng môi trường sống.


1
Trời ạ, thật dễ dàng để tạo ra một bản vá sau khi chúng tôi có bản sao làm việc của chúng tôi : svn diff > my-patch.patch, tôi gusta!
brasofilo

5

PDT Eclipse + Subclipse + X

Tôi đang sử dụng Eclipse có Tích hợp SVN . Tôi nghĩ rằng PHP Strom cũng làm như vậy. Tôi đi vào một trong những dự án trung kế của mình, về cơ bản là thanh toán từ kho lưu trữ svn của WordPress.

Sau đó, tôi chỉnh sửa các tập tin tôi cần chỉnh sửa. Eclipse hiển thị cái nào đã được sửa đổi, tôi nhấn chuột phải vào một thư mục, chọn Team->Create Patchvà tôi được cung cấp tất cả các tệp đã thay đổi mà tôi có thể chọn cho diff. Sau đó, tôi có thể chọn giữa sao chép vào clipboard hoặc lưu vào đĩa. Tôi lưu tất cả các bản vá tôi tạo với số vé vào một thư mục tôi có trên đĩa cứng.

Sau đó, tôi vào Trình duyệt và tải lên các bản vá.

Tôi cũng có thể làm điều này với tích hợp MyLyn Trac , điều đó thậm chí còn thoải mái hơn, nhưng bạn cần XML-RPC ngay trong trac để bạn cần một quản trị viên trac liên hệ. Nó hoạt động khá tốt nhưng tôi không có cấu hình trong mọi dự án và sử dụng chủ yếu khi tôi thực hiện quá trình bán vé.

Vì vậy, thực sự, kiểm tra Eclipse nếu bạn muốn. Nó rất lớn và chậm nên bạn cần một máy tính lớn. Trên những cái nhỏ tôi đã có những trải nghiệm tốt với Fedora Linux. Eclipse chạy tốt trên nó. Tôi biết bạn là một người hâm mộ cơn bão PHP, nhưng, tôi thực sự thích Eclipse của tôi và nó đi kèm với rất nhiều phần mở rộng thực sự rung chuyển. Ngay cả đối với PHP :). Nhưng về cơ bản, Storm Storm cũng nên thực hiện các công cụ kiểm tra / vá lỗi.

WordPress Eclipse 1x1

Ah và tôi có một công cụ trong hệ điều hành của mình để lưu tất cả các thư mục tôi đã sử dụng. Vì vậy, tôi có thể lưu các bản vá và tải lên các tệp nhanh vì chúng luôn nằm trong cùng thư mục mà tôi có trong danh sách gần đây.

Ví dụ tích hợp: Mã PHP Sniffer, Eclipse và WordPress


Cảm ơn đã trả lời. Tôi đã thử Eclipse và ghét nó. Quá không phản hồi và tôi chỉ không thích giao diện. Vì vậy, đó là một câu trả lời tốt cho những người khác mà Eclipse là một lựa chọn nhưng câu trả lời của bạn không giải quyết được nhu cầu của tôi. Tôi sẽ cho nó và bỏ phiếu nhưng tôi thích một giải pháp không gắn với IDE, cũng là một giải thích tốt hơn cho quy trình.
MikeSchinkel

Ngoài ra tôi muốn nói rằng PhpStorm có tích hợp SVN (và Git) đầy đủ nhưng sự tích hợp của nó thực sự đòi hỏi người dùng phải hiểu đầy đủ về tác dụng của mỗi menu vì nó cung cấp rất ít hướng dẫn về cách làm việc với chúng (có rất nhiều trong các tệp trợ giúp nhưng vì chúng không nhạy cảm với ngữ cảnh và vì SVN + Git là một bổ sung rất lớn cho PhpStorm nên dễ dàng bị mất hoàn toàn trong tất cả.) Đó là lý do tại sao tôi muốn hiểu nó ở lõi và không phải chuyển sang IDE Tôi không thích làm điều đó.
MikeSchinkel

@MikeSchinkel - Nếu SVN quá phức tạp đối với bạn (bất kể hương vị nào của SVN + Editor), thì bạn không thể tạo các bản vá cho dự án wordpress. Về cơ bản nếu bạn không thích giao diện UI của bạn với SVN, hãy học dòng lệnh. Nhưng dù sao bạn cũng cần phải học. Bạn có thể sử dụng SVN với bất kỳ trình soạn thảo nào bạn thích btw .. Tôi có một bản sao thân SVN và được định cấu hình trên máy chủ web để tạo các bản vá và kiểm tra chúng. Sau khi tôi thực hiện một bản vá, tôi xóa các thay đổi cục bộ (hoàn nguyên) khỏi bản sao cục bộ của mình và sau đó có thể tiếp tục cho các bản vá khác. Nó luôn hoạt động. Còn gì để nói?
hakre

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.