2011-11-21 10 views
6

Cửa hàng phần mềm nhỏ của chúng tôi gần đây đã di chuyển từ Subversion sang Git, khi chúng tôi lập trình tìm thấy Git tốt hơn. Việc di chuyển không gây đau, chúng tôi đang gặp sự cố với tính năng phụ mô-đun. Nét chính của tôi là khi một repo chứa submodules, bạn không thể đơn giản sao chép nó và mong đợi mọi thứ hoạt động. Bạn phải thực hiện thêm một bước để bắt đầu và tải xuống các mô-đun con. Các lần kéo tiếp theo phải là update the submodules automatically, do đó, điều đó là ổn. Nhưng khi tôi thêm một mô-đun con mới, đẩy cam kết và mọi người kéo, họ sẽ không tự động nhận được mô-đun con mới, chúng lại phải tự động git submodule update.Làm thế nào để làm cho các mô-đun con Git dễ dàng hơn cho những người không lập trình?

Điều này là ngu ngốc, vì mọi người không thể chỉ đơn giản là kéo một repo với submodules và mong đợi nó để xây dựng. Sự hiểu biết này có đúng không? Các lập trình viên có thể chỉ cần viết một kịch bản hoặc một bí danh để cập nhật các mô-đun con sau khi nhận được các cam kết mới, nhưng đối với các mô-đun con không lập trình viên của chúng ta là một nỗi đau. Tôi muốn đưa ra một giải pháp có thể làm cho repo luôn hoạt động ngay sau khi nhân bản/kéo, bất kể ứng dụng khách Git đã sử dụng.

Tùy chọn của tôi là gì?

+2

Bạn có thể muốn sử dụng lệnh 'git clone --recursive' cho bản sao ban đầu, sẽ xử lý một phần câu hỏi của bạn. –

+0

Cảm ơn, tôi không biết về '--recursive'. Nhưng những người không lập trình của chúng tôi sử dụng một trình khách GUI (hiện là GitBox), đó là lý do tại sao tôi đang tìm một giải pháp khác. Nó sẽ là hoàn hảo để có một hỗ trợ lớp học đầu tiên cho submodules trong GUI, nhưng tôi sẽ không giữ hơi thở của tôi. – zoul

+0

Bạn có chắc chắn đi theo lộ trình con là cách tiếp cận đúng không? Các mô-đun con được cho là các mô-đun độc lập, vì vậy nếu mọi thứ đang phá vỡ mà không có chúng, thì nó không thực sự khép kín. – bluesman

Trả lời

-1

Ngày nay, hỗ trợ mô-đun con tốt hơn nhiều, khiến cho vấn đề gần như không tồn tại.

  • GitBox nhận được hỗ trợ submodule tốt.

  • SourceTree by Atlassian là ứng dụng khách Git miễn phí đã thêm hỗ trợ môđun con trong 1.3. Có a small glitch trong xử lý submodule trong 1.3.1, nhưng nếu không khách hàng dường như bao gồm tất cả các trường hợp sử dụng submodule mà tôi muốn - đó là, nó làm cho submodules thực tế minh bạch cho người không lập trình.

  • Git Tower cũng có vẻ như support submodules rất độc đáo kể từ 1.4.

+2

Lưu ý rằng cả hai công cụ chỉ có sẵn cho Mac – Yogu

+2

Và không có công cụ nào trong số đó dường như là nguồn mở. – firegurafiku

0

Tôi rất muốn giới thiệu git-slave nếu bạn dự định sử dụng nhiều mô-đun con đặc biệt nếu bạn định tham khảo "thư viện chung". Mặc dù, các mô-đun con xương trần không phải là khó để có được tốc độ nếu tập trung trên một vài giờ với một số thí nghiệm để đi qua một loạt các kịch bản.

Tôi cũng khuyên bạn nên sử dụng một số máy chủ CI để tạo các bản dựng cho bạn. Nó sẽ lấy tất cả các submodules cần thiết. Bạn có thể tạo tất cả các tạo phẩm (bạn quyết định những gì bạn muốn những thứ đó) có sẵn thông qua một tệp zip có thể tải xuống. Tôi sử dụng TeamCity và đây là một cách tuyệt vời để phơi bày mọi thứ mà không cần sử dụng bất kỳ VCS nào.

+0

Cảm ơn bạn, tôi không biết Git Slave. Tôi e rằng nó sẽ không hoạt động với khách hàng Git đồ họa, điều này là điều bắt buộc đối với chúng tôi (và cũng có chi phí thêm giải pháp của bên thứ ba vào danh sách kết hợp). Tôi nghĩ về một máy chủ CI và cuối cùng chúng ta có thể đến đó, vì nó xử lý một phần lớn các trường hợp sử dụng.Nhưng những người không lập trình vẫn cần truy cập lớp đầu tiên vào repo bằng cách sử dụng một trình khách GUI, vì vậy tôi cần phải giải quyết vấn đề này. Hội thảo CLI + Git không phải là một lựa chọn, thật không may. – zoul

+0

Chúng tôi hy vọng sẽ sớm thấy một giao diện dựa trên GUI hợp lý thành các mô-đun con. –