Tôi đang sử dụng Bản cập nhật VS2013 4 với TFS 2013 Update 4. Trong Source Control Explorer, bất cứ khi nào tôi di chuyển tệp từ thư mục này sang thư mục khác, tôi có thể thấy lịch sử của tệp được giữ nguyên trong vị trí. Tuy nhiên, lịch sử đó đã biến mất khi tôi kiểm tra các thay đổi đang chờ xử lý. Điều tương tự cũng xảy ra khi tôi cố gắng chạy lệnh "tf move". Vì vậy, làm thế nào bạn có thể di chuyển một tập tin trong TFS và vẫn giữ lịch sử của tập tin?Di chuyển tệp mất lịch sử trong TFS 2013
Trả lời
Khi tệp được đổi tên chính xác, Lịch sử không phải là "Đã qua", nó được liên kết với "tên cũ" thay thế.Một đổi tên đó được thực hiện một cách đúng đắn (theo dõi như một đổi tên và không phải là một delete + thêm) có một lựa chọn Drilldown để xem các "cũ" lịch sử:
- changeset 81 ~ 82 chứa thay đổi đối với tên cũ
- changeset 83 chứa delete + đổi tên
- changeset 84 một sự thay đổi mới mà đã được kiểm tra trong sau khi đổi tên
Khi đổi tên được thực hiện bên ngoài o f Trình khám phá kiểm soát nguồn (hoặc từ một phiên bản rất cũ của Trình khám phá kiểm soát nguồn (ví dụ: VS 2008)) hoặc bên ngoài Solution Explorer, khi đó thay đổi sẽ được phát hiện dưới dạng hai hành động riêng lẻ, một trong số xóa và một thêm. Bạn có thể sử dụng cửa sổ "Pending Changes" để thúc đẩy chúng cho đổi tên sao cho lịch sử được bảo tồn:
Trên dòng lệnh này chỉ có thể được thực hiện bằng "tf đổi tên" và "tf di chuyển". Sử dụng các lệnh "mv" và "ren" chuẩn sẽ không bảo toàn được lịch sử.
Dưới đây là một ví dụ nữa của việc sử dụng tất cả các phương pháp khác nhau và rõ ràng cho thấy rằng lịch sử được bảo tồn bằng cách nhìn vào lịch sử của tên tập tin hiện tại:
Cảm ơn @ jessehouwing vì câu trả lời kỹ lưỡng của bạn! Tôi thực sự chạy lệnh "tf move" và như bạn đã nói nó đã bảo tồn lịch sử. Chỉ là tôi không biết tùy chọn khoan xuống! Bây giờ tôi quay trở lại tôi có thể thấy lịch sử "cũ hơn". – TDN
Tôi chỉ thay đổi nó :) – TDN
còn thư mục đã di chuyển thì sao? Giải pháp duy nhất tôi biết là sử dụng lịch sử tf hoặc đi đến các tập tin theo nó, hoặc hiển thị các thư mục đã xóa trong Source Control Explorer và truy vấn lịch sử ở đó. – vezenkov
Tôi gặp sự cố này từ số question này.
Sự cố tồn tại kể từ TFS2010 và không chỉ là vấn đề đối với việc đổi tên hoặc di chuyển tệp, mà còn đổi tên hoặc di chuyển thư mục. Điều tồi tệ nhất là nếu bạn đổi tên chi nhánh và sau đó xem lịch sử thư mục. Sau đó, bạn chỉ tìm thấy changeset đổi tên của bạn.
Here bạn có thể thấy phản ứng của MS về tác vụ này. Về cơ bản họ nói rằng họ không làm điều đó bởi vì nó là rất nhiều công việc và làm cho lịch sử chậm hơn.
Tôi không thể sống với thực tế này và được lập trình sửa lỗi cho điều này. Lựa chọn lịch sử đệ quy xảy ra trong SP dbo.prc_QueryHistory. Tôi đã thay đổi SP và bổ sung các chức năng sau:
- (như tìm kiếm thông thường cho 256 changesets cuối cùng đệ quy)
- sau đó kiểm tra changesets nếu một số trong số họ đại diện cho đổi tên hoạt động/di chuyển
- nếu có thì đệ quy (trong một vòng lặp), hãy làm theo mỗi lần đổi tên/di chuyển đến ItemId cũ của nó và lặp lại bước này (trong trường hợp tệp/thư mục được đổi tên nhiều lần)
- rồi tìm tất cả các thay đổi trước đó cho ItemIds trước đó (di chuyển/đổi tên thay đổi ItemId))
- thêm các thay đổi mới được tìm thấy vào danh sách của changesets và cắt nó ở hàng 256
Hiệu ứng là lịch sử chậm hơn (đặc biệt nếu bạn làm điều đó trên thư mục gốc của cây thư mục sâu), nhưng vấn đề đã được sửa. Và tôi thích sống với một lịch sử chậm hơn so với lịch sử không đầy đủ.
Tôi có thể cung cấp cho bạn SP mà tôi đã viết, nhưng tôi không chắc liệu tôi có được phép xuất bản nó ở đây hay không, vì nó có chứa mã bảo vệ MS. (Và tất nhiên tôi không thể đảm bảo rằng việc sửa chữa sẽ kéo dài khi cập nhật hệ thống - tôi đã viết SP của tôi trên một SP3 TFS năm 2013..)
Cập nhật: Tôi hỏi MS cho phép xuất bản sửa chữa của tôi (liên kết 2 trong bài đăng của tôi)
Bạn có thể mở một cuộc trò chuyện riêng tư sau khi bạn có đủ quyền: http://stackoverflow.com/help/privileges/chat-rooms – jessehouwing
** CẢNH BÁO **: Điều này sẽ chính thức đưa TFS của bạn cài đặt vào trạng thái không được hỗ trợ. – jessehouwing
Cách giải quyết di chuyển * có * hoạt động, đã sử dụng nó trước đây, mặc dù nó cũng chỉ định tài khoản được sử dụng để thực hiện di chuyển với tư cách là tác giả của các thay đổi. Về mặt cộng, thông tin đó không bị mất, vì nó được nối thêm vào phần mô tả các thay đổi. Vì vậy, nếu bạn có thể sống với điều đó, tôi muốn giới thiệu điều đó. – moarboilerplate
Tôi không nghĩ jessehouwing công trình sửa chữa cho các thư mục. Trong thực tế, nếu bạn sử dụng Source Control Explorer của VS 2012+, việc di chuyển các thư mục bảo tồn lịch sử tập tin (cho thấy đệ quy trong VS), nhưng không cho các thư mục. Lịch sử thư mục bằng phẳng.
Các giải pháp cho vấn đề này:
- Microsoft để sửa chữa lịch sử thư mục cách được hiển thị trong VS hoặc thêm Hiện History Recursive mục trình đơn ngữ cảnh.
- Di chuyển tất cả các thay đổi từ một thư mục này sang thư mục khác. Thật không may tôi vẫn không thể xác định một công cụ có khả năng làm điều này cho TFS 2013 hoặc VSO.
- 1. Mất lịch sử TFS
- 2. Di chuyển từ Subversion sang TFS 2013
- 3. Xcode mất lịch sử git khi di chuyển một tệp
- 4. TFS Di chuyển tập tin với lịch sử
- 5. Lịch sử SVN bị mất trong git
- 6. Di chuyển điều khiển nguồn từ một dự án TFS sang một dự án TFS khác
- 7. Git đến TFS 2008 di chuyển một chiều (có lịch sử)
- 8. TFS 2013 - Di chuyển mã dự án nhóm và lịch sử sang dự án mới bằng cách sử dụng các mẫu quy trình khác nhau
- 9. Di chuyển từ TFS sang Git
- 10. Di chuyển Thư mục với Lịch sử
- 11. Mất lịch sử SVN trên các tệp trong khi tái cấu trúc
- 12. Ember.js khôi phục di chuyển trên lịch sử, thiết lập lại di chuyển vào liên kết
- 13. git, cách chắc chắn để di chuyển/đổi tên tệp trong khi vẫn giữ lịch sử
- 14. Di chuyển từ TFS sang Redmine
- 15. Sử dụng gitk để xem toàn bộ lịch sử của một tệp đã di chuyển
- 16. svn rebasing và lịch sử mất
- 17. Chuyển đổi TFS 2013 xaml Xây dựng định nghĩa cho TFS 2015 vNext Xây dựng
- 18. SVN Di chuyển mã với lịch sử giữa hai kho
- 19. Di chuyển TFS cục bộ sang Dịch vụ Foundation Team
- 20. TFS: Tìm tệp đã chuyển theo tên cũ
- 21. Làm thế nào để di chuyển từ một máy chủ Mercurial khác mà không bị mất lịch sử của tôi?
- 22. TFS 2010, tôi chỉ có thể di chuyển mã nguồn?
- 23. Di chuyển một tệp vào một thư mục mới, giữ lịch sử Git
- 24. TFS Đổi tên và xóa tệp chậm trong Visual Studio 2013
- 25. Di chuyển MKOverlayPathView biến mất sau gạch
- 26. Hợp nhất các tệp di chuyển db/di chuyển
- 27. Hiển thị cửa sổ lịch sử mục với TFS SDK
- 28. Di chuyển tệp trong Xcode
- 29. Di chuyển tệp trong Vim
- 30. CALayer mất rasterization khi di chuyển offscreen trong một UIScrollView
Xem thêm: http://stackoverflow.com/questions/27491584/how-can-i-fix-tfs-history-after-rename – jessehouwing
Tùy thuộc vào lý do di chuyển của bạn, bạn cũng có thể sử dụng sửa đổi chi nhánh để giải quyết vấn đề này. Bạn đang tạo loại thay đổi nào? – moarboilerplate
Điều này cũng xảy ra khi tôi hợp nhất chi nhánh – Damian