Kế hoạch chuyển sang Githug - sử dụng Git để quản lý kho codeNăm 2009, Subversion là lựa chọn tối ưu cho NukeViet trong việc quản lý kho code và lúc đó Google code là nơi lưu trữ hợp lý nhất. Tuy nhiên tình hình hiện tại đã khác: NukeViet đã phát triển sang quy mô lớn hơn, SVN đã trở nên lỗi thời còn Git thì ngày càng hoàn thiện, đặc biệt là sự phổ biến và tiện lợi thông qua mạng xã hội Github.
Theo
kế hoạch đã được công bố đầu tháng 10, kho code của NukeViet trên Google code (đang sử dụng Subversion - SVN) sẽ được đóng lại và đội code sẽ chuyển sang sử dụng hệ thống quản lý phiên bản mới là Git trên Github, việc chuyển đổi này bắt đầu từ ngày 25/09/2012 đến ngày 25/10/2012 (ngày phát hành NukeViet 3.4.02).
Tuy nhiên, sau khi nghiên cứu các
tài liệu hỗ trợ của Google code, Ban quản trị thấy có khả năng chuyển đổi toàn vẹn kho code cũ từ SVN sang Git với đầy đủ lịch sử các phiên bản, các nhánh cũng như những lần commit lên kho code.
Đưọc sự giúp đỡ của chuyên gia có kinh nghiệm trong việc sử dụng hệ thống linux là bạn Nguyễn Hà Dương - một thành viên của Hanoilug và UbuntuVN - kho code của NukeViet đã chuyển đổi từ svn sang git thành công bằng công cụ chuyển đổi
svn2git. Toàn bộ các revision cùng các nhánh của dự án đã được giữ lại trọn vẹn. Đặc biệt, kho code của NukeViet khi quản lý bằng SVN có dung lượng tới 118MB, nay chuyển sang git thì chỉ còn khoảng 37MB, như vậy thông tin về việc sử dụng git trong quản lý code giúp giảm mạnh dung lượng kho code (
Kích thước repository thường chỉ bằng 1.5 lần kích thước project nó chứa) là hoàn toàn chính xác.
Trước khi chuyển hẳn sang github, kho code này cũng được đẩy trở lại google code (chuyển sang chế độ quản lý bằng git) để lưu lại đẩy đủ kỷ niệm của NukeViet trên Google code, cũng là đánh dấu một bước ngoặt mới của NukeViet trong quá trình phát triển lực lượng Code Developer. Để đánh giá về ảnh hưởng của Git cũng như Github đối với sự phát triển của lực lượng Coder trong tương lai, chúng ta cùng điểm lại những ưu điểm của Git và Github vốn được đánh giá rất cao trong thời gian gần đây:
Về Git, Blog cộng đồng về CNTT có bài viết của NgocDaoThanh có đoạn đánh giá khá đầy đủ và ngắn gọn như sau: "Trong khi CVS và SVN lấy project làm gốc, từ đó rẽ ra các nhánh là developer, thì Git lấy developer làm gốc, từ đó rẽ ra các nhánh là project. Hai nhánh project gặp nhau có nghĩa hai developer cùng hợp tác để làm cùng project. Ý tưởng của Git rất hợp với ý tưởng của mạng xã hội, đã có nhiều trang web cho phép host project mã nguồn xây dựng theo kiểu mạng xã hội và dựa trên Git để quản lí mã nguồn. Đối với mã nguồn mở, mạng xã hội kiểu này là cột mốc đáng kể, mở ra bước tiến hóa tiếp theo. Đối với mã nguồn đóng trong công ty bình thường, nó cũng mang lại cách phát triển phần mềm tốt hơn, chẳng phải công ty chẳng qua cũng chỉ là một dạng xã hội hay sao!"
Về Github, có một số tổng kết như sau:- Github được coi là phương thức phát triển code mới của dân nguồn mở, là một mạng xã hội coding mà ở đó mỗi thành viên đều là các "nút mạng", họ giữ vai trò trung tâm (chứ không phải kho code). Các kết nối giữa họ hình thành nên các mối liên kết để từ đó giúp cho việc phát triển code không còn bị giới hạn và tập trung trong cái "ao làng".
- Github được đánh giá cao và ưu thích đến mức rất nhiều các công ty lớn trên thế giới đều đặt kho code tại đây: Twiter, Facebook, linkedin... và cả Git cũng có mặt trên github. Mới đây, google cũng hiện diện trên Github.
- Opensource mang tư tưởng mở và mạng xã hội là công cụ để mở ra kết nối với mọi người, ý tưởng về một mạng xã hội dành cho opensource giống như "cho cá gặp nước" vậy. Và Github là một nơi như thế. Github cung cấp một công cụ cho phép mọi người có thể theo đuôi (watching) nhau, người này có thể xem người kia có những project gì, commit cái gì, thay đổi gì... Nếu thấy dự án hay và muốn đóng góp thì ấn nút Fork để copy project có sẵn thành project của mình, rồi sau đó ta có thể tự do chỉnh sửa project đó của mình. Chỉnh sửa xong thì ấn nút Pull Request để gửi cho tác giả gốc. Tác giả gốc có thể duyệt các đóng góp này, nếu cần góp ý gì thì có thể viết góp ý ngay tại yêu cầu đóng góp và gửi lại để người đóng góp chỉnh sửa theo góp ý, nếu thấy đóng góp này ổn thì có thể duyệt đóng góp này, hệ thống sẽ ngay lập tức trộn (merge) các đóng góp đó vào dự án gốc. Để tăng hiệu suất quản lý, toàn bộ công việc chỉnh sửa, xử lý xung đột... trước khi gửi đóng góp lên sẽ do người đóng góp xử lý, do đó góp phần hỗ trợ tối đa cho người quản lý kho code.
Như vậy có thể thấy Github là một công cụ rất thuận tiện để phát triển code, mô hình của Github phát huy tối đa lợi thế của Git do đó NukeViet có quyền hy vọng trong tương lai sẽ thu hút được nhiều hơn sự đóng góp trong việc xây dựng code của các lập trình viên từ các công ty khác, các lập trình viên tự do... mà hiện nay còn chưa được khai phá!
Nếu bạn quan tâm đến việc làm việc với kho code Nukeviet trên Github, hãy truy cập:
- Hướng dẫn sử dụng Git trên github:
http://wiki.nukeviet.vn/programming:vcs:git- Tham khảo
Nguyên tắc quản lý kho code NukeViet trên Github để biết các quy định của NukeViet khi làm việc trên github:
http://wiki.nukeviet.vn/programming:github_ruleChúng tôi sẽ cập nhật liên tục các tài liệu này trong thời gian tới!