Làm cách nào để chuyển đổi kho lưu trữ git sang thương mại?


104

Tôi đang phát triển một ứng dụng java sử dụng git làm kho lưu trữ mã nguồn. Tôi muốn chia sẻ dự án với các nhà phát triển java khác và hg dường như được họ sử dụng nhiều nhất.

Câu hỏi của tôi là làm cách nào để chuyển đổi kho lưu trữ git sang hg?

Nếu tôi đã thử googling "chuyển đổi git sang hg" và mọi lượt truy cập tìm kiếm là chuyển đổi từ hg sang git. Tôi cũng đang sử dụng TortoiseHg .


16
Nếu bạn cần phải chuyển đổi từ đồng bóng để git thay vì: stackoverflow.com/questions/883452/...
Christian Oudard

Đoạn cuối đó không có ý nghĩa. Một lỗi đánh máy?
tshepang

1
@Tshepang: Tôi muốn "git -> hg" nhưng lại có "hg -> git". Tôi sẽ chỉnh sửa câu hỏi này nhưng tôi đoán mọi người vẫn hiểu vì bây giờ đã có câu trả lời.
Spoike

Câu trả lời:


79

Các hg converttiện ích không được bật theo mặc định sau khi cài đặt. Để đặt nó như vậy, hãy thêm phần sau vào .hgrctệp của bạn .

[extensions]
hgext.convert=

Nếu bạn đang sử dụng TortoiseHg trên Windows thì tệp này sẽ nằm trong thư mục chính của bạn dưới dạng mercurial.ini. Sau khi thay đổi cài đặt này, bạn sẽ có thể sử dụng hg converttiện ích.


5
Trên Ubuntu sự thay đổi rộng hệ thống có thể được thực hiện tại / etc / lanh / HGRC
sanh

1
Trên Windows, sử dụng TortoiseHg, nó có thể được kích hoạt bằng cách sử dụng mục menu Cài đặt chung từ menu tiện ích mở rộng shell TortoiseHg trong phần Tiện ích mở rộng trong Cài đặt chung.
Umar Farooq Khawaja

Mô tả hơi không đầy đủ vì nó không chỉ rõ rằng hg sẽ cần quyền truy cập vào git để chuyển đổi hoặc nếu không bạn sẽ gặp lỗi "không thể tìm thấy công cụ git" được yêu cầu ".
jmd

41

Bằng cách sử dụng tiện ích mở rộng Mercurial Convert

Thêm các dòng sau vào của bạn .hgrchoặc để bật tiện ích mở rộng:

[extensions]
hgext.convert=

Và gõ một

cd src
hg convert --datesort . dst

(mặc dù nó có thể dẫn đến một số vấn đề ...)

Lưu ý :: metrix báo cáo rằng điều này có thể không hoạt động:

     hg convert --datesort src dst

Lưu ý: sẽ xảy ra lỗi vớihg convert nếu bạn thực hiện lệnh này từ một thư mục khác với thư mục nguồn.
Bạn sẽ gặp lỗi sau:

abort: cannot read tags from git-repo4/.git

Đã xác nhận với git 1.7.9 và Mercurial 2.6.2 trên Windows XP


Nếu câu trả lời đó bao gồm .hgrcthiết lập thay vì liên kết với nó thì nó sẽ là toàn diện.
fbmd

17

Bạn có thể muốn xem tại http://hg-git.github.com/ tiện ích: một plugin Git cho Mercurial

Plugin này ban đầu được phát triển bởi những người của GitHub và cho phép chuyển đổi từ git <-> một cách dễ dàng. Về lý thuyết, bạn thậm chí có thể sao chép kho lưu trữ hg.


2
Đây là một giải pháp tốt hơn là chuyển đổi kho lưu trữ. Nó cũng sẽ là một câu trả lời tốt hơn, nếu nó có nhiều chi tiết hơn. Câu trả lời một dòng là vô ích.
naught101

1
@ naught101, cảm ơn vì đề xuất, tôi đã thêm một số thông tin khác ở đây để đọc trực tiếp.
vdboor

sau khi bạn cài đặt và thiết lập hg-git, hãy sử dụng hg gexport & hg gimport để chuyển đổi giữa chúng.
CAD bloke


6

Tiện ích mở rộng chuyển đổi có thể phù hợp với bạn, nhưng nếu không, bạn có thể muốn kiểm tra tùy chỉnh , đây là một công cụ mục đích chung để chuyển đổi giữa các SCM được phân phối khác nhau.


2

Bạn hoàn toàn không thể chuyển đổi nó. Chỉ cần sử dụng plugin Hg-Git ! Không ai sẽ biết sự khác biệt.


2

Người chơi mới trong thị trấn: git-remote-hg . Nó cung cấp hỗ trợ bắc cầu bản địa trong git.

Chỉ:

hg init ../hgrepo
git push hg::$PWD/../hgrepo

1

Trong Gitthư mục chứa tất cả các kho lưu trữ Git của tôi, tôi đã tạo Git2Hg.cmdtệp với nội dung sau:

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

Bây giờ tôi có thể chuyển đổi kho lưu trữ Git thành Hg bằng cách nhập vào CMD:

Git2Hg "Folder Name"

0

Plugin Hg-Git hoặc nếu bạn sử dụng cho các cửa sổ hoặc di chuyển từ cửa sổ này sang cửa sổ khác, hãy truy cập vào đây 2 [Windows GIT]

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.