2011-08-10 24 views
5

Dưới đây là những gì tôi muốn làm trong khái niệm:Sử dụng git để phát hành để Node.js

"Hook" Node.js đến một kho Git đặc biệt để tôi có thể thực hiện một yêu cầu như/84de7e8d8ce33/foo và máy chủ sẽ (nếu cần) kiểm tra cam kết 84de7e8d8ce33, khởi động một node.js khác trên các tệp mà nó vừa kiểm tra và chuyển "/ foo" đến máy chủ mới đó. Tất nhiên, các máy chủ chính theo dõi mà cam kết nó đã biết về.

Về cơ bản, tôi chỉ cố gắng để đơn giản hóa quá trình phát hành của chúng tôi, vì vậy cùng một máy chủ mà không được Git ma thuật trên cũng sẽ đóng vai trò một file index.html-như thế bao gồm gần như hoàn toàn của

<script src="/84de7e8d8ce33/app.js"></script> 

My câu hỏi:

  1. Ý tưởng này tồi đến mức nào?
  2. Có một số nghệ thuật trước đây, một số thư viện hoặc khung công tác đã thực hiện việc này không?
  3. Có cách nào khác không? Một số cách mà tôi có một nhánh phát hành, cho node.js biết những gì cam kết sử dụng và để nó đi.
  4. Có một số cách tích hợp giữ nhiều cam kết "đã đăng xuất" (hoặc ít nhất là hiển thị dưới dạng tệp thông thường trong một số thời trang) cùng một lúc không?

(Tôi có một câu hỏi về cách giao tiếp, từ tôi, với tư cách là người quản lý phát hành, đến máy chủ thực tế là 84de7e8d8ce33 hiện là phiên bản trực tiếp ngay bây giờ, tôi nghĩ, memcached, nhưng tôi đang mở cho các đề xuất khác.)

+1

Bạn có thể tìm thấy [Git.js] (https://github.com/danlucraft/git.js), một triển khai Git trong JavaScript, hữu ích cho công việc của bạn. –

Trả lời

3

Dường như đó không phải là ý tưởng tồi. đầu tiên tôi sẽ cố gắng sử dụng https://github.com/libgit2/node-gitteh

Bên cạnh đó có một cái tên dễ thương, nó

  • nên nhanh hơn bắn phá ra git
  • có một API javascripty

tôi sẽ chạy nó trong một quá trình riêng biệt từ máy chủ web, sử dụng nút-redis và/hoặc dnode để giao tiếp.

Chỉnh sửa: Tôi tìm thấy the docs, được liệt kê ở cuối README. Không cho đến sau khi tôi nhìn vào một ví dụ và chơi với nó trong nút repl, mặc dù! Nó khá là đẹp. Tôi đã có thể poke xung quanh và nhận được một blob ra khỏi repo của tôi. Ngoài ra nó hoạt động trên .git, không phải là cây làm việc, vì vậy bạn có thể có nhiều cam kết có thể mà không cần nhiều bản sao của repo.

+0

Tôi chấp nhận câu trả lời này, nhưng tôi muốn chỉ ra rằng "Nó không có vẻ điên rồ" với một người * đã không * nói bất cứ điều gì dọc theo dòng "Điều đó nghe có vẻ điên khùng?" có thể khiến ai đó có chút lo lắng. – Malvolio

+0

Rất tiếc. s/crazy/ý tưởng tồi /. Tôi không có ý định trộn chúng lại. Tôi nghĩ đó là bởi vì tôi đã sử dụng sai và xung quanh những người khác đã lạm dụng từ * điên * rất nhiều. Tôi rất vui vì không phải ai cũng có từ ngữ quá nhẹ nhàng! –

+0

Một người bạn của tôi sắp xếp tuần trăng mật của mình trên một hòn đảo Caribbean nhỏ bé. Điều cuối cùng mà đại lý du lịch nói với anh là, "Và đừng lo, không có vấn đề gì với điện." Không ngạc nhiên, sức mạnh đã hết cả tuần họ ở đó. Mọi người bảo tôi ra khỏi màu xanh "ồ không, bạn không điên." và tôi bắt đầu nghĩ ... – Malvolio

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