Tôi có hai bản sao làm việc của cùng một dự án, mỗi bản chuyển sang một nhánh khác. Có thể hợp nhất các thay đổi cục bộ trong một dự án với bản sao làm việc khác không?SVN: hợp nhất các thay đổi cục bộ vào bản sao làm việc khác
Trả lời
Bạn không thể hợp nhất hai bản sao làm việc riêng biệt, nhưng có một số việc bạn có thể làm.
Nếu thay đổi được thực hiện cho tệp hiện có, cách dễ nhất là tạo bản vá với svn diff
và sau đó chỉ áp dụng bản vá đó cho bản sao làm việc khác. Ví dụ. trong làm việc đầu tiên sao chép bạn làm:
svn diff > patch
Và sau đó bạn áp dụng nó trong một trong những khác:
patch -p0 < patch
Và như thường lệ bạn muốn chạy patch
với các tùy chọn --dry-run
để đảm bảo nó hoạt động đầu tiên .
Tuy nhiên, nếu các chi nhánh không có bố cục tệp giống nhau, thì bạn không thể chỉ lấy một bản vá và áp dụng nó. Trong trường hợp này, những gì bạn cần làm chỉ đơn giản là đầu tiên cam kết các thay đổi cục bộ khác và sau đó sử dụng svn merge
như thường lệ
Bạn có thể tạo bản vá trên một bản sao làm việc (svn diff
) và áp dụng bản vá đó cho một bản sao khác (patch
). http://ariejan.net/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/
Nếu thay đổi của bạn bao gồm xóa, sử dụng bản vá GNU sẽ không cắt. Nếu bạn muốn các thay đổi được cam kết cho cả hai nhánh, hãy cam kết chúng trong một, sau đó svn hợp nhất các thay đổi đó với nhánh khác. Nếu bạn đã thực hiện các thay đổi trong nhánh A và cần chúng trong nhánh B thay vào đó, svn chuyển nhánh của bạn Bản sao làm việc sang nhánh B.
'Patch' cũng là lệnh svn? Có vẻ như nó chưa được cài đặt trên máy tính Windows của tôi. – Mot
Không, vá chỉ là một công cụ chung để áp dụng các tệp vá. Bạn có thể lấy nó cho các cửa sổ ở đây: http://gnuwin32.sourceforge.net/packages/patch.htm –
Bạn có thể vá từ trình đơn nhấp chuột phải của TortoiseSVN nếu bạn sử dụng TortoiseSVN. –