2010-01-19 24 views
41

Tôi có một dự án Foo mà tôi đã tạo sai thẻ sai. Nó nên đã đọc 'rMMDDYYYY' nhưng thay vào đó tôi đã gắn thẻ 'YYYYMMDD'. Tôi nhận ra sai lầm của mình sau khi đã cam kết thay đổi. Bây giờ tôi muốn loại bỏ thư mục YYYYMMDD bên dưới thư mục thẻ và để lại thư mục rMMDDYYYY thay vào đó. tức làLàm cách nào để xóa thư mục được gắn thẻ sai trong SVN?

trước: foo/foo/trunk/foo/chi nhánh/foo/thẻ/foo/thẻ/YYYYMMDD/foo/thẻ/rMMDDYYYY

sau: foo/foo/trunk/foo/chi nhánh/foo/tags/foo/tags/rMMDDYYYY

Bất kỳ ý tưởng nào về cách tôi có thể thực hiện việc này? Cảm ơn trước!

+0

Có thể hữu ích khi đọc phần trên thẻ trong sách hướng dẫn, nó giải thích rằng các thẻ không khác với các nhánh hoặc các bản sao khác của cây: http://svnbook.red-bean.com/en/1.5/svn. branchmerge.tags.html – wds

Trả lời

45

Nếu bạn muốn loại bỏ các thư mục sau đó sử dụng svn rm lệnh:

svn rm foo/tags/YYYYMMDD 
14

Chỉ cần xóa thẻ bạn không muốn và tạo lại lần nữa với cùng tên hoặc một tên khác nhau. Nếu bạn có Tortoisesvn nó đơn giản như xóa thư mục từ trình duyệt kho. Sau đó, tạo một thẻ mới.

+0

Cảm ơn Shikar nhưng TortoiseSVN không thực sự là một lựa chọn cho tôi khi tôi đang ở trên máy Mac. Tôi sẽ ghi nhớ rằng nếu tôi tiếp theo tôi đang ở trên máy Windoze (sic!);) – freakwincy

5

Tôi giả sử bạn không thể chỉ xóa và thêm lại thư mục (có thể vì bản sao làm việc đã thay đổi) hoặc bạn đã làm điều đó. Vì vậy, bạn có ít nhất hai tùy chọn:

  1. Kiểm tra bản sửa đổi được gắn thẻ, xóa nó khỏi kho và thêm lại vào vị trí mong muốn.
  2. Sử dụng svn mv lệnh: http://svnbook.red-bean.com/en/1.0/re18.html

Lưu ý rằng việc tạo một thẻ trong lật đổ không thực sự sao chép các tập tin; nó chỉ tạo các mục nhập thư mục trỏ đến các tệp (Xem “ Bản sao giá rẻ ”: http://svnbook.red-bean.com/en/1.0/ch04s02.html), vì vậy bạn không cần phải lo lắng về việc làm đầy kho lưu trữ của mình.

Sách phụ đề (http://svnbook.red-bean.com) là tham chiếu cực kỳ rõ ràng và đầy đủ. Nếu bạn chưa đọc nó, có thể bạn sẽ thấy nó là vô số thông tin.

Chúc may mắn!

+0

Cảm ơn Adam. Không nhận ra tôi chỉ có thể làm một svn mv. Đó sẽ là giải pháp lý tưởng nhưng thực tế là thư mục tôi đã chuyển nó đã tồn tại. Tuy nhiên, nó tốt để biết. Đoán tôi cần phải chải lên một litttle nhiều hơn trên Subversion Book. – freakwincy

+1

Hài hước, tôi đã gặp một vấn đề rất giống nhau ngày hôm qua: cần phải di chuyển 'https: // path/to/dir' ->' https: // path/to/my/dir' và giải nó bằng "svn mv" một thư mục tạm thời, 'svn mkdir https: // đường dẫn/đến/my' và cuối cùng là" svn mv "vào cấu trúc mới. Không biết rằng tôi đã có thể làm điều đó một cách nhanh chóng nếu tôi đã không đi qua câu hỏi của bạn đầu tiên ... vì vậy cảm ơn bạn! –

28
svn delete http://example.com/svn/tags/tag-to-delete -m "Tag no longer needed" 

là cách tiếp cận tốt nhất. See also here.

+0

Thật kỳ quặc, cách tiếp cận khác của việc xóa thư mục thẻ khỏi repo không hoạt động (hoạt động dường như không có sẵn), nhưng xóa svn này đã làm. – Schollii

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