Xóa chi nhánh SVN


91

Tôi đã tạo một nhánh của một dự án SVN có tên là 'tính năng', và bây giờ bất cứ khi nào tôi cố gắng cập nhật dự án đó, nó sẽ mang theo một thư mục tính năng, chứa một bản sao khác của dự án từ nhánh. Có cách nào để loại bỏ nhánh khỏi kho lưu trữ hoàn toàn để điều này không xảy ra nữa không?


Có thể có bản sao của Xóa chi nhánh
Jim G.

Câu trả lời:


110

Chắc chắn: svn rmthư mục không mong muốn và cam kết.

Để tránh tình trạng này trong tương lai, tôi sẽ làm theo cách bố trí được đề xuất cho các dự án SVN:

  • Đặt mã của bạn vào /someproject/trunkthư mục (hoặc chỉ /trunkkhi bạn muốn chỉ đặt một dự án vào kho lưu trữ)
  • Đã tạo các nhánh dưới dạng /someproject/branches/somebranch
  • Đặt thẻ dưới /someproject/tags

Bây giờ khi bạn kiểm tra một bản sao đang hoạt động, hãy đảm bảo chỉ kiểm tra trunkhoặc một số nhánh riêng lẻ. Đừng kiểm tra mọi thứ trong một bản sao làm việc khổng lồ chứa tất cả các nhánh. 1

1 Trừ khi bạn biết mình đang làm gì, trong trường hợp đó bạn biết cách tạo các bản sao làm việc nông.


58

Giả sử nhánh này không phải là một bên ngoài hoặc một liên kết biểu tượng, việc xóa nhánh phải đơn giản như sau:

svn rm branches/< mybranch >

svn ci -m "message"

Nếu bạn muốn thực hiện việc này trong kho lưu trữ, sau đó cập nhật để xóa nó khỏi bản sao đang làm việc của mình, bạn có thể làm điều gì đó như:

svn rm http://< myurl >/< myrepo >/branches/< mybranch >

Sau đó chạy:

svn update

26
từ cuốn sách : "Xóa một URL, tuy nhiên, là ngay lập tức, vì vậy bạn phải cung cấp một thông điệp log [với -m]" nên svn rm -m message http://...và không updatecần thiết
rymo

57

Đối với những người sử dụng TortoiseSVN , bạn có thể thực hiện điều này bằng cách sử dụng Trình duyệt Kho lưu trữ (nó được gắn nhãn "Trình duyệt kho lưu trữ" trong menu ngữ cảnh.)

danh mục

Tìm thư mục nhánh bạn muốn xóa, nhấp chuột phải vào thư mục đó và chọn "Xóa".

xóa thư mục

Nhập thông điệp cam kết của bạn và bạn đã hoàn tất.

cam kết


Thực hiện Cập nhật SVN để xóa các thư mục khỏi đĩa của bạn (nếu chưa xóa trước khi xóa nhánh)
ArieKanarie

12

Bạn cũng có thể xóa chi nhánh trên điều khiển từ xa trực tiếp. Sau khi thực hiện điều đó, bản cập nhật tiếp theo sẽ xóa nó khỏi bản sao làm việc của bạn.

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"

Tên ^viết tắt của URL của điều khiển từ xa, như được thấy trong 'svn info'. Dấu ngoặc kép là cần thiết trên dòng lệnh Windows, vì ^là một ký tự đặc biệt.

Lệnh này cũng sẽ hoạt động nếu bạn chưa bao giờ kiểm tra chi nhánh.


Tôi đã sử dụng cái này từ máy Mac và nó hoạt động tốt! Khi tôi thử câu trả lời hàng đầu, tôi nhận được câu trả lời "'/ local / path / to / repo / branch / branch-name' không phải là một bản sao đang hoạt động" nên có lẽ tôi đã không bao giờ kiểm tra được chi nhánh mà mình đã thực hiện
Mad Bernard

3

Bạn có thể xóa thư mục tính năng giống như bất kỳ thư mục nào khác trong thanh toán của mình sau đó thực hiện thay đổi.

Để ngăn chặn điều này trong tương lai, tôi khuyên bạn nên tuân theo các quy ước đặt tên cho bố cục SVN.

Cung cấp cho mỗi dự án một thư mục thân, nhánh, thẻ khi chúng được tạo.

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags

3

Từ bản sao làm việc:

svn rm branches/features
svn commit -m "delete stale feature branch"


3

Lệnh xóa một nhánh như sau:

svn xóa -m "<tin nhắn của bạn>" <nhánh url>

Nếu bạn không muốn tìm nạp / kiểm tra toàn bộ repo, hãy thực hiện lệnh sau trên thiết bị đầu cuối của bạn:

1) lấy đường dẫn tuyệt đối của thư mục sẽ chứa bản sao làm việc của bạn
> pwd
2) Bắt đầu kiểm tra mã
svn> kiểm tra svn <nhánh url> <đường dẫn tuyệt đối từ điểm 1>

Các bước trên sẽ giúp bạn nhận được các tệp bên trong thư mục nhánh chứ không phải toàn bộ thư mục.

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.