2008-09-26 29 views
67

Tôi là một nhà phát triển duy nhất vào lúc này; xin vui lòng chia sẻ kinh nghiệm của bạn về một thiết lập VC tốt cho một nhà phát triển duy nhất là gì.Kiểm soát phiên bản tốt nhất cho nhà phát triển đơn lẻ

Ràng buộc của tôi là;

  • Tôi làm việc trên nhiều máy tính và cần phải giữ cho chúng được đồng bộ hóa lên
  • Đôi khi tôi làm việc ẩn

Tôi hiện đang sử dụng Subversion (chỉ cần khách hàng đến một máy chủ từ xa), và đó là lý làm việc ok. Tôi quan tâm đến Mercurial và git DVCS, nhưng không có trường hợp sử dụng nào hợp lý với tình huống của tôi.

CHỈNH SỬA: Tôi đã di chuyển phát triển hoạt động của mình sang Fossil http://www.fossil-scm.org/ sau khi dùng thử với ứng dụng khách. Tôi thực sự thích các tính năng tự động đồng bộ kho của mình (giảm dĩa ngẫu nhiên), hỗ trợ tài liệu (cả wiki và nhúng/phiên bản) hỗ trợ nhu cầu ghi lại mã và dự án ở các không gian khác nhau, dễ dàng định cấu hình bộ theo dõi vấn đề kiểm soát, giao diện web skinnable và cộng đồng hữu ích.

+1

Câu hỏi này đã giúp http://stackoverflow.com/questions/97850/version-control-on-a-2gb-usb-drive#97955 – Stephen

+0

Tôi không thích VSS AT ALL. Tuy nhiên, nó có một lợi thế mà những người khác không: hệ thống tập tin của nó dựa. Vì vậy, đối với MỘT nhà phát triển, tìm cách đồng bộ hóa ở các vị trí khác nhau, việc đặt một VSS db trong một thư mục mesh.com là một cách nhanh chóng để bắt đầu và chạy – Will

+0

Tôi cũng rất hạnh phúc Hóa đơn chạy hoặc biên dịch trên mọi thứ tôi đã cố gắng dev trên: xp, vista, máy mac ppc, mac intel và Windows 7. – Stephen

Trả lời

43

Tôi có thể đề xuất một điều khiển phiên bản khá mới được gọi là hóa thạch không.

Đây không phải là một dự án quá của tôi, nó được viết bởi Tiến sĩ Richard Hipp, cùng một người đã làm SQLite. Toàn bộ kho lưu trữ là một tệp SQLite, vì vậy nó rất chắc chắn. Bạn có một wiki và một hệ thống vé được tích hợp. Bạn có thể có nhiều người dùng với các quyền khác nhau, vì vậy bạn có thể cho ví dụ cung cấp cho người dùng quyền phát hành vé nhưng không xem mã nguồn.

Điều này khá đơn giản, thẳng về phía trước và nó hoạt động như một hệ thống phân tán, có nghĩa là bạn có thể sao chép và thanh toán cục bộ và từ xa.

Thông tin khác có thể được xem trên http://www.fossil-scm.org/ và nếu bạn nhìn kỹ, bạn thấy rằng toàn bộ trang web thực sự là hóa thạch.

Một điều thực sự gây ấn tượng với tôi về hóa thạch là nó chỉ là một tập tin, đó là nó. Toàn bộ chương trình hóa thạch là khá nhỏ, nhưng xem xét tác giả là ai, điều đó không thực sự là một bất ngờ.

Và vì kho lưu trữ của bạn là tệp sqlite, bạn chỉ cần sao chép và bạn có bản sao lưu.

+1

Bạn có thể quan tâm đến [Monotone] (http://www.monotone.ca) là một DVCS khác sử dụng SQLite làm bộ lưu trữ phụ trợ. Từ kinh nghiệm của riêng tôi, tôi phải đồng ý rằng nó thực sự tốt đẹp để dễ dàng sao lưu hoặc sao chép toàn bộ kho lưu trữ. –

+3

Hóa thạch thật tuyệt vời !!! Tôi chưa bao giờ thấy một ứng dụng như thế trước đây, sự đơn giản và linh hoạt như vậy !!! – zengr

7

Subversion hoạt động tốt (đặc biệt là với TortoiseSVN). Tôi không nghĩ rằng bất kỳ VC phân phối sẽ có một lợi thế trong một kịch bản phát triển duy nhất.

Chỉnh sửa: Tôi đã không nhận thấy phần "đôi khi tôi làm việc ngoại tuyến" khi tôi trả lời ban đầu. Trong trường hợp đó, tôi giả sử bạn phải tăng thêm độ phức tạp của DVCS với thực tế là nó cung cấp cho bạn lịch sử/phiên bản ngoại tuyến.

+0

Tôi quan tâm đến cách * bạn * * sử dụng * svn. – Stephen

+1

git thật dễ dàng để thiết lập cho một người, bạn chỉ cần một thư mục và một bộ công cụ. Không cần máy chủ. –

+2

Ngay cả khi không làm việc ngoại tuyến, DVCS vẫn có những ưu điểm mạnh mẽ trên các thiết bị tập trung. Tạo một repo dễ dàng hơn nhiều cũng như làm việc song song trên nhiều nhánh. –

0

SourceGear Vault miễn phí cho một nhà phát triển và rất tốt.

+0

Tại sao nó tốt cho một nhà phát triển đơn độc? – Stephen

+2

Tuyệt vời. Bạn có thực sự chọn một VCS mà bạn không thể sử dụng nữa khi ai đó sẵn sàng giúp bạn không ?! Có vẻ điên rồ với tôi. –

30

Làm việc ngoại tuyến hoàn toàn hợp lý với Git. Bạn có thể duyệt toàn bộ lịch sử của bạn, thực hiện các cam kết, hợp nhất, tạo các chi nhánh, về cơ bản làm mọi thứ liên quan đến kho lưu trữ của bạn ngoại tuyến. Hơn nữa, bạn có thể thiết lập một kho lưu trữ trung tâm là "master", đó là bạn sẽ đẩy tất cả các thay đổi của bạn vào kho lưu trữ trung tâm đó. Bằng cách đó bạn luôn biết mã mới nhất ở đâu, nhưng bạn cũng có được lợi ích khi có thể gửi các thay đổi từ máy này sang máy khác nếu bạn cần.

Gần đây, tôi đã chuyển đổi tất cả 80 kho lưu trữ Subversion của mình thành Git và tôi chưa xem lại.

+0

tương tự như vậy, gần đây đã di chuyển tất cả các repos cvs riêng của tôi thành git. hoàn hảo để sử dụng cho bất kỳ thư mục địa phương nào bạn có thể quyết định phiên bản, hoặc đẩy repos của bạn lên github.com hoặc assembla.com để sử dụng trên nhiều máy. – tardate

+0

thứ hai trên git, tuyệt vời và mạnh mẽ. – Valentin

+0

Đồng ý ... Tôi giữ một bản sao trung tâm của nguồn của tôi trên GitHub và đẩy một bản sao lưu của repo của tôi vào một khóa USB –

3

tôi luôn khuyên darcs cho tình trạng này (here's my answer to a similar question) như giao diện người dùng dòng lệnh của nó là một niềm vui để sử dụng và niềm vui là những gì tôi muốn từ sự phát triển của riêng tôi :)

Git đi kèm với một số GUIs hoàn toàn khả thi, nhưng Tôi đã tìm thấy nó quá khó sử dụng so với darcs khi tôi nhấn dòng lệnh để sử dụng cho các dự án cá nhân.

Hoặc sẽ đáp ứng nhu cầu của bạn để làm việc ngoại tuyến và cả hai đều dễ dàng đồng bộ hóa các thay đổi với.

0

tôi khuyên bạn nên assembla.com - chúng cung cấp svn, wiki và trac miễn phí. Không thể làm tốt hơn thế!

+0

họ cũng hỗ trợ git – tardate

2

Subversion yêu cầu quyền truy cập vào kho lưu trữ tập trung. Nếu bạn đang làm việc ngoại tuyến và từ nhiều máy, điều đó có nghĩa là bạn không thể thực hiện sửa đổi khi ngoại tuyến.

Giải pháp Unix xương là giữ lịch sử bên trong thư mục hoạt động với RCS và đồng bộ hóa thư mục hoạt động (bao gồm lịch sử) giữa các máy khác nhau sử dụng Unison.Thông báo trước chính là, nếu bạn chuyển đổi máy, trước tiên bạn cần phải đồng bộ hóa chúng trước khi bạn bắt đầu thực hiện các sửa đổi mới. Nếu đó là một vấn đề, bạn nên nhìn vào một DVCS thực sự.

+0

mẹo hay! Tôi không biết về unison. – Stephen

0

Nếu bạn đang comfortabel với lật đổ, tôi đề nghị bạn có một cái nhìn tại SVK

49

Mỗi người có thể sẽ cho bạn biết rằng DVCS yêu thích của họ là tốt nhất cho bạn. Tôi sẽ nói với bạn Mercurial là tốt nhất! ;-)

Nhưng đó là crap. Bạn definitevely cần một DVCS, nhưng hãy thử tất cả, hoặc ít nhất là những người sử dụng chủ yếu, và làm cho sự lựa chọn của bạn một mình. Chọn DVCS mà bạn biết một guru cho cũng là một sự lựa chọn hợp lý, BTW. Tôi khuyên bạn nên thử (hoặc đọc tài liệu) ít nhất là Mercurial, Git và Bazaar. SVK có thể có tính năng mong muốn mà nó được thiết kế để tương tác với SVN, nhưng lần cuối cùng tôi kiểm tra chúng có vấn đề về hiệu năng khó chịu. Git cũng có một số plugin tương tác SVN, AFAIK.

+0

Tôi biết nó không có nhiều phiếu bầu nhất. Nhưng tôi thích nó. – Stephen

+0

Hg cũng có một gói không chính thức được gọi là "hgsvn" để tương tác với một máy chủ svn. Nó không phải là trưởng thành như git của mặc dù, ví dụ nó đã không thể sao chép repo của chúng tôi - chuyển sang git và không bao giờ nhìn lại. –

+0

@Greg: thử hgsubversion thay vì hgsvn: http://bitbucket.org/durin42/hgsubversion/ Đó là một cầu nối hai chiều giữa Mercurial và Subversion. –

2

Bạn phải cố gắng một DVCS (hoặc những gì tôi gọi một peer2peer VCS). Tôi đồng ý với người quản lý. Đừng lãng phí thời gian với svn và tất cả các arround mềm làm cho nó để làm cho nó loại hữu ích. Một DVCS nó là intuitve rằng phong cách khách hàng cũ và không được chấp nhận. SVN không biết thẻ là gì, hoặc một chi nhánh. Đối với Svn tất cả chỉ là bản sao.

Ví dụ: quá dificult để triển khai thẻ dưới dạng đồng nghĩa với số sửa đổi.

Trong thẻ mercurial chỉ là vậy. Bạn không thể giữ các phiên bản theo dõi của một thẻ như bạn có thể trong svn.

Đọc tại đây dvcs guide để bắt đầu. Sau đó, bạn có thể sử dụng svk, mercurial aka hg hoặc git. Nhưng xin đừng quay lại thời gian

+0

Bạn nên đọc lại câu trả lời của mình! Tôi đã rất ngạc nhiên khi thấy "SVN không biết thẻ là gì, hoặc một nhánh". Điều đó đã cho tôi ý tưởng rằng SVN không thể thực hiện các chi nhánh hoặc thẻ; đó là những điều tôi đã làm cho bản thân mình! Thực tế là, ngay cả khi SVN không thể phân biệt giữa các bản sao và các chi nhánh hoặc thẻ, nó cho phép bạn thực hiện chúng! – sergiol

1

Tôi là người hâm mộ lớn về kiểm soát phiên bản được phân phối. Tôi đã chơi xung quanh với git, mercurial, và bzr, và bây giờ tôi sử dụng git cho tất cả các dự án của tôi. Tất cả ba trong số này là tuyệt vời cho sử dụng cá nhân bởi vì nó rất đơn giản để tạo ra một kho lưu trữ mới trên máy tính của bạn. Bạn không phải chạy bất kỳ máy chủ nào.

Dưới đây là một vài ý tưởng để chia sẻ kho lưu trữ của bạn trên nhiều máy tính. 1) Sử dụng một số dịch vụ lưu trữ như github. Thông thường đây là các dự án nguồn mở miễn phí và phí thấp cho các dự án thương mại. Chúng tôi đang sử dụng github tại nơi làm việc. 2) Sử dụng dropbox để tạo một đĩa sao lưu internet được chia sẻ mà tất cả các máy tính của bạn có thể truy cập. Nó miễn phí cho ít hơn 2 GB. (Nếu bạn đang sử dụng Ubuntu, Ubuntu One là một giải pháp thay thế khác). Đặt kho lưu trữ git chính của bạn trên dropbox và sau đó đặt các kho lưu trữ cục bộ trên mỗi máy tính của bạn. (Vì vậy, dropbox đóng vai trò giống như github.) Hoàn toàn miễn phí, cho phép bạn làm việc ngoại tuyến dễ dàng, cho phép bạn chia sẻ kho lưu trữ với các nhà phát triển khác sau này nếu cần, và nó được sao lưu tự động.

Ngoài ra, nếu bạn thực sự muốn sử dụng SVN, hãy xem giải pháp lưu trữ như cvsdude (mặc dù tên, chúng chạy SVN) thay vì chạy máy chủ của riêng bạn. Bạn sẽ có thể truy cập mã của bạn từ bất cứ đâu, và nó sẽ chỉ chi phí bạn ~ $ 5-10/tháng.

+2

Bitbucket.org cũng rất thú vị. Nó cung cấp miễn phí không giới hạn công cộng * và tài khoản * tư nhân cho cả Mercurial và Git (cho đến 5 ủy ban). Nó có sẵn trình theo dõi vấn đề và wiki, và có một giao diện mạnh mẽ, giống như GitHub. Nó trở thành kho của tôi lựa chọn cho sử dụng cá nhân. –

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