2011-09-30 17 views
14

Một công ty đã yêu cầu tôi lập trình trình bao bọc GIT cho họ.là có API cho GIT (C++ hoặc các ngôn ngữ khác)

Những người có hệ thống phiên bản tuyệt đối không có kinh nghiệm, nhưng nó sẽ được kết hợp trong thói quen hàng ngày của họ cuối cùng (thông qua chương trình của tôi).

Tôi đang lập kế hoạch sử dụng VC++ để tạo một cửa sổ nhỏ nhỏ gọn sẽ giúp ppl trong quá trình này. Bất kỳ suy nghĩ về điều đó?

Còn quy trình Deamon kiểm tra xem mọi người có muốn cam kết/đẩy tệp của họ không?

+8

mục đích của trình bao bọc là git và * các công cụ * git khác không thể xử lý? –

+3

Giả sử bạn cần hệ thống bao bọc, bạn chỉ có thể gọi git trực tiếp từ chương trình của bạn bằng cách sử dụng các đối số thích hợp. – mwd

Trả lời

21

Đối với hầu hết (nhưng không phải tất cả!) Trường hợp sử dụng, libgit2 là cách dễ nhất để tương tác với kho Git thông qua mã.

+0

Điều này có vẻ tốt ... Tôi đã tự hỏi khi tôi xem libgit2 nếu có một ràng buộc C + + mà không yêu cầu Qt ... Có vẻ như không có quảng cáo trên trang web được cung cấp. Tôi lưu ý OP muốn VC + +: Hình như một người nào khác đã có một vấn đề với VS2010 C + + nhưng nó đã được giải quyết trong bài đăng SO này: http://stackoverflow.com/questions/14860814/qt-creator-unresolved-external-symbol – rholmes

5

Đã có TortoiseGit, trong số các giao diện "thân thiện" khác. Đừng tái phát minh ra bánh xe, hãy bắt đầu bằng cách nghiên cứu những gì đã có sẵn.

+0

Và tất nhiên, nó là mã nguồn mở, vì vậy ngay cả khi nó không phải là những gì bạn muốn, nó có lẽ là rất gần hơn không có gì. – Cascabel

+1

Anh ấy yêu cầu gói các tính năng git chứ không phải giao diện. Ví dụ, nếu bạn muốn thực hiện các tính năng cộng tác trong một phần mềm, bạn sẽ cần một thư viện. Tôi biết về Grit trong Ruby nhưng không có điều gì cho C/C++. – Michael

+2

@ user626921: Câu hỏi của anh ta nói rõ rằng mục tiêu của anh ấy là cung cấp cho người dùng giao diện. Kế hoạch hiện tại của anh ta là viết một cái, nhưng tôi đề xuất một cách tiếp cận có chi phí thấp hơn là tùy chỉnh một phương pháp đã tồn tại. –

11

Git đã có hai lớp: Đường ống dẫn nước (mà bạn có thể quan tâm) trên đầu trang được xây dựng bằng sứ chính cung cấp giao diện người dùng. Nếu bạn muốn triển khai một cái gì đó như git-commit nhưng với ngữ nghĩa hơi khác nhau, tất cả các chương trình cơ bản như git-write-treegit-rev-parse đều có sẵn để bạn xây dựng.

Xem thêm What does the term "porcelain" mean in Git?

+0

cảm ơn bạn rất nhiều. chính xác là tôi đang tìm kiếm – Draconar

+0

Đồ sứ rất linh hoạt của Git thật tuyệt vời. Nếu bạn không kết nối với GUI, bạn có thể thử một cách tiếp cận kịch bản đơn giản thông qua một ngôn ngữ yêu thích (Ruby, Python, Perl, hoặc bash-like shell ngay cả). Tôi đã nhìn thấy những người được sử dụng để có hiệu lực tốt với các hệ thống DVCS, nhưng nó có thể được khó khăn trên những người không nắm lấy dòng lệnh. Việc thêm các lệnh bí danh trong Git cũng có thể đi rất xa, nhưng bạn cần có khả năng phân phối chúng ra cơ sở người dùng của bạn (không quá khó, nhiều tùy chọn) – rholmes

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