2010-01-12 34 views
5

Là một nhà phát triển tự do, tôi muốn giữ tất cả sự phát triển của mình trong máy chủ SVN của riêng tôi cho cả tích hợp liên tục cũng như giữ sách như những thay đổi được thực hiện và khi nào.Giữ mã trong nhiều máy chủ SVN

Tôi hiện đang làm việc với một khách hàng cũng sử dụng SVN nội bộ và rõ ràng sẽ như tôi làm việc với nhóm phát triển của họ trên máy chủ SVN của họ.

Điều này thật tuyệt vời, nhưng nó cũng sẽ khiến tôi từ bỏ thực tiễn làm việc của mình về dự án này và mất phương pháp giữ sách nội bộ của tôi. Nếu điều này xảy ra rất nhiều, sau đó tôi sẽ kết thúc với tiêu chuẩn làm việc khá lỏng lẻo - cuối cùng thay đổi theo dự án (mà tôi rõ ràng là không muốn).

Có cách nào sáng tạo để tận dụng tối đa cả hai thế giới và có mã tồn tại trên cam kết trong cả hai máy chủ SVN? Tôi không quan tâm thêm một chút công việc hoặc lên phía trước hoặc trên mỗi cam kết/cập nhật để kéo nó đi.

svnsync trông giống như một lựa chọn tốt. Có ai đã thử điều này? Có ai có đề xuất khác?

Trả lời

2

Tôi không chắc vấn đề là gì. Bạn sử dụng một URL SVN khác, nhưng mọi thứ khác đều giống nhau. Bạn có ý nghĩa gì với việc "giữ sách"?

Có thể nó sẽ làm cho người sở hữu mã - nếu đó là họ, họ có mọi quyền yêu cầu bạn sử dụng hệ thống kiểm soát phiên bản của họ. Và, vì có vẻ như bạn đang làm việc với một nhóm phát triển, họ có bạn đông hơn.

Bởi vì có những nhà phát triển khác có liên quan, bạn rõ ràng phải làm việc bên ngoài kho của họ để đảm bảo bạn luôn có mã mới nhất và do đó tránh xung đột vv

Nếu bạn lo lắng về việc giữ một bản sao của mã (giả sử đó là hợp pháp), có rất nhiều cách để đạt được điều đó, ví dụ, định kỳ xuất thư mục làm việc trỏ đến máy chủ của họ đến một thư mục làm việc khác trên máy của bạn trỏ đến máy chủ của bạn và cam kết.

1

Bạn có thể định kỳ (hàng tuần?) Svndump lưu trữ khách hàng của bạn và nhập vào máy chủ của riêng bạn để bạn có thể thực hiện phân tích cho mục đích thanh toán hoặc khác.

Vấn đề duy nhất tôi có thể nghĩ đến sau đó là mức độ hài lòng của khách hàng đối với bạn để thực hiện việc này.

0

Chắc chắn hệ thống kiểm soát phiên bản hỗ trợ việc chia sẻ và quản lý mã. Nếu bạn đang sử dụng hai kho lưu trữ, mọi thứ sẽ rất lộn xộn, rất nhanh chóng. Tôi có thể nhìn thấy dòng chảy và sử dụng bất cứ điều gì công ty cũng yêu cầu bạn

1

Tôi có thể thấy hai cách tiếp cận khác nhau ở đây, hoặc bạn tiếp tục làm việc trong kho lưu trữ của bạn và sau đó thực hiện theo cách thủ công. par. Cách tiếp cận khác sẽ là xem xét các móc nối svn commit - tức là các kịch bản chạy bất cứ khi nào một cam kết được thực hiện. Từ một kịch bản như vậy, tôi cho rằng bạn có thể dễ dàng thực hiện cùng một cam kết với một kho lưu trữ khác.

Tôi giả định rằng hợp đồng của bạn cho phép bạn giữ mã cho chính mình, nếu không bạn sẽ phải làm bất cứ điều gì khách hàng của bạn cho bạn biết mã.

0

Nếu bạn chỉ muốn liệt kê những thay đổi bạn đã thực hiện trong Subversion (tôi đoán, # cam kết mỗi tuần, danh sách sự cố đã được khắc phục ...), bạn có thể viết một ứng dụng Java đơn giản truy vấn bất kỳ nào Kho lưu trữ Subversion cho các thay đổi của bạn. Sau đó, nó chỉ là một câu hỏi về việc trỏ ứng dụng của bạn đến đúng kho lưu trữ.

Có một vài thư viện Subversion dễ sử dụng và tôi không có vấn đề cụ thể với SvnKit.

0

Sử dụng kho lưu trữ của khách hàng

Một giải pháp sẽ được chỉ cần sử dụng kho lưu trữ của khách hàng trực tiếp. Bất kỳ "công cụ" nào khác không thuộc về đó, có liên quan đến việc lưu trữ sách của bạn, chẳng hạn như quản lý dự án, chấm công, v.v., có thể đi vào kho lưu trữ cục bộ của bạn. Bạn sẽ giữ hai riêng biệt, với hai bản sao làm việc riêng biệt, mặc dù bạn có thể thiết lập một svn:external trong kho lưu trữ cục bộ của bạn trỏ đến kho lưu trữ của ứng dụng khách nếu bạn muốn nhận được một chút khó khăn.

Điều đó sẽ hoạt động miễn là cả bạn và khách hàng đều hài lòng với mức độ cam kết của bạn. Bạn cũng có thể xem xét làm việc trong một chi nhánh trong kho lưu trữ của khách hàng của bạn, và sáp nhập vào thân cây khi bạn hài lòng với công việc của mình. Nó cũng có lợi thế (cho khách hàng của bạn) rằng khách hàng có một back-up của tất cả các công việc của bạn trong tiến bộ, mà họ có thể thích.

git với hội nhập Subversion

Một giải pháp khác có thể được sử dụng git tại địa phương, và tận dụng ability to work with Subversion của nó. Bạn có thể giữ cho công việc của bạn trong tiến trình trong một chi nhánh địa phương nhẹ.

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