2012-01-03 36 views
11

Trong một dự án khá lớn, tôi muốn đặt cùng một tệp (hoặc thư mục) ở các vị trí khác nhau. Khi nó được thay đổi ở một vị trí, các thay đổi cần được truyền đi. Trong Subversion, tôi có thể sử dụng các phần tử bên ngoài để đạt được hành vi này.Theo dõi các liên kết cứng hoặc tượng trưng bằng thủy ngân trên Windows

Tôi đã cố gắng giải quyết vấn đề này bằng cách sử dụng liên kết cứng và liên kết tượng trưng, ​​nhưng Mercurial dường như không theo dõi bất kỳ liên kết nào. Thay vào đó, nó cam kết nội dung của các tệp vào kho lưu trữ của nó thay vì thuộc tính liên kết. Khi tôi sao chép kho lưu trữ, thông tin bị mất.

Đây có phải là hành vi dành riêng cho Windows của Mercurial hoặc không thể theo dõi liên kết? Có cách nào khác để theo dõi một tệp có thể truy cập từ các vị trí khác nhau trong Mercurial không?

Trả lời

15

Mercurial có thể theo dõi các liên kết tượng trưng, ​​nhưng chúng trông lạ khi được kiểm tra trên Windows. Điều xảy ra là Mercurial tạo tệp có mục tiêu liên kết làm tệp nội dung. Rất tiếc, không hỗ trợ tạo liên kết tượng trưng thực sự trên các hệ thống Windows hỗ trợ chúng, chẳng hạn như Windows Vista. Kết quả của việc này là bạn không thể sử dụng các liên kết tượng trưng trong một kho lưu trữ được cho là có thể di chuyển giữa hai hệ thống. Vui lòng see the discussion in Issue1825 để biết thêm về tính năng này.

Trận đấu gần nhất cho svn:externalsMercurial subrepositories. Tùy thuộc vào cách bạn sử dụng svn:externals, subrepos có thể hoặc không thể là những gì bạn muốn. Vui lòng see my answer đến một câu hỏi khác về subrepos để được tư vấn. Tôi đã viết một phần của mã cho subrepos và ra khỏi đỉnh đầu của tôi, tôi nghĩ rằng gắn một subrepo nhiều lần trong cùng một kho lưu trữ chính giống như một công thức cho sự nhầm lẫn. Nhưng có lẽ bạn có thể làm cho nó hoạt động - chỉ cần lưu ý rằng subrepos là một phần phức tạp của Mercurial.

+2

Nhưng NTFS không hỗ trợ liên kết tượng trưng từ Windows Vista. – fschoenm

+0

Phải, tôi đã quên rằng Windows gần đây đã thêm hỗ trợ symlink. Chúng tôi không có hỗ trợ cho việc tạo ra chúng, thật không may. [Issue1825] (http://mercurial.selenic.com/bts/issue1825) có liên quan đến điều này. –

+0

Gần đây? Vista đã được phát hành cách đây 5 năm;) – fschoenm

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