Kiểm soát phiên bản cho nhà phát triển độc lập?


60

Bạn có nghĩ rằng đáng để sử dụng kiểm soát phiên bản nếu bạn là nhà phát triển độc lập và nếu vậy, tại sao? Bạn có giữ kho lưu trữ trên máy tính của riêng bạn, hoặc ở nơi khác, nơi nó có thể phục vụ như một bản sao lưu không?


54
Tôi rất thích nhìn thấy một dược sĩ hỏi: "Tôi có nên lưu trữ thuốc theo cách có tổ chức hay chỉ cần ném tất cả vào ngăn kéo? Có đáng để bỏ công sức không?"
Erik

23
Chỉ cần tưởng tượng làm việc thực sự chăm chỉ trong một tuần liên tiếp tạo ra phần mềm tuyệt vời này. Sau đó xóa nó. Bạn cảm thấy thế nào? Nó không chỉ là lưu trữ. Khi một cái gì đó bị hỏng mà làm việc vào tuần trước, bạn có thể nhìn và xem những gì đã thay đổi và thường thấy những gì bạn đã phá vỡ. Tôi vẫn thấy các nhà phát triển 'chuyên nghiệp' với các thư mục backup001 và backup_backup001 trộn lẫn với nguồn của họ. Hình thành thói quen tốt khi bạn vẫn còn trẻ.
Erik

@Erik Yuck, các thư mục sao lưu nghe có vẻ khó chịu. Tôi sử dụng kiểm soát nguồn cho các dự án của mình, mặc dù tôi không thực sự giỏi trong việc cam kết thường xuyên.
vedoity

Câu trả lời:


61

Nếu bạn sử dụng kiểm soát nguồn phi tập trung (Mercurial hoặc Git hoặc Bazaar hoặc bất cứ điều gì), bạn sẽ có được lợi thế so với SVN / CVS, giúp sử dụng dễ dàng, hữu ích và mạnh mẽ trong trường hợp bạn là một người không chuyên:

  1. Bạn cam kết tại địa phương : thư mục dự án của bạn là repo của bạn với lịch sử ĐẦY ĐỦ. Vì vậy, bạn không cần phải có máy chủ, bạn cam kết trực tiếp trong repo của mình và bạn có thể có một số repos trong cùng một máy tính. Sử dụng máy tính xách tay mà đôi khi bạn mở để tiếp tục làm việc? Tuyệt quá! Bạn không phải thiết lập một máy chủ và nếu bạn cần một máy chủ sau, thật dễ dàng và bạn chỉ cần "đẩy" và "kéo" các thay đổi giữa các kho lưu trữ.
  2. Nó được thực hiện để dễ dàng thử nghiệm : thường bạn cần có ý tưởng về một tính năng mà không gây ô nhiễm mã. Với SVN và CVS, bạn có thể sử dụng hệ thống phân nhánh và bỏ nhánh nếu tính năng này không tốt như bạn muốn. Nhưng nếu bạn muốn hợp nhất tính năng này với phiên bản trung kế, bạn sẽ gặp rất nhiều khó khăn để khắc phục những bất ngờ. Git, Mercurial và Bazaar (ít nhất) làm cho việc hợp nhất và các chi nhánh thực sự dễ dàng. Bạn thậm chí có thể chỉ cần sao chép một repo, làm việc trên nó một thời gian, vẫn cam kết và giết nó hoặc đẩy các thay đổi của bạn trong repo chính nếu bạn muốn.
  3. Tính linh hoạt của tổ chức : như đã chỉ ra trước đây, khi bạn có repos mà bạn tổ chức khi bạn cần, thật dễ dàng để bắt đầu một mình và cho phép người khác làm việc với bạn bằng cách thay đổi tổ chức của bạn. Không có tổ chức nào được áp đặt nên bạn chỉ cần thiết lập và voilà. Tôi thường chỉ đẩy / kéo thay đổi giữa các máy tính của riêng tôi (máy tính xách tay / máy tính để bàn / máy chủ) và tôi vẫn một mình trên các nhà phát triển của mình. Tôi sử dụng Mercurial và điều đó giúp tôi nhân đôi công việc của mình nhưng cũng hoạt động với các tính năng tôi nghĩ về bên ngoài trên máy tính xách tay của mình, sau đó tiếp tục làm việc với các tính năng khác trên máy tính để bàn của tôi, sau đó đẩy các thay đổi máy tính xách tay của tôi trên máy tính để bàn hoặc máy chủ của tôi và hợp nhất toàn bộ máy tính để bàn + máy tính xách tay và đặt nó (như bản sao lưu và repo làm việc nhóm trong tương lai) trên máy chủ của tôi.
  4. Nó giúp thiết lập các bản sao lưu : nếu bạn thiết lập một repo trung tâm (trên GitHub nếu nó công khai hoặc trong một repo riêng trên BitBucket), bạn có thể dễ dàng viết một tập lệnh sẽ được thực thi mỗi khi máy tính được khởi động, và sau đó chuyển tập lệnh đã nói cho bạn bè của bạn để nó tự động sao lưu công việc của bạn. Đó là những gì tôi đang làm nên bây giờ tôi chắc chắn sẽ không dễ bị mất việc.

Trên thực tế, hiện tại, bạn không có lý do gì để không sử dụng công cụ nguồn điều khiển cho bất kỳ dự án nào. Bởi vì chúng mạnh mẽ và linh hoạt hơn trước và quy mô với nhu cầu của bạn.


6
Luôn có GitHub .
HedgeMage

8
Hoặc bitbucket.org nếu bạn đang sử dụng Mercurial.
Terence Ponce

7
Mercurial với một repo hệ thống tập tin cục bộ trên dropbox hoạt động thực sự tốt cho một nhà phát triển duy nhất.
Giống chó Pieter

1
@Guillaume: Một nhà phát triển duy nhất có thể sử dụng khía cạnh "phân tán" của DVCS. Tôi làm. Ví dụ: tôi có thể làm việc trên máy tính A, đẩy công việc của mình lên khóa usb và sau đó kéo từ khóa usb này trên máy tính B.
barjak

1
@Guillaume "Phân phối" là một khía cạnh kỹ thuật, không phải là một tổ chức. Bạn có thể sử dụng một hệ thống nguồn constrol tập trung với một tổ chức có các nhà tích hợp chỉ được phép xác thực mã được cam kết. Điều đó có thể nhưng khó thiết lập vì tính chất tập trung của công cụ. Nhưng đó vẫn là một vấn đề trực giao.
Klaim

34

kiểm soát mã nguồn hoàn toàn vô dụng đối với các nhà phát triển độc lập, vì như chúng ta đều biết:

  • nhà phát triển độc lập không bao giờ phạm sai lầm
  • các nhà phát triển độc lập không bao giờ bỏ qua các phiên bản không hoạt động
  • nhà phát triển độc lập không bao giờ có nhiều hơn một phiên bản nên họ không sử dụng cho các chi nhánh
  • nhà phát triển độc lập không bao giờ quan tâm đến những gì họ đã thay đổi ngày hôm qua hoặc tuần trước
  • nhà phát triển độc lập không bao giờ, bao giờ cần sao lưu

Gọi tôi là "nhà phát triển phụ thuộc": Các kho lưu trữ Mercurial dễ dàng sao chép giữa máy tính để bàn, máy tính xách tay, ổ đĩa sao lưu USB và bitbucket.org của tôi. Tôi đã trở nên phụ thuộc và tôi thích nó theo cách đó!


6
Là câu trả lời này mỉa mai?

4
@kurtnelle: vô cùng!
Steven A. Lowe

1
Kewlio, chỉ cần kiểm tra.

21

Tại sao không?

Tôi là nhà phát triển solo và tôi sử dụng BitBucket và Mercurial cho các dự án cá nhân của mình. Có khả năng hoàn nguyên và fork mã của bạn là quá tốt để vượt qua.


8
+1 cho BitBucket - họ cung cấp kho riêng tư không giới hạn miễn phí.
Jon Sagara

2
Các kho riêng tư miễn phí là lý do tại sao tôi sử dụng BitBucket trên GitHub.
Terence Ponce

4
repo tư nhân miễn phí ?? Bạn có thể đã chuyển đổi tôi từ git sang hg.
Gauthier

@Gauthier, vâng, BitBucket có repos riêng miễn phí. Tôi không chắc chắn nếu họ không giới hạn mặc dù.
Terence Ponce

1
Bạn vẫn có thể sử dụng git với bitbucket. Trong thực tế, nhập trực tiếp từ github bao gồm các phím ssh. Chỉ cần thực hiện di chuyển nhưng vẫn sử dụng git (Tôi thích nó hơn!)
Daniel Casserly

1

Tôi tìm thấy giá trị trong đó, cá nhân. Các dự án của tôi đều được kiểm tra vào kho git (tất cả đều được giữ trên nhiều máy trong trường hợp có lỗi phần cứng). Các tính năng hữu ích nhất là phân nhánh (để tôi có thể chạy thử nghiệm gây rối với một nửa cơ sở mã của mình và không lo lắng về việc làm nổ tung vĩnh viễn) và hoàn nguyên (về cơ bản chỉ là hoàn tác trên steroid; trong trường hợp tôi thấy rằng tôi đã thực hiện một số sai lầm nằm ngoài phạm vi hoàn tác thường xuyên).


1

Đúng. Nó rất rất hữu ích. Matt Gallagher, người bạn của tôi đã đăng bài viết tuyệt vời về chủ đề này chỉ vài ngày trước lên blog phát triển iOS / MacOS "Ca cao với tình yêu" của anh ấy.

Bài viết là Mac & Git centric nhưng nó bao gồm những điều cơ bản.

Bạn cũng có thể quan tâm đến Câu hỏi StackExchange sau đây (và câu trả lời của họ).


1

Đáng giá ?? Phải! Nếu bạn không sử dụng Kiểm soát nguồn thì bạn không kiểm soát nguồn của mình và điều đó thật tệ. Bạn không thể khác, bạn không thể hoàn nguyên, bạn không thể theo dõi các thay đổi - bạn sẽ mất hàng giờ để tìm ra lỗi giả mà bạn vừa nhập. Nó là tốt hơn để có nó trên một số máy chủ sao lưu, nhưng bạn cũng có thể máy tính của bạn và sử dụng bất kỳ phương pháp sao lưu nào bạn thấy phù hợp.


2
Tôi thực sự sử dụng kiểm soát nguồn, nhưng tôi cũng có xu hướng làm những việc như kỹ thuật quá mức và áp dụng những thứ quá mức cần thiết. Tôi nổi tiếng về điều này tại nơi làm việc. Sau đó, một lần nữa, tôi không nghĩ bất kỳ lập trình viên nào nơi tôi làm việc bao gồm cả tôi đã làm việc ở bất cứ nơi nào khác với tư cách là một lập trình viên, và hầu hết chúng ta vẫn còn học trung học.
vedoity

1

Hoàn toàn sử dụng kiểm soát nguồn. Sau đó, thiết lập một máy chủ xây dựng và tự động hóa các quy trình xây dựng và thử nghiệm của bạn. Xây dựng kích hoạt từ cam kết nguồn của bạn về repo trung tâm của bạn. Tôi đã làm việc một mình trong ba năm theo cách này và điều đó thật tuyệt vời.


0

Đúng.

Ngay cả các nhà phát triển đơn lẻ đôi khi cũng cần phải xem trạng thái mã của họ từ một số sửa đổi trong quá khứ. Và luôn luôn là một ý tưởng tốt để sao lưu mọi thứ quan trọng và áp dụng cho tất cả mọi người.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.