2011-01-11 32 views
6

Có cách nào để thực hiện svn-checkout từ kho lưu trữ git không?svn-checkout từ kho GIT

Vấn đề là tôi muốn có một kho lưu trữ git được lưu trữ trên một máy chủ và tôi có thể làm việc trong việc sử dụng git bình thường, đẩy và kéo các thay đổi.

Tuy nhiên, có các nhà phát triển, những người không cần phải thực hiện thay đổi trong mã, nhưng họ cần để có thể lấy ảnh chụp nhanh mới nhất của mã nguồn và xây dựng nó trên máy của họ. Những cái gọi là "các nhà phát triển" thực sự muốn sử dụng SVN như một SCM mà họ đã quen thuộc.

Vì vậy, có cách nào để thiết lập kịch bản như vậy không? Hay đây là cách duy nhất có thể - để sử dụng một kho SVN và làm việc với nó bằng cách sử dụng git-svn nếu tôi muốn git cho bản thân mình và SVN cho phần còn lại của đồng nghiệp của tôi?

Cảm ơn!

+0

Điều này khá hữu ích, nhưng than ôi, tôi không biết một điều như vậy. Chỉ có những cách để đi theo hướng khác, như bạn đã đề cập. Tôi tự hỏi nó sẽ làm gì để viết một cái. –

Trả lời

-1

Cảm ơn câu trả lời của bạn, svickDamien! Cả hai đều tốt, nhưng vì tôi không thể chấp nhận cả hai, tôi sẽ làm một số điều trong câu trả lời của riêng tôi.


Vì vậy, về cơ bản, người ta có thể có một kho git với read-only svn-truy cập vào nó. Như Damien đã nói,

làm cho repo chính thức là git một, và tự động đẩy tới repo svn bằng git-svn, với cron hoặc móc sau cam kết.

Một cách khác để có được chỉ đọc truy cập vào mã trong bất kỳ kho là phải có một kho lưu trữ với các ảnh chụp mới nhất của mã nguồn được lưu trữ ở đâu đó trên máy chủ của bạn và có sẵn để tải về.


Nếu có nhu cầu cho một số người dùng thực hiện thay đổi trong mã, cách thích hợp nhất để lưu chúng là cam kết đưa chúng trở lại, bất kể SCM được sử dụng.Trong trường hợp này, nếu người dùng đã thực hiện thay đổi không biết cách cam kết, sẽ có một lập trình viên (chịu trách nhiệm về mã nguồn), người sẽ sẵn sàng xem xét thay đổi và cam kết nó trở lại repo.

4

Nếu bạn muốn thanh toán một kho lưu trữ bằng SVN, bạn phải có một kho lưu trữ SVN, không ngạc nhiên. Nếu không có điều đó, sẽ rất khó để theo dõi những thứ không dịch độc đáo giữa SVN và git (ví dụ: số sửa đổi, các nhánh).

Nhưng những gì bạn đang yêu cầu không thực sự có vẻ giống như một kho lưu trữ, bạn chỉ cần đồng bộ hóa một thư mục. Đối với điều đó, các công cụ khác so với SVN có lẽ phù hợp hơn, ví dụ: rsync. Một khả năng khác là có một bản lưu trữ luôn cập nhật có chứa mã nguồn (ví dụ Github cung cấp mã này).

4

Sử dụng repo SVN qua git-svn để bạn làm việc, nhưng nếu có những người khác thích git, bạn sẽ mất lợi ích khi cộng tác với git. Đó là những gì tôi sử dụng tại nơi làm việc mà SVN là chuẩn thực tế và tôi chỉ thích lệnh của git và hiển thị nhật ký tốt hơn. Chúng tôi chủ yếu sử dụng SVN như một công cụ lưu trữ anyway: không có chi nhánh, và chúng tôi đồng bộ hóa trong cuộc sống thực để cộng tác trên một tài liệu duy nhất.

Một giải pháp khác là làm cho repo chính thức trở thành git, và tự động đẩy tới repo svn nô lệ sử dụng git-svn, với cron hoặc trong móc hậu sau. Điều này có vẻ tốt nhất nếu như bạn nói, người dùng svn sẽ không bao giờ cần phải cam kết.