2010-06-22 8 views
18

Tôi hiện đang làm việc trên một số dự án của riêng mình (ít nhất là phần phát triển chỉ được thực hiện bởi tôi :). Sử dụng Eclipse với các tệp Java, R, SQL và các tệp nguồn khác nhau, tôi tự hỏi hệ thống điều khiển phiên bản nào là tốt nhất cho tôi.kiểm soát phiên bản cho dự án một người bằng nhật thực?

Đồng thời lịch sử của Eclipse IDE có vẻ là đủ, nhưng tôi không chắc chắn nếu điều này sẽ thành sự thật trong một tháng/năm ...

giải pháp gì bạn muốn giới thiệu và tại sao?

Để chính xác hơn: Tôi khá chắc chắn sẽ sử dụng SVN hoặc git nếu tôi quyết định sử dụng hệ thống kiểm soát phiên bản đầy đủ. Nhưng tôi chỉ không chắc chắn nếu nó là cần thiết ...

small update: has the release of Eclipse Helios added new opinions? 
+1

Để chính xác hơn: Tôi khá chắc chắn để sử dụng SVN hoặc git _if_ Tôi quyết định sử dụng một hệ thống kiểm soát phiên bản đầy đủ. Nhưng tôi chỉ không chắc chắn nếu nó là cần thiết ... – FloE

+1

Bạn có thể chỉnh sửa câu hỏi của riêng bạn =) –

+0

đúng - cảm ơn cho tip (Tôi vẫn còn mới ở đây) – FloE

Trả lời

9

a/It is necessary to have a VCS

b/CVCS and DVCS are quite different

c/Eclipse hiện đang moving all its project to Git (và là improving on EGit), do đó Git sẽ là mục tiêu VCS trên Eclipse.

+0

đặc biệt là a và c là các đối số thực sự tốt (tại sao tôi không thể tìm thấy địa điểm đầu tiên? ...) – FloE

+0

+1 - đây là loại điều mà OP thực sự muốn biết. –

+0

@ FloE: tốt, đó là một liên kết cũ, và tôi đã theo dõi chủ đề VCS trong một thời gian dài trên SO;) – VonC

6

Git, bởi vì bạn có thể bắt đầu ngay lập tức và không cần một máy chủ lưu trữ trung ương.

Một số ưu điểm khác (so với SCM khác):

  • Ít lộn xộn hệ thống tập tin: Git chỉ tạo ra một thư mục tại thư mục gốc của kho (không giống như ví dụ SVN).
  • Không ảnh hưởng nhiều đến chức năng xử lý tệp "bình thường". Ví dụ. trong SVN bạn cần sử dụng lệnh tùy chỉnh để đổi tên hoặc di chuyển tệp. Đó không phải là trường hợp của Git.

Tôi có cảm giác Git rất nhẹ, vì vậy không có lý do gì để chờ cho đến khi dự án của bạn đủ lớn hoặc bất kỳ thứ gì.

+0

điều này có thể đưa ra quyết định đối với git – FloE

2

Theo như tôi hiểu, đó chỉ là câu hỏi về hệ thống kiểm soát phiên bản bạn thích nhất.

Nhưng hệ thống hiệu suất cao nhất có thể là git mà tôi nghĩ. http://www.eclipse.org/egit/ cho plugin eclipse :)

Tôi khuyên bạn nên sử dụng hệ thống kiểm soát phiên bản. Ngay cả trong các dự án nhỏ, bạn sẽ đến rất nhanh đến mức một giải pháp trước đó có lẽ sẽ tốt hơn. Nếu không có một hệ thống điều khiển phiên bản, bạn sẽ thực hiện các thay đổi hoàn nguyên hoặc hoàn nguyên về các phiên bản trước (tốt, đó là một trong những lợi thế lớn của các hệ thống này, phải không?;)).

15

Tôi muốn đề xuất khá nhiều bất kỳ hệ thống kiểm soát phiên bản được phân phối nào. Tôi đã sử dụng githg trong sự tức giận và được poked tại fossil (Tôi bao gồm nó bởi vì nó cung cấp một số tính năng mà thiếu githg). Tôi sẽ chia nhỏ những ưu điểm và nhược điểm chính trong mắt tôi (LƯU Ý: nếu tất cả chúng đều có cùng lợi thế thì tôi sẽ không đề cập đến nó, ví dụ:, Tất cả họ đang nhanh chóng và nhẹ):

  • git
    • Ưu
      • Rất linh hoạt
      • GitHub
    • Nhược điểm
      • đường cong học tập dốc
      • linh hoạt hơn
      • tích hợp Eclipse là què lần cuối cùng tôi nhìn
  • hg
    • Ưu lệnh
      • (IMO) phù hợp hơn
      • Ít linh hoạt
      • BitBucket
    • Nhược điểm
      • Ít linh hoạt
      • Không có khá nhiều đà như git
    • Hãy cẩn thận
      • tôi đã không kiểm tra trên Eclipse hỗ trợ gần đây; nó đã từng là tốt hơn so với git 's, nhưng có vẻ khá trì trệ
  • fossil (từ chối trách nhiệm: Tôi đã không được sử dụng này trong sự tức giận)
    • Ưu
      • Viết bởi người đàn ông đằng sau SQLite, vì vậy bạn có thể khá chắc chắn đó là SOLID
      • Cung cấp nhiều hơn chỉ kiểm soát phiên bản, vd, Một lỗi tracker phân phối
      • dễ dàng để thiết lập cho người khác truy cập
    • Nhược điểm
      • Không gần càng nhiều đà như git hoặc hg
      • Tôi khá chắc chắn tích hợp Eclipse cho fossil được không tồn tại (đó là lần cuối cùng tôi nhìn)
      • Không có lưu trữ miễn phí mà tôi biết về song song GitHub hoặc BitBucket, vì vậy bạn thực sự phải lưu trữ bản repo của mình

Có DVCSs khác ra khỏi đó, đáng chú ý bao gồm darcsbzr, nhưng tôi đã không sử dụng chúng đủ để có một ý kiến ​​đáng giá trên chúng.

+0

So sánh tốt đẹp! Tôi nghĩ rằng hội nhập git trưởng thành trong thời gian qua. – FloE

+0

EGit là tốt hơn so với trước đây, nhưng vẫn không được tích hợp tốt như svn vào hệ sinh thái eclipse, hy vọng nó sẽ cải thiện thêm –

+0

Bạn nói rằng 'git' có một đường cong học tập dốc, nhưng tôi thấy nó không phức tạp chút nào . Cuốn sách trực tuyến miễn phí về 'git' tại đây: http://progit.org/book/ – Jesper

2

Nhận xét của bạn khiến câu hỏi có vẻ như câu hỏi thực sự của bạn là liệu bạn có thực sự cần sử dụng kiểm soát phiên bản hay không, vì đó là dự án một người.

Mất rất ít thời gian để thiết lập và sử dụng git hoặc mercurial. Cứ làm đi. Nếu bạn không cần nó, bạn đã mất vài phút. Nếu bạn cần làm, nó có thể giúp bạn tiết kiệm được nhiều tuần.

2

Git và Mercurial (hg) có nhiều động lực như kho mã nguồn phân phối nhưng theo ý kiến ​​của tôi, đối với một ban nhạc một người, bạn sẽ thấy hỗ trợ nhiều nhất với Subversion. Nếu bạn đang ở trong Windows có TortoiseSVN vỏ tích hợp đó là tuyệt vời (nó thậm chí tích hợp với Trac) và miễn phí Subversion lưu trữ là tất cả các nơi và có một số kinh nghiệm cá nhân với ProjectLocker.com (họ làm Git và SVN). Ngoài ra, Subversion khá đơn giản để tích hợp trực tiếp vào IDE Eclipse.

1

Có rất nhiều lợi ích từ việc sử dụng một SCM thay vì chỉ Eclipse histoiry ngay cả đối với chỉ một người duy nhất:

  • ý kiến ​​về cam kết: bạn có thể nói tại sao bạn làm điều gì. Điều này sẽ giúp bạn khi bạn cần phải tìm ra lý do tại sao một số mã như nó, dựa trên lịch sử của nó.

  • sao lưu: Ồ, bạn đã làm hỏng hoàn toàn không gian làm việc Eclipse của mình? Chỉ cần tạo một cái mới và lấy một bản sao mới của mã.

  • tích hợp liên tục: kiểm tra xem mã có được xây dựng sau mỗi lần lưu hay không, chạy thử nghiệm (điều này quan trọng) và tạo nhị phân thực để gửi cho khách hàng.

Đây là mạng an toàn của bạn. Dành thời gian để tìm hiểu và sử dụng nó ngay.Bạn sẽ thích nó :)

+0

đây là một số đối số rất mạnh - chính xác những gì tôi đang tìm kiếm :) – FloE

+0

nếu bạn dựa vào SCM của mình làm bản sao lưu cho không gian làm việc Eclipse của bạn, điều quan trọng là bạn có chế độ sao lưu thích hợp tại chỗ cho SCM của bạn . Chắc chắn trên một máy khác nhau (trong trường hợp đĩa/máy của bạn chết), và tốt nhất là off-site. –

+0

@Stephen, như mọi khi không có phép thuật. Điều này là rất dễ dàng để làm với git (chỉ cần sao chép nó), và khá tẻ nhạt với svn và cvs. –