2009-08-07 3 views
25

Tôi đang sử dụng Visual Studio để chỉnh sửa mã nguồn và thỉnh thoảng tôi chuyển sang Windows Explorer để thực hiện thay đổi với TortoiseSVN. Thủ tục này hoạt động tốt cho tôi và tôi khá hài lòng với nó. Tuy nhiên, gần đây tôi bắt đầu đổi tên các lớp và tổ chức lại các không gian tên rất nhiều. Tôi muốn đổi tên và di chuyển các tập tin trong Visual Studio vì nó tự động cập nhật tập tin dự án cho tôi. Tuy nhiên, khi tôi cam kết thay đổi, tôi phải nói với TortoiseSVN rằng các tệp cũ đã bị xóa và các tệp mới đã được thêm vào, điều này không hoàn toàn đúng và nó phá vỡ lịch sử của mã cụ thể.Đổi tên tệp bằng Visual Studio và TortoiseSVN

Vì vậy, câu hỏi của tôi là: Khi tôi đổi tên tệp trong Visual Studio, có cách nào để báo cho TortoiseSVN biết rằng tôi đã làm điều đó để giữ lại lịch sử tệp không?


Cập nhật (16:30): Ankhsvn dường như là câu trả lời rõ ràng nhưng tôi thích điều như bây giờ họ đang có. Nghe có vẻ lạ nhưng tôi thích TortoiseSVN không được tích hợp trong Visual Studio. Điều này có thể là do hai thiết lập màn hình của tôi khi tôi luôn mở trình quản lý tệp trên màn hình phụ. Có lẽ vì tôi đã tìm thấy Solution Explorer một chút clunky. Có lẽ vì tôi thích nghĩ về chỉnh sửa mã và kiểm soát sửa đổi như là các bước phát triển phần mềm riêng biệt. Tôi không biết.

+0

Dường như AnkhSVN là câu trả lời của bạn, vì hầu như tất cả các câu trả lời đều đề cập đến nó, bao gồm cả của tôi :-) –

+2

Jakub, tôi đồng ý với bạn về điều đó. Tôi đã thử rất nhiều CVS và SVN plugins cho VS và luôn luôn quay trở lại Tortoise. – sbi

+2

+1 cho câu hỏi hay. Ngoài ra +1 nếu tôi có thể, vì muốn một giải pháp mà không yêu cầu một plug-in. Trong khi AnkhSVN là cách tốt hơn so với trước đây, nó vẫn không thay thế cho TSVN. Theo kinh nghiệm làm việc của tôi mà không có AnkhSVN thì hiệu quả hơn là làm việc với nó. –

Trả lời

29

Nếu bạn có phiên bản TSVN mới hơn (sau 1.5.0, tôi nghĩ), bạn có thể sử dụng tính năng "repair moves". Tôi sử dụng nó mọi lúc cho những tình huống như thế.

+0

Bạn đã lưu lịch sử của mình. Cảm ơn rất nhiều. –

+0

Cảm ơn bạn! Bạn cũng đã lưu lịch sử của tôi. – Cybis

+1

Vâng, tôi đã sử dụng tính năng này rất nhiều để có được xung quanh đổi tên trong VS. Nó chỉ là rất nhiều công việc mặc dù, vì vậy tôi sẽ cố gắng AnkhSVN. Chỉ là một ý nghĩ tôi đã có ngày khác ... Hãy tưởng tượng nếu TSVN có một tính năng đề xuất đổi tên trong cuộc đối thoại cam kết. Đó sẽ là sử thi và tiết kiệm thời gian lớn !!! –

7

Hãy xem http://ankhsvn.open.collab.net/. Nó tìm kiếm những thứ này và xử lý các thay đổi một cách thích hợp và hiển thị trực tiếp cho bạn trong Solution Explorer những gì đã thay đổi. Ngoài ra, bạn không phải quay lại Explorer! Tôi thật sự thích nó rất nhiều!

Không có lý do gì để ngăn lịch sử tệp. Đó là toàn bộ điểm của hệ thống kiểm soát mã nguồn.

+0

Nhưng tốt hơn bạn nên chuyển sang :-) –

0

có lẽ bạn có thể sử dụng AnkhSVN plugin cho visual studio cho svn

hoặc có bổ sung như thế

3

Tôi nghĩ AnkhSVN sẽ thực hiện công việc. Đó là một plugin SVN miễn phí cho Visual Studio. Có một số khác - VisualSVN, nhưng phần mềm chia sẻ của nó.

0

No. Bạn nên làm tất cả việc di chuyển/đổi tên tệp trong TortoiseSVN (ví dụ: trình khám phá tệp).

Có các plugin SVN dành cho Visual Studio có thể làm những gì bạn muốn.

+1

Chính xác. Đầu tiên, đổi tên một tập tin để nó đã thay đổi tên, sau đó thay thế nó bằng một cái mới hơn, sau đó cam kết. Trong trường hợp này SVN bây giờ sẽ thực hiện 2 thao tác. –

0

AFAIK, khi bạn sử dụng TortoiseSVN để đổi tên tệp trong phạm vi kiểm soát nguồn, nó cũng xóa và thêm các tệp được đổi tên thành mới.

See here:

Commit thư mục mẹ

Kể từ khi đặt lại tên và di chuyển được thực hiện như một delete tiếp theo là một add [...]

+0

Thực ra nó được thực hiện dưới dạng bản sao và xóa. Bằng cách đó SVN bảo tồn (bản sao) lịch sử. – sbi

0

tôi không biết làm thế nào bạn có thể làm những gì bạn yêu cầu, nhưng tôi nghĩ rằng bạn có thể giải quyết vấn đề của bạn nếu bạn bắt đầu sử dụng AnkhSVN.

Đây là một công cụ tuyệt vời tích hợp Subversion vào Visual Studio và bạn có thể thực hiện các cam kết từ IDE VS.