Cam kết thay đổi sang một nhánh khác với nhánh hiện đang được kiểm tra với lật đổ


115

Tôi đã làm việc với mã đã kiểm tra từ dòng phát triển và phát hiện ra rằng những thay đổi được thực hiện có thể phá vỡ các thay đổi và cần được chuyển đến một nhánh thử nghiệm trước khi cam kết với cây dev chính. Tuy nhiên, tôi không kiểm tra chi nhánh thử nghiệm và tôi không muốn mất những thay đổi đã được thực hiện.

Có cách nào để cam kết các thay đổi trong thư mục làm việc sang một nhánh khác so với kiểm tra ban đầu không?

Câu trả lời:


129

Bạn nên tạo một nhánh từ một cái đã biết sourceURL(đây sẽ là 'dòng phát triển' mà bạn đã đề cập trong câu hỏi) trước tiên:

svn copy sourceURL branchURL

Sau đó, chuyển sang chi nhánh đó:

svn switch branchURL

Và cam kết thay đổi của bạn:

svn commit

55

Bạn có thể làm điều đó trong TortoiseSVN như thế:

  • Nhấp chuột phải vào thư mục những thay đổi bạn muốn phân nhánh. Nó không phải là gốc của kho lưu trữ, ít bị trùng lặp theo cách đó;
  • Chọn TortoiseSVN -> " Chi nhánh / thẻ ... ";
  • Đặt thành URL : "svn: // host / repository / FooBar / cành / FooBarBranchName";
  • Đảm bảo [*] Bản sao làm việc được chọn . Điều này sẽ đảm bảo những thay đổi được cam kết;
  • Nhật ký thông báo : "Thử nghiệm với ruồi :)";
  • Tùy chọn: Đánh dấu [*] Chuyển bản sao làm việc sang chi nhánh / thẻ mới . Điều này rất hữu ích nếu bạn dự định tiếp tục làm việc trên chi nhánh mới. Mặc dù bạn có thể chuyển sang nó sau này quá.
  • Cố gắng tìm nút OK . Gợi ý: nó nằm ở phần dưới của cửa sổ ở giữa.

Thưởng thức!


Bạn có ý nghĩa gì bởi "Nó không phải là gốc của kho lưu trữ, ít bị trùng lặp theo cách đó"?
thekozak

Tôi khuyên bạn không nên chọn thư mục gốc với tất cả các thư mục con không liên quan không phải sửa đổi trong nhánh. Sau đó, việc hợp nhất nhánh (nhỏ hơn) trở lại thân cây sẽ dễ dàng hơn.
J Pollack

Trong trường hợp của tôi, chỉ cam kết thư mục đó gây ra sự cố vì phần mềm cũng phụ thuộc vào siêu thư mục. Tôi nghĩ đó là trường hợp thường xuyên nhất. Tôi nghĩ đối với hầu hết các trường hợp sử dụng, tốt hơn hết là chỉ cam kết toàn bộ, vì vậy, cam kết từ gốc mà tôi nói là nên làm.
ikku100

@ ikku100 nếu không có thay đổi trong các siêu thư mục đó, thì vấn đề sẽ thế nào?
đơn giản

Có thể bởi vì mọi người sau này có thể cam kết thay đổi ở đó, nhưng tôi đoán bạn có thể kiểm tra bản sửa đổi chính xác của siêu dữ liệu và sau đó kiểm tra chi nhánh cho thư mục con. Đó là công việc nhiều hơn là chỉ cam kết từ superdir, tôi nghĩ.
ikku100

8

Bạn có thể tạo một nhánh mới trực tiếp từ thư mục làm việc của bạn và chuyển thư mục làm việc sang nhánh đó.

Các lệnh là svn copysvn switch

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.