2010-07-14 9 views
35

Vì vậy, tôi vô tình bao gồm một tập tin cấu hình (khác nhau cho mỗi máy) vào kho lưu trữ mercurial của chúng tôi.Mercurial - Cách xóa tệp khỏi điều khiển phiên bản?

Làm thế nào tôi có thể nhận được Mercurial không bao gồm nó trong kiểm soát phiên bản? Tôi không muốn xóa tệp vì tôi vẫn muốn. Và tôi không muốn làm cho tập tin bị xóa trên các thư mục làm việc của nhà phát triển khác.

Và làm cách nào để thực hiện điều này trong TortoiseHG?

Trả lời

39

Nhấp chuột phải vào tệp -> TortoiseHG -> Quên tệp. Nhấp vào Quên. Cam kết và đồng bộ hóa.

Chỉnh sửa: Bạn cũng sẽ muốn thêm đường dẫn đến số .hgignore của mình để tránh bị thêm lại. Bạn có thể nhấp chuột phải vào tập tin trong hộp thoại HG Commit và chọn bỏ qua nó.

+0

Cần thêm các bước để thêm tệp cấu hình vào '.ggignore', vì vậy nó không được giới thiệu lại sau này. – sdolan

+1

Tôi đã thử điều này nhưng khi tôi đã đẩy một kho lưu trữ trung tâm, và sau đó đã làm một bản cập nhật trên máy đó, tập tin đã bị xóa. Điều này, không muốn ... – Greg

+0

Greg: Vì bạn đang bỏ qua tệp bây giờ, bạn sẽ cần phải sao chép tệp cấu hình vào đúng vị trí trong mỗi lần kiểm tra lại. – sdolan

2

hg remove hoặc hg remove -f? Tôi nghĩ rằng hg forget cũng sẽ xóa nó khỏi chi nhánh.

Trong cả hai trường hợp, các tệp sẽ được giữ lại trong thư mục của bạn.

+1

'hg quên' chỉ là viết tắt của 'hg remove -Af' (http://stackoverflow.com/questions/1101167/what-is-the-difference-between-hg-forget-and-hg-remove) – Nate

+0

Ngoài ra ... hg xóa mà không có bất kỳ tùy chọn nào sẽ xóa tệp khỏi thư mục cục bộ để không hoạt động trong trường hợp này – Nate

-2

thêm nó vào danh sách bỏ qua của bạn.

Xem tệp .hgignore.

TortoiseHG cung cấp cho bạn quyền truy cập vào tệp cấu hình này thông qua tùy chọn trình đơn "Chỉnh sửa bỏ qua bộ lọc".

27

Đây là cách thủ công để làm việc đó thông qua dòng lệnh:

  1. Sao chép tập tin cấu hình ở đâu đó bên ngoài kho.
  2. Chạy hg rm path/to/config/file
  3. Thêm đường dẫn tệp cấu hình vào .hgignore.
  4. Cam kết kho lưu trữ.
  5. Di chuyển tệp cấu hình về nơi bạn đã có.
  6. Thực hiện hg stat trên kho lưu trữ của bạn để kiểm tra kỹ xem bạn đã làm mọi thứ đúng chưa. (Nó sẽ không hiển thị trong danh sách các tập tin đã sửa đổi/bổ sung).

Sửa:

hg forget là cách tốt nhất để làm điều này.

  1. Run hg forget path/to/config/file
  2. Chỉnh sửa của bạn .hgignore và thêm đường dẫn đến tập tin cấu hình.
  3. hg ci để lưu các thay đổi của bạn.
  4. Chạy hg stat để đảm bảo mọi thứ hoạt động theo kế hoạch.

Xem nates câu trả lời cho cách thực hiện TortoiseHG.

+0

-1? Các bước này sẽ hoạt động tốt, chỉ trong 2 lệnh khác với 'quên'. 'hg forget' làm tương đương với các bước 1,2 và 5 trong một lần chụp. Tôi không biết nó tồn tại cho đến bây giờ, vì vậy tôi đoán cảm ơn vì đã thu hút sự chú ý của tôi, vì nó là một cách hiệu quả hơn để làm điều đó. – sdolan

+0

@Nate: Anh ấy hỏi "Làm thế nào tôi có thể nhận được Mercurial không bao gồm nó trong kiểm soát phiên bản?". Đó là những gì tôi trả lời. Ông bao gồm ở cuối "* Và * làm thế nào để tôi làm điều này trong TortoiseHG?". – sdolan

+0

Nhìn vào nó một lần nữa, bạn nói đúng. Câu hỏi không hỏi làm thế nào để làm điều đó và làm thế nào để làm điều đó trong Tortoisehg. Nếu bạn thực hiện chỉnh sửa (bất kỳ chỉnh sửa nào), tôi sẽ xóa -1 của tôi. Xin lỗi vì điều đó. – Nate

-1

Đối với những người sử dụng SourceTree, có là một lựa chọn Stop Tracking khi bạn nhấp chuột phải một tập tin, nó về cơ bản làm điều tương tự như hg forget hoặc git rm --cache, loại bỏ các tập tin từ repo nhưng không phải từ đĩa cứng.