Tôi mới đến Mercurial. Chỉ không thể tìm thấy đúng lệnh. Đã cố gắng cập nhật/thanh toán mà không có may mắn. Tôi đang sử dụng kho lưu trữ cục bộ. Cảm ơnCách lấy phiên bản cụ thể của tệp trong Mercurial?
Trả lời
Tôi nghĩ bạn muốn hg revert -r<rev> <file>
(điều này sẽ thay đổi tệp đó giống như ở bản sửa đổi đã cho).
Đúng, đó là chính xác những gì anh ta muốn. :-) – Omnifarious
hoặc chỉ hg hoàn nguyên
@BlackTigerX Nếu không sửa đổi, tệp không được sửa đổi sẽ không được hoàn nguyên về bất kỳ thứ gì, ngay cả khi nó không phải là phiên bản cam kết gần đây. Đôi khi tôi sử dụng tệp này cho các tệp 'cherry pick' giữa các bản sửa đổi, vì vậy điều này rất quan trọng. – user2864740
Như djc đã nói revert
thay đổi tệp tại chỗ để khớp với bản sửa đổi trước. Nếu bạn muốn nó không đúng chỗ bạn có thể sử dụng hg cat -r revisionid filename
(thay thế bản sửa đổi và tên tệp của khóa học) sẽ xuất ra tệp để stdout, thích hợp cho việc chuyển hướng bất kỳ nơi nào bạn muốn.
purrrfect, chính xác những gì tôi mong muốn. – yota
Tuyệt vời, nó luôn luôn tốt đẹp để nghe một cái gì đó như thế. –
hg revert
thực sự giải quyết được sự cố này. Nhưng tôi nghĩ rằng bạn đang bối rối về một phạm vi rộng hơn của sự vật hơn là câu trả lời cho câu hỏi của bạn và muốn cố gắng trả lời đầy đủ hơn.
hg update
là toàn bộ lệnh lưu trữ và sẽ không hoạt động trên các tệp riêng lẻ. Nó không giống như subversion svn update
theo cách này. Nếu bạn làm hg --help update
, bạn có thể thấy rằng đây là trường hợp vì lệnh này không có đối số tệp. Nó có thể được sử dụng để di chuyển toàn bộ kho lưu trữ của bạn đến một ảnh chụp cụ thể, nhưng không thể được sử dụng để làm điều đó chỉ với một tệp.
Nếu bạn nhập hg --help
bạn sẽ thấy danh sách các lệnh. Đó là một danh sách khá lớn và hơi nặng nề, nhưng nếu bạn đọc qua nó, bạn sẽ thấy dòng này:
revert restore individual files or directories to an earlier state
Bây giờ, nếu bạn chỉ muốn trạng thái cuối cùng cho mục đích so sánh, có một lệnh bạn có thể quan tâm và đó là hg cat
. Điều đó sẽ cho phép bạn in ra các nội dung của một tập tin tại bất kỳ sửa đổi cụ thể. Sau đó bạn có thể chuyển hướng đầu ra của nó vào một số tệp khác. Sau đó, bạn có thể có phiên bản tốt được biết trước đó của tệp của bạn và phiên bản cũ để so sánh song song.
Lý do tại sao Mercurial có lệnh update
riêng biệt là có thể thực hiện điều gì đó trong Mercurial không thể thực hiện được trong Subversion. Bạn có thể update
thành phiên bản cũ hơn, thực hiện thay đổi, sau đó cam kết. Điều này sẽ tạo ra một chi nhánh. Lệnh update
có tác dụng cũng thay đổi bản sửa đổi gốc của thư mục làm việc hiện tại cũng như thay đổi nội dung của tất cả các tệp trong thư mục đó thành các phiên bản của phiên bản gốc đó.
Điều đó có nghĩa là revert
thay đổi nội dung của tệp (hoặc thậm chí toàn bộ kho lưu trữ nếu bạn cung cấp lệnh cho đối số đúng) nhưng để lại bản sửa đổi gốc của bản sao làm việc hiện tại.
Bạn có thể tìm hiểu bản sửa đổi gốc (hoặc sửa đổi trong trường hợp hợp nhất) bản sao làm việc hiện tại bằng cách sử dụng lệnh hg parents
.
Trong bản sửa đổi Subversion là một tiến trình tuyến tính nghiêm ngặt. Mercurial tạo ra các chi nhánh ở một chiếc mũ, và chúng gần như dễ dàng hợp nhất. Bản sửa đổi tạo thành một DAG, không phải là một sự tiến triển nghiêm ngặt tuyến tính.
Để trích xuất một phiên bản cụ thể của một tập tin cụ thể mà bạn có thể làm điều này trên Windows:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
Ở đây, 9 là số phiên bản.
Hoặc thậm chí tốt hơn:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"
- 1. kéo tệp từ một bản sửa đổi cụ thể - mercurial
- 2. Mercurial, cách gắn thẻ phiên bản cũ của
- 3. Mercurial - Cách xóa tệp khỏi điều khiển phiên bản?
- 4. Cách lấy danh sách các tệp bị ảnh hưởng từ một bản sửa đổi cụ thể trong Mercurial
- 5. Lấy cơ sở dữ liệu của tôi trong Phiên bản điều khiển bằng cách sử dụng DVCS [Mercurial]
- 6. Làm cách nào để kiểm tra phiên bản cụ thể của một tệp trong Git?
- 7. Cách lấy phiên bản Apache
- 8. Hg - Tìm các thẻ "che" phiên bản tệp cụ thể
- 9. Có thể lấy số phiên bản từ tệp XAP
- 10. Dòng lệnh Mercurial: Làm thế nào để hiển thị các thay đổi của một phiên bản cụ thể?
- 11. Mercurial cách tạo bản vá cho một tệp trong repo
- 12. Làm cách nào để lấy phiên bản từ tệp gemspec?
- 13. cách lấy phiên bản css
- 14. Phiên bản của Mercurial có vấn đề gì không?
- 15. Maven phiên bản cụ thể của phụ thuộc ảnh chụp
- 16. nhắm mục tiêu phiên bản frawework cụ thể trong csc.exe
- 17. NuGet packages.config và phiên bản cụ thể
- 18. Cách lấy bản sửa đổi cụ thể của tệp mới được thêm từ CVS qua dòng lệnh?
- 19. Cách cài đặt phiên bản gói cụ thể bằng pip?
- 20. git - nhận TẤT CẢ phiên bản trước của một tệp/thư mục cụ thể
- 21. Làm cách nào để chuyển đổi thành loại cụ thể trong phiên bản chung của TryParse()?
- 22. Cách lấy một dòng cụ thể từ một tệp
- 23. Làm cách nào để cài đặt phiên bản cụ thể của plugin IDEA?
- 24. Kiểm tra phiên bản của tệp trong Ruby trên Windows
- 25. Cấu trúc của các dự án trong điều khiển phiên bản - .NET cụ thể
- 26. TFS Lấy phiên bản mới nhất từ thư mục cụ thể
- 27. Làm cách nào để mở rộng một số từ khóa phiên bản trong Mercurial?
- 28. Cách lấy "Phiên bản Sản phẩm" của Tập tin trong VBScript
- 29. Cách lấy phiên bản thư mục cụ thể từ tfs mà không cần tạo không gian làm việc?
- 30. Mercurial: làm cách nào để hoàn nguyên về bản sửa đổi cụ thể?
Ý anh là gì bởi 'phiên bản đặc biệt'? Bạn có phiên bản cụ thể không? Bạn đang cố gắng thực hiện chính xác bằng cách nhận một phiên bản đặc biệt? – Omnifarious
@Omnifarious: Tôi đã cam kết một phiên bản ổn định của một tệp. Sau đó tiếp tục làm việc trên tập tin nhưng sớm nhận ra tôi cần phiên bản "tốt" cuối cùng. Điều này có thể được thực hiện bằng cách cập nhật trong svn nhưng khi tôi thử cập nhật hg, nó nói "0 tập tin ..." – Codism