2010-11-19 29 views
11

Tôi có một dự án mà tôi đang sử dụng Bitbucket làm máy chủ HG của mình, nhưng gần đây tôi đã phát hiện ra rằng với tư cách là một nhà phát triển đơn lẻ, tôi có thể sử dụng Fogbugz/Kiln miễn phí. Tôi muốn chuyển các tệp của mình sang Kiln nhưng tôi không muốn mất lịch sử của mình. Tôi chắc chắn có một cách dễ dàng chết người ngu ngốc để làm điều đó, nhưng tôi chỉ không biết. Làm thế nào để tôi làm điều này?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?

Cảm ơn!

Trả lời

11

Tạo repo dự án mới và làm như sau với bản hiện tại của bạn của repo gốc: hg push new-repo-path.

Sau đó, bạn sử dụng đường dẫn mới trong tương lai. Bạn có thể xóa repo bitbucket.

Với Mercurial, tất cả lịch sử nằm trong mọi bản sao của kho lưu trữ, kể cả các bản sao cục bộ của bạn.

+0

ok mát mẻ ... sau đó sau khi tôi đẩy, tôi sao chép từ con đường repo mới để tương lai đẩy chuyển hướng đó? – Jason

+0

@ Không có - bạn chỉ có thể chỉnh sửa '.hg/hgrc' và cập nhật đường dẫn của kho lưu trữ mặc định. Bất kỳ Repo Mercurial nào cũng có thể đẩy/kéo tới bất kỳ bản sao nào khác của cùng một kho lưu trữ mà không có vấn đề gì và không có gì khác ngoài '.hg/hgrc' ràng buộc một kho lưu trữ với nguồn gốc của nó. –

3

Vì bạn đã sử dụng Mercurial. Tôi chỉ tò mò, không nên nhân bản kho lưu trữ của bạn trên Fogbugz/Kiln là đủ.

hg clone "BitBucket Repo ..." 

Tất nhiên, điều này sẽ không sao chép tệp hgrc của mỗi kho lưu trữ của bạn. Bạn sẽ cần phải làm điều đó một cách riêng biệt.

Cách tiếp cận khác là sử dụng gói.

hg bundle --all bitbucket.bundle 
hg clone bitbucket.bundle my_repo 

Cách tiếp cận thứ ba là đẩy hoặc kéo từ repo bitbucket đến fogbugz repo.

Thiết mặc định

Xem: https://www.mercurial-scm.org/wiki/TipsAndTricks.

Tái tạo nó ở đây:

Có thể lưu trữ một URL push mặc định sẽ được sử dụng khi bạn gõ chỉ 'hg push'. Sửa HGRC và thêm một cái gì đó như:

[paths] 
default-push = ssh://[email protected]/path 
+0

tôi nghĩ về việc nhân bản repo của mình, nhưng tôi muốn chắc chắn rằng khi tôi 'hg push', nó sẽ chuyển đến repo fogbugz mới thay vì bitbucket – Jason

+0

@Jason: Bạn nên thực hiện bằng cách đặt mặc định. Xem câu trả lời đã chỉnh sửa của tôi. – pyfunc

0

Các câu trả lời khác đã giải thích rằng ngay sau khi tạo một kho lưu trữ trống mới, bạn có thể đẩy các thay đổi của bạn vào đó với hg push http://example.com/hg/newrepo. (Lưu ý rằng khi bạn đã đẩy một số thay đổi vào nó, nó sẽ chỉ chấp nhận các thay đổi từ các kho có liên quan trong tương lai.)

Điều bạn dường như cũng băn khoăn là làm thế nào để cấu hình kho lưu trữ cục bộ của bạn để đẩy đến đó theo mặc định, không cần chỉ định URL mỗi lần. Bạn có thể làm điều đó bằng cách chỉnh sửa default location trong tệp .hg\hgrc của kho lưu trữ của bạn. Nó là một tập tin văn bản mà bạn có thể mở bằng notepad hoặc bất kỳ trình soạn thảo văn bản nào khác.

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